X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=Makefile;h=991118d6896094bb70157d90dad91e14771ae97a;hb=bbd16c4e5951055ed73f7282dfd22cc4b3ab5700;hp=1b56896d90719a55341134e6c04f5afd9fb3ea9c;hpb=3280e5a9412220806d0931c1fbe2515a041603ac;p=src%2Fxds%2Fxds-cli.git diff --git a/Makefile b/Makefile index 1b56896..991118d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,21 @@ -# Makefile used to build xds-cli commands + ########################################################################### +# 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 @@ -7,7 +24,9 @@ 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 := $(subst $(VERSION)-,,$(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 @@ -67,7 +94,7 @@ endif 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)" . @@ -100,7 +127,9 @@ release: package: clean vendor build @mkdir -p $(PACKAGE_DIR)/$(TARGET) @cp -a $(LOCAL_BINDIR)/*cli$(EXT) $(PACKAGE_DIR)/$(TARGET) +ifneq ($(GOOS), windows) @cp -r $(ROOT_SRCDIR)/conf.d $(ROOT_SRCDIR)/scripts $(PACKAGE_DIR)/$(TARGET) +endif cd $(PACKAGE_DIR) && zip -r $(ROOT_SRCDIR)/$(PACKAGE_ZIPFILE) ./$(TARGET) .PHONY: package-all @@ -138,6 +167,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)"