X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=Makefile;h=819e4b4033a2d947cf943523f685c3fa3ec8b452;hb=cc8b2cf6d529062399e0d9b4cde17f2475ef19c1;hp=ef2644d7243b73ff678002222a08a87f37caffbd;hpb=c35d7a0fc8bbb1f9123bb41a7b66e45ea2564dd2;p=src%2Fxds%2Fxds-cli.git diff --git a/Makefile b/Makefile index ef2644d..819e4b4 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,32 @@ -# Makefile used to build xds-cli commands - -# Application Version + ########################################################################### +# Copyright 2017 IoT.bzh +# +# author: Sebastien Douheret +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + + +# Application Name TARGET=xds-cli # Retrieve git tag/commit to set version & sub-version strings GIT_DESC := $(shell git describe --always --tags) VERSION := $(firstword $(subst -, ,$(GIT_DESC))) -SUB_VERSION := $(wordlist 2,3,$(subst -, ,$(GIT_DESC))) +ifeq (-,$(findstring -,$(GIT_DESC))) + SUB_VERSION := $(subst $(VERSION)-,,$(GIT_DESC)) +endif ifeq ($(VERSION), ) VERSION := unknown-dev endif @@ -40,6 +59,14 @@ PACKAGE_DIR := $(ROOT_SRCDIR)/package export GOPATH := $(shell go env GOPATH):$(ROOT_GOPRJ) export PATH := $(PATH):$(LOCAL_TOOLSDIR) +# Check Go version +GOVERSION := $(shell go version |grep -o '[0-9\.]*'|head -n 1) +GOVERMAJ := $(shell echo $(GOVERSION) |cut -f1 -d.) +GOVERMIN := $(shell echo $(GOVERSION) |cut -f2 -d.) +CHECKGOVER := $(shell [ $(GOVERMAJ) -gt 1 -o \( $(GOVERMAJ) -eq 1 -a $(GOVERMIN) -ge 8 \) ] && echo true) +CHECKERRMSG := "ERROR: Go version 1.8.1 or higher is requested (current detected version: $(GOVERSION))." + + VERBOSE_1 := -v VERBOSE_2 := -v -x @@ -58,16 +85,16 @@ endif ifeq ($(SUB_VERSION), ) - PACKAGE_ZIPFILE := $(TARGET)_$(ARCH)-v$(VERSION).zip + PACKAGE_ZIPFILE := $(TARGET)_$(ARCH)-$(VERSION).zip else - PACKAGE_ZIPFILE := $(TARGET)_$(ARCH)-v$(VERSION)_$(SUB_VERSION).zip + PACKAGE_ZIPFILE := $(TARGET)_$(ARCH)-$(VERSION)_$(SUB_VERSION).zip endif .PHONY: all all: vendor build .PHONY: build -build: +build: checkgover @echo "### Build $(TARGET) (version $(VERSION), subversion $(SUB_VERSION) - $(BUILD_MODE))"; @cd $(ROOT_SRCDIR); $(BUILD_ENV_FLAGS) go build $(VERBOSE_$(V)) -i -o $(LOCAL_BINDIR)/$(TARGET)$(EXT) -ldflags "$(GO_LDFLAGS) -X main.AppVersion=$(VERSION) -X main.AppSubVersion=$(SUB_VERSION)" -gcflags "$(GO_GCFLAGS)" . @@ -138,6 +165,12 @@ tools/glide: curl --silent -L https://glide.sh/get | GOBIN=$(LOCAL_TOOLSDIR) sh; \ } +.PHONY: +checkgover: + @test "$(CHECKGOVER)" = "true" || { echo $(CHECKERRMSG); exit 1; } + + +.PHONY: help help: @echo "Main supported rules:" @echo " all (default)"