github.com/kata-containers/runtime@v0.0.0-20210505125100-04f29832a923/golang.mk (about) 1 # 2 # Copyright (c) 2018 Intel Corporation 3 # 4 # SPDX-License-Identifier: Apache-2.0 5 # 6 # Check that the system golang version is within the required version range 7 # for this project. 8 9 golang_version_raw=$(shell go version 2>/dev/null) 10 not_check_version= 11 ifeq (,$(GOPATH)) 12 golang_version_raw= 13 endif 14 ifeq (,$(golang_version_raw)) 15 not_check_version=y 16 endif 17 ifneq (,$(SKIP_GO_VERSION_CHECK)) 18 not_check_version=y 19 endif 20 21 ifeq (,$(not_check_version)) 22 have_yq=$(shell if [ -x "$(GOPATH)/bin/yq" ]; then echo "true"; else echo ""; fi) 23 ifeq (,$(have_yq)) 24 $(info INFO: yq was not found, installing it) 25 install_yq=$(shell .ci/install-yq.sh) 26 endif 27 ifneq (,$(install_yq)) 28 $(error "ERROR: install yq failed") 29 endif 30 golang_version_min=$(shell $(GOPATH)/bin/yq r versions.yaml languages.golang.version) 31 32 ifeq (,$(golang_version_min)) 33 $(error "ERROR: cannot determine minimum golang version") 34 endif 35 36 golang_version_min_fields=$(subst ., ,$(golang_version_min)) 37 38 golang_version_min_major=$(word 1,$(golang_version_min_fields)) 39 golang_version_min_minor=$(word 2,$(golang_version_min_fields)) 40 41 # for error messages 42 golang_version_needed=$(golang_version_min_major).$(golang_version_min_minor) 43 44 # determine actual version of golang 45 golang_version=$(subst go,,$(word 3,$(golang_version_raw))) 46 47 golang_version_fields=$(subst ., ,$(golang_version)) 48 49 golang_version_major=$(word 1,$(golang_version_fields)) 50 golang_version_minor=$(word 2,$(golang_version_fields)) 51 52 golang_major_ok=$(shell test $(golang_version_major) -ge $(golang_version_min_major) && echo ok) 53 golang_minor_ok=$(shell test $(golang_version_major) -eq $(golang_version_min_major) -a $(golang_version_minor) -ge $(golang_version_min_minor) && echo ok) 54 55 ifeq (,$(golang_major_ok)) 56 $(error "ERROR: golang major version too old: got $(golang_version), need atleast $(golang_version_needed)") 57 endif 58 59 ifeq (,$(golang_minor_ok)) 60 $(error "ERROR: golang minor version too old: got $(golang_version), need atleast $(golang_version_needed)") 61 endif 62 endif