chiark / gitweb /
golang: Various fixes
[termux-packages] / packages / golang / build.sh
1 TERMUX_PKG_HOMEPAGE=https://golang.org/
2 TERMUX_PKG_DESCRIPTION="Go programming language compiler"
3 TERMUX_PKG_VERSION=1.5rc1
4 TERMUX_PKG_BUILD_REVISION=1
5 TERMUX_PKG_SRCURL=https://storage.googleapis.com/golang/go1.5rc1.src.tar.gz
6 TERMUX_PKG_FOLDERNAME=go
7 TERMUX_PKG_KEEP_STATIC_LIBRARIES=true
8
9 TERMUX_HOST_GOLANG_DIR=$TERMUX_PKG_CACHEDIR/go-host-$TERMUX_PKG_VERSION
10
11 termux_step_post_extract_package () {
12         if [ ! -d $TERMUX_HOST_GOLANG_DIR ]; then
13                 cd $TERMUX_PKG_CACHEDIR
14                 curl -o go-host.tar.gz https://storage.googleapis.com/golang/go${TERMUX_PKG_VERSION}.linux-amd64.tar.gz
15                 tar xf go-host.tar.gz
16                 mv go $TERMUX_HOST_GOLANG_DIR
17         fi
18 }
19
20 termux_step_make_install () {
21         if [ "$TERMUX_ARCH" = "arm" ]; then
22                 export GOOS=android
23                 export CGO_ENABLED=1
24                 export GOARCH=arm
25                 export GOARM=7
26         elif [ "$TERMUX_ARCH" = "i686" ]; then
27                 export GOOS=linux
28                 export CGO_ENABLED=0
29                 export GOARCH=386
30                 export GO386=sse2
31         else
32                 echo "ERROR: Unsupported arch: $TERMUX_ARCH"
33                 exit 1
34         fi
35
36         TERMUX_GOLANG_DIRNAME=${GOOS}_$GOARCH
37
38         TERMUX_GODIR=$TERMUX_PREFIX/lib/go
39         rm -Rf $TERMUX_GODIR
40         mkdir -p $TERMUX_GODIR/{src,pkg/tool/$TERMUX_GOLANG_DIRNAME,pkg/include,pkg/$TERMUX_GOLANG_DIRNAME}
41
42         cd $TERMUX_PKG_SRCDIR/src
43         env CC_FOR_TARGET=$CC \
44             CXX_FOR_TARGET=$CXX \
45             CC=gcc \
46             GO_LDFLAGS="-extldflags=-pie" \
47             GOROOT_BOOTSTRAP=$TERMUX_HOST_GOLANG_DIR \
48             GOROOT_FINAL=$TERMUX_GODIR \
49             ./make.bash
50
51         cd ..
52         cp bin/$TERMUX_GOLANG_DIRNAME/{go,gofmt} $TERMUX_PREFIX/bin
53         cp VERSION $TERMUX_GODIR/
54         cp pkg/tool/$TERMUX_GOLANG_DIRNAME/* $TERMUX_GODIR/pkg/tool/$TERMUX_GOLANG_DIRNAME/
55         cp -Rf src/* $TERMUX_GODIR/src/
56         cp pkg/include/* $TERMUX_GODIR/pkg/include/
57         cp -Rf pkg/$TERMUX_GOLANG_DIRNAME/* $TERMUX_GODIR/pkg/$TERMUX_GOLANG_DIRNAME/
58 }