taldir

Directory service to resolve wallet mailboxes by messenger addresses
Log | Files | Refs | Submodules | README | LICENSE

Makefile (4437B)


      1 SHELL 	   := $(shell which bash)
      2 
      3 ## BOF define block
      4 
      5 BINARIES   := pluralize
      6 BINARY     = $(word 1, $@)
      7 
      8 PLATFORMS  := windows linux darwin
      9 PLATFORM   = $(word 1, $@)
     10 
     11 ROOT_DIR   := $(shell git rev-parse --show-toplevel)
     12 BIN_DIR    := $(ROOT_DIR)/bin
     13 REL_DIR    := $(ROOT_DIR)/release
     14 SRC_DIR    := $(ROOT_DIR)/cmd
     15 INC_DIR    := $(ROOT_DIR)/include
     16 TMP_DIR    := $(ROOT_DIR)/tmp
     17 
     18 VERSION    :=`git describe --tags 2>/dev/null`
     19 COMMIT     :=`git rev-parse --short HEAD 2>/dev/null`
     20 DATE       :=`date "+%FT%T%z"`
     21 
     22 LDBASE     := github.com/gertd/go-pluralize/pkg/version
     23 LDFLAGS    := -ldflags "-w -s -X $(LDBASE).ver=${VERSION} -X $(LDBASE).date=${DATE} -X $(LDBASE).commit=${COMMIT}"
     24 
     25 GOARCH     ?= amd64
     26 GOOS       ?= $(shell go env GOOS)
     27 
     28 LINTER     := $(BIN_DIR)/golangci-lint
     29 LINTVERSION:= v1.27.0
     30 
     31 TESTRUNNER := $(BIN_DIR)/gotestsum
     32 TESTVERSION:= v0.5.0
     33 
     34 PROTOC     := $(BIN_DIR)/protoc
     35 PROTOCVER  := 3.12.3
     36 
     37 NO_COLOR   :=\033[0m
     38 OK_COLOR   :=\033[32;01m
     39 ERR_COLOR  :=\033[31;01m
     40 WARN_COLOR :=\033[36;01m
     41 ATTN_COLOR :=\033[33;01m
     42 
     43 ## EOF define block
     44 
     45 .PHONY: all
     46 all: deps gen build test lint
     47 
     48 deps:
     49 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
     50 	@GO111MODULE=on go mod download
     51 
     52 .PHONY: gen
     53 gen: deps $(BIN_DIR)
     54 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
     55 	@go generate ./...
     56 
     57 .PHONY: dobuild
     58 dobuild:
     59 	@echo -e "$(ATTN_COLOR)==> $@ $(B) GOOS=$(P) GOARCH=$(GOARCH) VERSION=$(VERSION) COMMIT=$(COMMIT) DATE=$(DATE) $(NO_COLOR)"
     60 	@GOOS=$(P) GOARCH=$(GOARCH) GO111MODULE=on go build $(LDFLAGS) -o $(T)/$(P)-$(GOARCH)/$(B)$(if $(findstring $(P),windows),".exe","") $(SRC_DIR)/$(B)
     61 ifneq ($(P),windows)
     62 	@chmod +x $(T)/$(P)-$(GOARCH)/$(B)
     63 endif
     64 
     65 .PHONY: build 
     66 build: $(BIN_DIR) deps
     67 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
     68 	@for b in ${BINARIES}; 									\
     69 	do 														\
     70 		$(MAKE) dobuild B=$${b} P=${GOOS} T=${BIN_DIR}; 	\
     71 	done 													
     72 
     73 .PHONY: doinstall
     74 doinstall:
     75 	@echo -e "$(ATTN_COLOR)==> $@ $(B) GOOS=$(P) GOARCH=$(GOARCH) VERSION=$(VERSION) COMMIT=$(COMMIT) DATE=$(DATE) $(NO_COLOR)"
     76 	@GOOS=$(P) GOARCH=$(GOARCH) GO111MODULE=on go install $(LDFLAGS) $(SRC_DIR)/$(B)
     77 
     78 .PHONY: install
     79 install: 
     80 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
     81 	@for b in ${BINARIES}; 									\
     82 	do 														\
     83 		$(MAKE) doinstall B=$${b} P=${GOOS}; 			 	\
     84 	done 													
     85 
     86 .PHONY: dorelease
     87 dorelease:
     88 	@echo -e "$(ATTN_COLOR)==> $@ build GOOS=$(P) GOARCH=$(GOARCH) VERSION=$(VERSION) COMMIT=$(COMMIT) DATE=$(DATE) $(NO_COLOR)"
     89 	@GOOS=$(P) GOARCH=$(GOARCH) GO111MODULE=on go build $(LDFLAGS) -o $(T)/$(P)-$(GOARCH)/$(B)$(if $(findstring $(P),windows),".exe","") $(SRC_DIR)/$(B)
     90 ifneq ($(P),windows)
     91 	@chmod +x $(T)/$(P)-$(GOARCH)/$(B)
     92 endif
     93 	@echo -e "$(ATTN_COLOR)==> $@ zip $(B)-$(P)-$(GOARCH).zip $(NO_COLOR)"
     94 	@zip -j $(T)/$(P)-$(GOARCH)/$(B)-$(P)-$(GOARCH).zip $(T)/$(P)-$(GOARCH)/$(B)$(if $(findstring $(P),windows),".exe","") >/dev/null
     95 
     96 .PHONY: release
     97 release: $(REL_DIR)
     98 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
     99 	@for b in ${BINARIES}; 									\
    100 	do 														\
    101 		for p in ${PLATFORMS};								\
    102 		do 													\
    103 			$(MAKE) dorelease B=$${b} P=$${p} T=${REL_DIR}; 	\
    104 		done;												\
    105 	done 													\
    106 
    107 $(TESTRUNNER):
    108 	@echo -e "$(ATTN_COLOR)==> get $@  $(NO_COLOR)"
    109 	@GOBIN=$(BIN_DIR) go get -u gotest.tools/gotestsum
    110 
    111 .PHONY: test 
    112 test: $(TESTRUNNER)
    113 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
    114 	@CGO_ENABLED=0 $(BIN_DIR)/gotestsum --format short-verbose -- -count=1 -v $(ROOT_DIR)/...
    115 
    116 $(LINTER):
    117 	@echo -e "$(ATTN_COLOR)==> get $@  $(NO_COLOR)"
    118 	@curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s $(LINTVERSION)
    119  
    120 .PHONY: lint
    121 lint: $(LINTER)
    122 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
    123 	@CGO_ENABLED=0 $(LINTER) run --enable-all
    124 	@echo -e "$(NO_COLOR)\c"
    125 
    126 .PHONY: doclean
    127 doclean:
    128 	@echo -e "$(ATTN_COLOR)==> $@ $(B) GOOS=$(P) $(NO_COLOR)"
    129 	@if [ -a $(GOPATH)/bin/$(B)$(if $(findstring $(P),windows),".exe","") ];\
    130 	then																	\
    131 		rm $(GOPATH)/bin/$(B)$(if $(findstring $(P),windows),".exe","");	\
    132 	fi
    133 
    134 .PHONY: clean
    135 clean:
    136 	@echo -e "$(ATTN_COLOR)==> $@ $(NO_COLOR)"
    137 	@rm -rf $(BIN_DIR)
    138 	@rm -rf $(REL_DIR)
    139 	@go clean
    140 	@for b in ${BINARIES}; 									\
    141 	do 														\
    142 		$(MAKE) doclean B=$${b} P=${GOOS};	 				\
    143 	done 													
    144 
    145 $(REL_DIR):
    146 	@echo -e "$(ATTN_COLOR)==> create REL_DIR $(REL_DIR) $(NO_COLOR)"
    147 	@mkdir -p $(REL_DIR)
    148 
    149 $(BIN_DIR):
    150 	@echo -e "$(ATTN_COLOR)==> create BIN_DIR $(BIN_DIR) $(NO_COLOR)"
    151 	@mkdir -p $(BIN_DIR)