]> git.lizzy.rs Git - micro.git/blob - tools/cross-compile.sh
d5e9f784ab0c55ad50eedd8e312dfe4187df3443
[micro.git] / tools / cross-compile.sh
1 # Source tar
2
3 ./vendor-src.sh micro-$1-src
4 cd ..
5
6 mkdir -p binaries
7 mkdir -p micro-$1
8
9 mv micro-$1-src.tar.gz binaries
10 mv micro-$1-src.zip binaries
11
12 cp LICENSE micro-$1
13 cp README.md micro-$1
14 cp LICENSE-THIRD-PARTY micro-$1
15
16 HASH="$(git rev-parse --short HEAD)"
17 VERSION="$(go run tools/build-version.go)"
18 DATE="$(go run tools/build-date.go)"
19 ADDITIONAL_GO_LINKER_FLAGS="$(go run tools/info-plist.go $VERSION)"
20
21 # Mac
22 echo "OSX 64"
23 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE' $ADDITIONAL_GO_LINKER_FLAGS" -o micro-$1/micro ./cmd/micro
24 tar -czf micro-$1-osx.tar.gz micro-$1
25 mv micro-$1-osx.tar.gz binaries
26
27 # Linux
28 echo "Linux 64"
29 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
30 tar -czf micro-$1-linux64.tar.gz micro-$1
31 mv micro-$1-linux64.tar.gz binaries
32 echo "Linux 32"
33 GOOS=linux GOARCH=386 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
34 tar -czf micro-$1-linux32.tar.gz micro-$1
35 mv micro-$1-linux32.tar.gz binaries
36 echo "Linux ARM 32"
37 GOOS=linux GOARCH=arm go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
38 tar -czf micro-$1-linux-arm32.tar.gz micro-$1
39 mv micro-$1-linux-arm32.tar.gz binaries
40 echo "Linux ARM 64"
41 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
42 tar -czf micro-$1-linux-arm64.tar.gz micro-$1
43 mv micro-$1-linux-arm64.tar.gz binaries
44
45 # NetBSD
46 echo "NetBSD 64"
47 GOOS=netbsd GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
48 tar -czf micro-$1-netbsd64.tar.gz micro-$1
49 mv micro-$1-netbsd64.tar.gz binaries
50 echo "NetBSD 32"
51 GOOS=netbsd GOARCH=386 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
52 tar -czf micro-$1-netbsd32.tar.gz micro-$1
53 mv micro-$1-netbsd32.tar.gz binaries
54
55 # OpenBSD
56 echo "OpenBSD 64"
57 GOOS=openbsd GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
58 tar -czf micro-$1-openbsd64.tar.gz micro-$1
59 mv micro-$1-openbsd64.tar.gz binaries
60 echo "OpenBSD 32"
61 GOOS=openbsd GOARCH=386 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
62 tar -czf micro-$1-openbsd32.tar.gz micro-$1
63 mv micro-$1-openbsd32.tar.gz binaries
64
65 # FreeBSD
66 echo "FreeBSD 64"
67 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
68 tar -czf micro-$1-freebsd64.tar.gz micro-$1
69 mv micro-$1-freebsd64.tar.gz binaries
70 echo "FreeBSD 32"
71 GOOS=freebsd GOARCH=386 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
72 tar -czf micro-$1-freebsd32.tar.gz micro-$1
73 mv micro-$1-freebsd32.tar.gz binaries
74
75 rm micro-$1/micro
76
77 # Windows
78 echo "Windows 64"
79 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro.exe ./cmd/micro
80 zip -r -q -T micro-$1-win64.zip micro-$1
81 mv micro-$1-win64.zip binaries
82 echo "Windows 32"
83 GOOS=windows GOARCH=386 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro.exe ./cmd/micro
84 zip -r -q -T micro-$1-win32.zip micro-$1
85 mv micro-$1-win32.zip binaries
86
87 rm -rf micro-$1