1- GO =go
1+ LDFLAGS := -s -w
2+
3+ BINARY ="lmap"
4+ RELEASE_DIR ="release"
5+ VERSION =` git describe --tags $( git rev-list --tags --max-count=1 --branches master) `
6+
7+ os-archs =darwin:amd64 darwin:arm64 freebsd:386:softfloat freebsd:amd64 linux:386:softfloat linux:amd64 linux:arm linux:arm64 windows:386:softfloat windows:amd64 linux:mips64 linux:mips64le linux:mips:softfloat linux:mipsle:softfloat
8+
9+ packages =./cmd/lmap ./pkg/lmap
10+
11+ default :
12+ @go build ./cmd/lmap
13+
14+ version :
15+ @echo $(VERSION )
16+
217all :
3- " $( GO) " build -o lmap cmd/lmap/main.go
18+ @$(foreach n, $(os-archs ) ,\
19+ os=$(shell echo "$(n ) " | cut -d : -f 1) ; \
20+ arch=$(shell echo "$(n ) " | cut -d : -f 2) ; \
21+ GO386=$(shell echo "$(n ) " | cut -d : -f 3) ; \
22+ target_suffix=$$ {os}_$$ {arch}; \
23+ echo " Build $$ {os}-$$ {arch}..." ; \
24+ env CGO_ENABLED=0 GOOS=$$ {os} GOARCH=$$ {arch} GO386=" $$ {GO386}" go build -trimpath -ldflags " $( LDFLAGS) " -o ./$(RELEASE_DIR ) /$(BINARY ) _$$ {target_suffix} ./cmd/lmap; \
25+ echo " Build $$ {os}-$$ {arch} done" ; \
26+ )
27+ @mv ./$(RELEASE_DIR ) /$(BINARY ) _windows_386 ./$(RELEASE_DIR ) /$(BINARY ) _windows_386.exe
28+ @mv ./$(RELEASE_DIR ) /$(BINARY ) _windows_amd64 ./$(RELEASE_DIR ) /$(BINARY ) _windows_amd64.exe
29+
30+ fmt :
31+ @gofmt -s -w ./
32+
33+ fmt-check :
34+ @diff=` gofmt -s -d ./` ; \
35+ if [ -n " $$ diff" ]; then \
36+ echo " Please run 'make fmt' and commit the result:" ; \
37+ echo " $$ {diff}" ; \
38+ exit 1; \
39+ fi ;
40+
41+ install :
42+ @go mod tidy
43+
44+ test :
45+ @go test -cpu=1,2,4 -v -tags integration ./...
46+
47+ vet :
48+ @$(foreach n, $(packages ) ,\
49+ go vet ${n} ; \
50+ )
51+
52+ clean :
53+ @if [ -f ${BINARY} ] ; then rm -r ${BINARY} ; fi
54+ @if [ -d ${RELEASE_DIR} ] ; then rm -r ${RELEASE_DIR} ; fi
55+
56+ .PHONY : default fmt fmt-check install test vet docker clean
0 commit comments