-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
66 lines (51 loc) · 2.77 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
MODULE := github.com/guillaumeparis2000/mansionEyeBot
CMDS := mansioneye
GIT_COMMIT = $(shell git rev-parse HEAD)
GIT_SHA = $(shell git rev-parse --short HEAD)
GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null)
ifdef VERSION
BINARY_VERSION = $(VERSION)
endif
BINARY_VERSION ?= ${GIT_TAG}
GOFILES := $(shell find . -type f -name '*.go')
RELEASE_BUILDS := $(patsubst %,build/release/%,$(CMDS))
RELEASE_BUILDS_PI := $(patsubst %,build/release-pi/%,$(CMDS))
RELEASE_BUILDS_PI1 := $(patsubst %,build/release-pi1/%,$(CMDS))
DEBUG_BUILDS := $(patsubst %,build/debug/%,$(CMDS))
GO := go
GCFLAGS :=
GCFLAGS_RELEASE := $(GCFLAGS)
GCFLAGS_RELEASE_PI := $(GCFLAGS)
GCFLAGS_RELEASE_PI1 := $(GCFLAGS)
GCFLAGS_DEBUG := $(GCFLAGS) -N -l
LDFLAGS := -X github.com/guillaumeparis2000/mansionEyeBot/internal/version.metadata=${VERSION_METADATA}
LDFLAGS := -X github.com/guillaumeparis2000/mansionEyeBot/internal/version.version=${GIT_TAG}
LDFLAGS += -X github.com/guillaumeparis2000/mansionEyeBot/internal/version.gitCommit=${GIT_COMMIT}
LDFLAGS += -X github.com/guillaumeparis2000/mansionEyeBot/internal/version.gitTreeState=${GIT_DIRTY}
default: release
release: $(RELEASE_BUILDS)
release-pi: $(RELEASE_BUILDS_PI)
release-pi1: $(RELEASE_BUILDS_PI1)
debug: $(DEBUG_BUILDS)
build/debug/%: $(GOFILES)
@echo " \x1b[1;34mgo build \x1b[0;1m(debug)\x1b[0m build/linux/amd64/mansioneye-debug"
@$(GO) build -ldflags="$(LDFLAGS)" -trimpath -i -o "build/linux/amd64/mansioneye-debug" -gcflags "$(GCFLAGS_DEBUG)" "$(MODULE)/cmd/$(@F)"GS_DEBUG_PI)" "$(MODULE)/cmd/$(@F)"
build/release/%: $(GOFILES)
@echo " \x1b[1;34mgo build \x1b[0;1m(release)\x1b[0m build/linux/amd64/mansioneye"
@$(GO) build -ldflags="$(LDFLAGS)" -trimpath -i -o "build/linux/amd64/mansioneye" -gcflags "$(GCFLAGS_RELEASE)" "$(MODULE)/cmd/$(@F)"
build/release-pi/%: $(GOFILES)
@echo " \x1b[1;34mgo build \x1b[0;1m(release-pi)\x1b[0m build/linux/arm6/mansioneye-arm6"
@GOOS=linux GOARCH=arm GOARM=6 $(GO) build -ldflags="$(LDFLAGS) -s -w" -trimpath -i -o "build/linux/arm6/mansioneye-arm6" -gcflags "$(GCFLAGS_RELEASE_PI)" "$(MODULE)/cmd/$(@F)"
build/release-pi1/%: $(GOFILES)
@echo " \x1b[1;34mgo build \x1b[0;1m(release-pi1)\x1b[0m build/linux/arm5/mansioneye-arm5"
@GOOS=linux GOARCH=arm GOARM=5 $(GO) build -ldflags="$(LDFLAGS) -s -w" -trimpath -i -o "build/linux/arm5/mansioneye-arm5" -gcflags "$(GCFLAGS_RELEASE_PI1)" "$(MODULE)/cmd/$(@F)"
clean:
@echo " \x1b[1;31mrm\x1b[0m $(CMDS)"
@rm -f $(CMDS)
@echo " \x1b[1;31mrm\x1b[0m build"
@rm -rf build
info:
@echo "Version: ${VERSION}"
@echo "Git Tag: ${GIT_TAG}"
@echo "Git Commit: ${GIT_COMMIT}"
@echo "Git Tree State: ${GIT_DIRTY}"