github.com/xiaq/elvish@v0.12.0/buildall.sh (about) 1 #!/bin/sh -e 2 3 IFS= 4 5 VERSION=`git describe --tags --always --dirty=-dirty` 6 7 : ${BUILDER:=`id -un`@`hostname`} 8 : ${VERSION_SUFFIX:=$VERSION} 9 : ${BIN_DIR:=./bin} 10 11 export GOOS GOARCH 12 13 buildone() { 14 GOOS=$1 15 GOARCH=$2 16 STEM=elvish-$GOOS-$GOARCH-$VERSION_SUFFIX 17 if test $GOOS = windows; then 18 BIN=$STEM.exe 19 ARCHIVE=$STEM.zip 20 else 21 BIN=$STEM 22 ARCHIVE=$STEM.tar.gz 23 fi 24 25 echo "Going to build $BIN" 26 go build -o $BIN_DIR/$BIN -ldflags \ 27 "-X github.com/elves/elvish/buildinfo.Version=$VERSION \ 28 -X github.com/elves/elvish/buildinfo.GoRoot=`go env GOROOT` \ 29 -X github.com/elves/elvish/buildinfo.GoPath=`go env GOPATH`" 30 31 ( 32 cd $BIN_DIR 33 if test $GOOS = windows; then 34 zip $ARCHIVE $BIN 35 else 36 tar cfz $ARCHIVE $BIN 37 fi 38 ) 39 40 echo "Built $BIN and archived $ARCHIVE" 41 } 42 43 build() { 44 local os=$1 arch= 45 shift 46 for arch in $@; do 47 buildone $os $arch 48 done 49 } 50 51 build darwin amd64 52 build windows amd64 386 53 build linux amd64 386 arm64