]> git.lizzy.rs Git - micro.git/blobdiff - tools/cross-compile.sh
Add default ftoptions plugin to override settings
[micro.git] / tools / cross-compile.sh
index 10b889f07c80c2aa498a6680c2be10f70f44ecb6..1f68362062bd58c5224196347dac480da40ee55d 100755 (executable)
@@ -1,46 +1,75 @@
 cd ..
 
 mkdir -p binaries
-mkdir -p micro/bin
-cp -r runtime micro/
+mkdir -p micro-$1
 
-echo 'mv runtime ~/.micro' >> micro/install.sh
-chmod +x micro/install.sh
+cp LICENSE micro-$1
+cp README.md micro-$1
+
+HASH="$(git rev-parse --short HEAD)"
+VERSION="$(go run tools/build-version.go)"
+DATE="$(go run tools/build-date.go)"
 
 # Mac
 echo "OSX 64"
-GOOS=darwin GOARCH=amd64 go build -o micro/bin/micro ./src
-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'" -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/bin/micro ./src
-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/bin/micro ./src
-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/bin/micro ./src
-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
+
+# 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
 
-rm micro/bin/micro
-rm micro/install.sh
+# 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
 
-echo 'move runtime %HOMEPATH%\.micro' >> micro/install.bat
-chmod +x micro/install.bat
+rm micro-$1/micro
 
 # Windows
 echo "Windows 64"
-GOOS=windows GOARCH=amd64 go build -o micro/bin/micro.exe ./src
-zip -r -q -T micro-win64.zip micro
-mv micro-win64.zip binaries
+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 -o micro/bin/micro.exe ./src
-zip -r -q -T micro-win32.zip micro
-mv micro-win32.zip binaries
+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
+rm -rf micro-$1