github.com/crowdsecurity/crowdsec@v1.6.1/mk/goversion.mk (about) 1 2 BUILD_GOVERSION = $(subst go,,$(shell $(GO) env GOVERSION)) 3 4 go_major_minor = $(subst ., ,$(BUILD_GOVERSION)) 5 GO_MAJOR_VERSION = $(word 1, $(go_major_minor)) 6 GO_MINOR_VERSION = $(word 2, $(go_major_minor)) 7 8 GO_VERSION_VALIDATION_ERR_MSG = Golang version ($(BUILD_GOVERSION)) is not supported, please use at least $(BUILD_REQUIRE_GO_MAJOR).$(BUILD_REQUIRE_GO_MINOR) 9 10 11 .PHONY: goversion 12 goversion: $(if $(findstring devel,$(shell $(GO) env GOVERSION)),goversion_devel,goversion_check) 13 14 15 .PHONY: goversion_devel 16 goversion_devel: 17 $(warning WARNING: You are using a development version of Golang ($(BUILD_GOVERSION)) which is not supported. For production environments, use a stable version (at least $(BUILD_REQUIRE_GO_MAJOR).$(BUILD_REQUIRE_GO_MINOR))) 18 $(info ) 19 20 21 .PHONY: goversion_check 22 goversion_check: 23 ifneq ($(OS), Windows_NT) 24 @if [ $(GO_MAJOR_VERSION) -gt $(BUILD_REQUIRE_GO_MAJOR) ]; then \ 25 exit 0; \ 26 elif [ $(GO_MAJOR_VERSION) -lt $(BUILD_REQUIRE_GO_MAJOR) ]; then \ 27 echo '$(GO_VERSION_VALIDATION_ERR_MSG)';\ 28 exit 1; \ 29 elif [ $(GO_MINOR_VERSION) -lt $(BUILD_REQUIRE_GO_MINOR) ] ; then \ 30 echo '$(GO_VERSION_VALIDATION_ERR_MSG)';\ 31 exit 1; \ 32 fi 33 else 34 # This needs Set-ExecutionPolicy -Scope CurrentUser Unrestricted 35 @$(CURDIR)/mk/check_go_version.ps1 $(BUILD_REQUIRE_GO_MAJOR) $(BUILD_REQUIRE_GO_MINOR) 36 endif