bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/Makefile (about) 1 ROOT= $(shell git rev-parse --show-toplevel) 2 SYSTEM = $(shell uname -s | tr '[A-Z]' '[a-z]') 3 4 ifneq ("$(wildcard $(ROOT)/platform/$(SYSTEM).mk)", "") 5 include $(ROOT)/platform/$(SYSTEM).mk 6 else 7 include $(ROOT)/platform/linux.mk 8 endif 9 10 PREFIX?="/tmp/synsec/" 11 CFG_PREFIX = $(PREFIX)"/etc/synsec/" 12 BIN_PREFIX = $(PREFIX)"/usr/local/bin/" 13 DATA_PREFIX = $(PREFIX)"/var/run/synsec/" 14 15 PID_DIR = $(PREFIX)"/var/run/" 16 SYNSEC_FOLDER = "./cmd/synsec" 17 CCSCLI_FOLDER = "./cmd/synsec-cli/" 18 SYNSEC_BIN = "synsec" 19 CCSCLI_BIN = "ccscli" 20 BUILD_CMD = "build" 21 22 GOARCH=amd64 23 24 #Golang version info 25 GO_MAJOR_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1) 26 GO_MINOR_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f2) 27 MINIMUM_SUPPORTED_GO_MAJOR_VERSION = 1 28 MINIMUM_SUPPORTED_GO_MINOR_VERSION = 13 29 GO_VERSION_VALIDATION_ERR_MSG = Golang version ($(BUILD_GOVERSION)) is not supported, please use least $(MINIMUM_SUPPORTED_GO_MAJOR_VERSION).$(MINIMUM_SUPPORTED_GO_MINOR_VERSION) 30 #Current versioning information from env 31 BUILD_VERSION?="$(shell git describe --tags `git rev-list --tags --max-count=1`)" 32 BUILD_GOVERSION="$(shell go version | cut -d " " -f3 | sed -r 's/[go]+//g')" 33 BUILD_CODENAME=$(shell cat RELEASE.json | jq -r .CodeName) 34 BUILD_TIMESTAMP=$(shell date +%F"_"%T) 35 BUILD_TAG="$(shell git rev-parse HEAD)" 36 export LD_OPTS=-ldflags "-s -w -X bitbucket.org/Aishee/synsec/pkg/cwversion.Version=$(BUILD_VERSION) \ 37 -X bitbucket.org/Aishee/synsec/pkg/cwversion.BuildDate=$(BUILD_TIMESTAMP) \ 38 -X bitbucket.org/Aishee/synsec/pkg/cwversion.Codename=$(BUILD_CODENAME) \ 39 -X bitbucket.org/Aishee/synsec/pkg/cwversion.Tag=$(BUILD_TAG) \ 40 -X bitbucket.org/Aishee/synsec/pkg/cwversion.GoVersion=$(BUILD_GOVERSION)" 41 RELDIR = synsec-$(BUILD_VERSION) 42 43 all: clean test build 44 45 build: goversion synsec ccscli 46 47 static: goversion synsec_static ccscli_static 48 49 goversion: 50 @if [ $(GO_MAJOR_VERSION) -gt $(MINIMUM_SUPPORTED_GO_MAJOR_VERSION) ]; then \ 51 exit 0 ;\ 52 elif [ $(GO_MAJOR_VERSION) -lt $(MINIMUM_SUPPORTED_GO_MAJOR_VERSION) ]; then \ 53 echo '$(GO_VERSION_VALIDATION_ERR_MSG)';\ 54 exit 1; \ 55 elif [ $(GO_MINOR_VERSION) -lt $(MINIMUM_SUPPORTED_GO_MINOR_VERSION) ] ; then \ 56 echo '$(GO_VERSION_VALIDATION_ERR_MSG)';\ 57 exit 1; \ 58 fi 59 60 clean: 61 @$(MAKE) -C $(SYNSEC_FOLDER) clean --no-print-directory 62 @$(MAKE) -C $(CCSCLI_FOLDER) clean --no-print-directory 63 @rm -f $(SYNSEC_BIN) 64 @rm -f $(CCSCLI_BIN) 65 @rm -f *.log 66 @rm -f synsec-release.tgz 67 68 ccscli: 69 ifeq ($(lastword $(RESPECT_VERSION)), $(CURRENT_GOVERSION)) 70 @$(MAKE) -C $(CCSCLI_FOLDER) build --no-print-directory 71 else 72 @echo "Required golang version is $(REQUIRE_GOVERSION). The current one is $(CURRENT_GOVERSION). Exiting.." 73 @exit 1; 74 endif 75 76 77 synsec: 78 ifeq ($(lastword $(RESPECT_VERSION)), $(CURRENT_GOVERSION)) 79 @$(MAKE) -C $(SYNSEC_FOLDER) build --no-print-directory 80 else 81 @echo "Required golang version is $(REQUIRE_GOVERSION). The current one is $(CURRENT_GOVERSION). Exiting.." 82 @exit 1; 83 endif 84 85 86 ccscli_static: 87 ifeq ($(lastword $(RESPECT_VERSION)), $(CURRENT_GOVERSION)) 88 @$(MAKE) -C $(CCSCLI_FOLDER) static --no-print-directory 89 else 90 @echo "Required golang version is $(REQUIRE_GOVERSION). The current one is $(CURRENT_GOVERSION). Exiting.." 91 @exit 1; 92 endif 93 94 95 synsec_static: 96 ifeq ($(lastword $(RESPECT_VERSION)), $(CURRENT_GOVERSION)) 97 @$(MAKE) -C $(SYNSEC_FOLDER) static --no-print-directory 98 else 99 @echo "Required golang version is $(REQUIRE_GOVERSION). The current one is $(CURRENT_GOVERSION). Exiting.." 100 @exit 1; 101 endif 102 103 #.PHONY: test 104 test: 105 ifeq ($(lastword $(RESPECT_VERSION)), $(CURRENT_GOVERSION)) 106 @$(MAKE) -C $(SYNSEC_FOLDER) test --no-print-directory 107 else 108 @echo "Required golang version is $(REQUIRE_GOVERSION). The current one is $(CURRENT_GOVERSION). Exiting.." 109 @exit 1; 110 endif 111 112 .PHONY: check_release 113 check_release: 114 @if [ -d $(RELDIR) ]; then echo "$(RELDIR) already exists, abort" ; exit 1 ; fi 115 116 .PHONY: 117 release: check_release build 118 @echo Building Release to dir $(RELDIR) 119 @mkdir -p $(RELDIR)/cmd/synsec 120 @mkdir -p $(RELDIR)/cmd/synsec-cli 121 @cp $(SYNSEC_FOLDER)/$(SYNSEC_BIN) $(RELDIR)/cmd/synsec 122 @cp $(CCSCLI_FOLDER)/$(CCSCLI_BIN) $(RELDIR)/cmd/synsec-cli 123 @cp -R ./config/ $(RELDIR) 124 @cp wizard.sh $(RELDIR) 125 @cp scripts/test_env.sh $(RELDIR) 126 @tar cvzf synsec-release.tgz $(RELDIR)