-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
36 lines (27 loc) · 1 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
SOURCES := $(find . -name '*.go')
BINARY=build/tmls
LDFLAGS=-ldflags "-X main.BuildTime=`date +%FT%T%z`"
VERSION=$$(git describe --abbrev=0 --tags)
.DEFAULT_GOAL: $(BINARY)
all: clean prebuild test build
.PHONY: prebuild
prebuild: $(SOURCES)
go get -d -v ./...
.PHONY: build
build: $(SOURCES)
go build ${LDFLAGS} -o ${BINARY} ${SOURCES}
build-release: clean prebuild test $(SOURCES)
env GOOS=linux GOARCH=arm go build ${LDFLAGS} -o "${BINARY}-${VERSION}_linux-arm" ${SOURCES}
env GOOS=linux GOARCH=arm64 go build ${LDFLAGS} -o "${BINARY}-${VERSION}_linux-arm64" ${SOURCES}
env GOOS=linux GOARCH=386 go build ${LDFLAGS} -o "${BINARY}-${VERSION}_linux-386" ${SOURCES}
env GOOS=linux GOARCH=amd64 go build ${LDFLAGS} -o "${BINARY}-${VERSION}_linux-amd64" ${SOURCES}
env GOOS=darwin GOARCH=amd64 go build ${LDFLAGS} -o "${BINARY}-${VERSION}_macos-amd64" ${SOURCES}
.PHONY: install
install:
go install ${LDFLAGS} ./...
.PHONY: clean
clean:
if [ -f ${BINARY} ] ; then rm ${BINARY} ; fi
.PHONY: test
test:
go test