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)