github.com/pingcap/failpoint@v0.0.0-20240412033321-fd0796e60f86/Makefile (about) 1 ### Makefile for failpoint-ctl 2 3 LDFLAGS += -X "github.com/pingcap/failpoint/failpoint-ctl/version.releaseVersion=$(shell git describe --tags --dirty="-dev" --always)" 4 LDFLAGS += -X "github.com/pingcap/failpoint/failpoint-ctl/version.buildTS=$(shell date -u '+%Y-%m-%d %I:%M:%S')" 5 LDFLAGS += -X "github.com/pingcap/failpoint/failpoint-ctl/version.gitHash=$(shell git rev-parse HEAD)" 6 LDFLAGS += -X "github.com/pingcap/failpoint/failpoint-ctl/version.gitBranch=$(shell git rev-parse --abbrev-ref HEAD)" 7 LDFLAGS += -X "github.com/pingcap/failpoint/failpoint-ctl/version.goVersion=$(shell go version)" 8 9 FAILPOINT_CTL_BIN := bin/failpoint-ctl 10 FAILPOINT_TOOLEXEC_BIN := bin/failpoint-toolexec 11 12 path_to_add := $(addsuffix /bin,$(subst :,/bin:,$(GOPATH))) 13 export PATH := $(path_to_add):$(PATH):$(shell pwd)/tools/bin 14 15 GO := GO111MODULE=on go 16 GOBUILD := GO111MODULE=on CGO_ENABLED=0 $(GO) build 17 GOTEST := GO111MODULE=on GO_FAILPOINTS="failpoint-env1=return(10);failpoint-env2=return(true)" CGO_ENABLED=1 $(GO) test -p 4 18 19 ARCH := "`uname -s`" 20 LINUX := "Linux" 21 MAC := "Darwin" 22 23 RACE_FLAG = 24 ifeq ("$(WITH_RACE)", "1") 25 RACE_FLAG = -race 26 GOBUILD = GOPATH=$(GOPATH) CGO_ENABLED=1 $(GO) build 27 endif 28 29 .PHONY: build checksuccess test cover upload-cover gotest check-static 30 31 default: build checksuccess 32 33 build: 34 $(GOBUILD) $(RACE_FLAG) -ldflags '$(LDFLAGS)' -o $(FAILPOINT_CTL_BIN) failpoint-ctl/main.go 35 $(GOBUILD) $(RACE_FLAG) -ldflags '$(LDFLAGS)' -o $(FAILPOINT_TOOLEXEC_BIN) failpoint-toolexec/main.go 36 37 checksuccess: 38 @if [ -f $(FAILPOINT_CTL_BIN) ]; \ 39 then \ 40 echo "failpoint-ctl build successfully :-) !" ; \ 41 fi 42 @if [ -f $(FAILPOINT_TOOLEXEC_BIN) ]; \ 43 then \ 44 echo "failpoint-toolexec build successfully :-) !" ; \ 45 fi 46 47 test: gotest check-static 48 49 check-static: tools/bin/gometalinter 50 @ # TODO: enable megacheck. 51 @ # TODO: gometalinter has been DEPRECATED. 52 @ # https://github.com/alecthomas/gometalinter/issues/590 53 @ echo "----------- static check ---------------" 54 tools/bin/gometalinter --disable-all --deadline 120s \ 55 --enable gofmt \ 56 --enable misspell \ 57 --enable ineffassign \ 58 ./... 59 @ # TODO --enable errcheck 60 @ # TODO --enable golint 61 62 gotest: 63 @ echo "----------- go test ---------------" 64 $(GOTEST) -covermode=atomic -coverprofile=coverage.txt -coverpkg=./... -v ./... 65 66 tools/bin/gometalinter: 67 cd tools; \ 68 curl -L https://git.io/vp6lP | sh