]> git.lizzy.rs Git - micro.git/blobdiff - tools/cross-compile.sh
Merge pull request #965 from tommyshem/ada
[micro.git] / tools / cross-compile.sh
index 28ac3ee7bd929b96100adaaaf9b9f37d3c9be71b..d0b962c3d64c9a476164e57a5faf9955189d66c6 100755 (executable)
@@ -1,39 +1,83 @@
+# Source tar
+
+./vendor-src.sh micro-$1-src
 cd ..
 
 mkdir -p binaries
-mkdir -p micro
+mkdir -p micro-$1
+
+mv micro-$1-src.tar.gz binaries
+mv micro-$1-src.zip binaries
+
+cp LICENSE micro-$1
+cp README.md micro-$1
+cp LICENSE-THIRD-PARTY micro-$1
+
+HASH="$(git rev-parse --short HEAD)"
+VERSION="$(go run tools/build-version.go)"
+DATE="$(go run tools/build-date.go)"
+ADDITIONAL_GO_LINKER_FLAGS="$(go run tools/info-plist.go $VERSION)"
 
 # Mac
 echo "OSX 64"
-GOOS=darwin GOARCH=amd64 go build -o micro/micro ./cmd/micro
-tar -czf micro-osx.tar.gz micro
-mv micro-osx.tar.gz binaries
+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
+tar -czf micro-$1-osx.tar.gz micro-$1
+mv micro-$1-osx.tar.gz binaries
 
 # Linux
 echo "Linux 64"
-GOOS=linux GOARCH=amd64 go build -o micro/micro ./cmd/micro
-tar -czf micro-linux64.tar.gz micro
-mv micro-linux64.tar.gz binaries
+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
+tar -czf micro-$1-linux64.tar.gz micro-$1
+mv micro-$1-linux64.tar.gz binaries
 echo "Linux 32"
-GOOS=linux GOARCH=386 go build -o micro/micro ./cmd/micro
-tar -czf micro-linux32.tar.gz micro
-mv micro-linux32.tar.gz binaries
+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
+tar -czf micro-$1-linux32.tar.gz micro-$1
+mv micro-$1-linux32.tar.gz binaries
 echo "Linux arm"
-GOOS=linux GOARCH=arm go build -o micro/micro ./cmd/micro
-tar -czf micro-linux-arm.tar.gz micro
-mv micro-linux-arm.tar.gz binaries
+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
+tar -czf micro-$1-linux-arm.tar.gz micro-$1
+mv micro-$1-linux-arm.tar.gz binaries
 
-rm -rf micro
+# NetBSD
+echo "NetBSD 64"
+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
+tar -czf micro-$1-netbsd64.tar.gz micro-$1
+mv micro-$1-netbsd64.tar.gz binaries
+echo "NetBSD 32"
+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
+tar -czf micro-$1-netbsd32.tar.gz micro-$1
+mv micro-$1-netbsd32.tar.gz binaries
+
+# OpenBSD
+echo "OpenBSD 64"
+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
+tar -czf micro-$1-openbsd64.tar.gz micro-$1
+mv micro-$1-openbsd64.tar.gz binaries
+echo "OpenBSD 32"
+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
+tar -czf micro-$1-openbsd32.tar.gz micro-$1
+mv micro-$1-openbsd32.tar.gz binaries
+
+# FreeBSD
+echo "FreeBSD 64"
+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
+tar -czf micro-$1-freebsd64.tar.gz micro-$1
+mv micro-$1-freebsd64.tar.gz binaries
+echo "FreeBSD 32"
+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
+tar -czf micro-$1-freebsd32.tar.gz micro-$1
+mv micro-$1-freebsd32.tar.gz binaries
+
+rm micro-$1/micro
 
-# No windows building right now
-# echo 'move runtime %HOMEPATH%\.micro' >> micro/install.bat
-# chmod +x micro/install.bat
 # Windows
-# echo "Windows 64"
-# GOOS=windows GOARCH=amd64 go build -o micro/bin/micro.exe ./cmd/micro
-# zip -r -q -T micro-win64.zip micro
-# mv micro-win64.zip binaries
-# echo "Windows 32"
-# GOOS=windows GOARCH=386 go build -o micro/bin/micro.exe ./cmd/micro
-# zip -r -q -T micro-win32.zip micro
-# mv micro-win32.zip binaries
+echo "Windows 64"
+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
+zip -r -q -T micro-$1-win64.zip micro-$1
+mv micro-$1-win64.zip binaries
+echo "Windows 32"
+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
+zip -r -q -T micro-$1-win32.zip micro-$1
+mv micro-$1-win32.zip binaries
+
+rm -rf micro-$1