@@ -8,6 +8,7 @@ GOPACKAGES=./...
8
8
GOFILES_GLIDE =$(shell glide novendor)
9
9
GOFILES_NOVENDOR =$(shell find . -type f -name '* .go' -not -path "* /vendor/* ")
10
10
VERSION_FILE =VERSION
11
+ GOBIN =$(shell which go)
11
12
12
13
BUILD_VERSION: =$(shell git log --pretty=format:'% h' -n 1)
13
14
BUILD_DATE: =$(shell date -u)
17
18
VERSION:=
18
19
endif
19
20
21
+ SYSTEM_ARCH? =$(shell uname -m)
22
+ ifeq ($(SYSTEM_ARCH ) , x86)
23
+ SYSTEM_ARCH := 386
24
+ else ifeq ($(SYSTEM_ARCH), x86_64)
25
+ SYSTEM_ARCH := amd64
26
+ else
27
+ SYSTEM_ARCH := arm
28
+ endif
29
+
20
30
.PHONY : build
21
31
build :
22
- go build -ldflags " -X 'main.BuildVersion=${VERSION} ' -X 'main.BuildHash=${BUILD_VERSION} ' -X 'main.BuildDate=${BUILD_DATE} '" -o " ${BIN_DIR} /${BIN_FILE} " .
32
+ ${GOBIN} build -ldflags " -X 'main.BuildVersion=${VERSION} ' -X 'main.BuildHash=${BUILD_VERSION} ' -X 'main.BuildDate=${BUILD_DATE} '" -o " ${BIN_DIR} /${BIN_FILE} " .
33
+
34
+ .PHONY : build-custom
35
+ build-custom :
36
+ ${GOBIN} build -ldflags " -X 'main.BuildVersion=${VERSION} ' -X 'main.BuildHash=${BUILD_VERSION} ' -X 'main.BuildDate=${BUILD_DATE} '" -o " ${BIN_DIR} /${BIN_FILE} -${GOOS} -${GOARCH} " .
37
+
38
+ .PHONY : after-build
39
+ after-build :
23
40
${BIN_DIR} /${BIN_FILE} --completion-script-bash > ${CONTRIB_DIR} /.${BIN_FILE} .bash
24
41
${BIN_DIR} /${BIN_FILE} --completion-script-zsh > ${CONTRIB_DIR} /.${BIN_FILE} .zsh
25
42
${BIN_DIR} /${BIN_FILE} --help-man > ${CONTRIB_DIR} /${BIN_FILE} .1
60
77
61
78
.PHONY : package
62
79
package :
63
- debuild --preserve-env --preserve-envvar PATH -us -uc -d
80
+ debuild --preserve-env --preserve-envvar PATH -us -uc -d
81
+
82
+ .PHONY : cross-build
83
+ cross-build :
84
+ make repackage root=.. package=../$(BIN_FILE ) _$(VERSION ) _$(SYSTEM_ARCH ) .deb arch=386 os=linux
85
+ make repackage root=.. package=../$(BIN_FILE ) _$(VERSION ) _$(SYSTEM_ARCH ) .deb arch=arm os=linux
86
+
87
+ .PHONY : repackage
88
+ repackage :
89
+ GOOS=$(os ) GOARCH=$(arch ) make build-custom
90
+ $(eval TMP_DIR := $(shell mktemp -d) )
91
+ mkdir -p $(TMP_DIR ) /DEBIAN -p
92
+ dpkg-deb -x " $( package) " " $( TMP_DIR) /"
93
+ dpkg-deb -e " $( package) " " $( TMP_DIR) /DEBIAN/"
94
+ ifeq ($(arch ) , 386)
95
+ sed -i "s/Architecture: amd64/Architecture: i$(arch)/g" $(TMP_DIR)/DEBIAN/control
96
+ else ifeq ($(arch), arm)
97
+ sed -i "s/Architecture: amd64/Architecture: armhf/g" $(TMP_DIR)/DEBIAN/control
98
+ else
99
+ sed -i "s/Architecture: amd64/Architecture: $(arch)/g" $(TMP_DIR)/DEBIAN/control
100
+ endif
101
+ cp "${BIN_DIR}/${BIN_FILE}-$(os)-$(arch)" "$(TMP_DIR)/usr/bin/${BIN_FILE}"
102
+ cd "$(TMP_DIR)" && find usr -type f -print0 | xargs -0 md5sum > "$(TMP_DIR)/DEBIAN/md5sums"
103
+ dpkg-deb -b $(TMP_DIR) $(root)/$(BIN_FILE)_$(VERSION)_$(arch).deb
104
+ rm $(TMP_DIR) -rf
0 commit comments