Просмотр исходного кода

Cross-compile improvements and expansion

Added use of gonative. See info here: https://inconshreveable.com/04-30-2014/cross-compiling-golang-programs-with-native-libraries/

Added windows-amd64 and linux-amd64 targets.
Adam Pritchard 11 лет назад
Родитель
Сommit
bc2bc70db9
2 измененных файлов с 23 добавлено и 10 удалено
  1. 10 3
      ConsoleClient/Dockerfile
  2. 13 7
      ConsoleClient/make.bash

+ 10 - 3
ConsoleClient/Dockerfile

@@ -11,7 +11,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 RUN apt-get update && \
   apt-get -y install build-essential python-software-properties bzip2 unzip curl \
     git subversion mercurial bzr \
-    gcc-mingw-w64-i686 upx
+    upx gcc-mingw-w64-i686 gcc-mingw-w64-x86-64
 
 # Install Go.
 ENV GOROOT=/go \
@@ -24,7 +24,14 @@ RUN echo "INSTALLING GO" && \
   mv /go-$GOVERSION $GOROOT && \
   echo $GOVERSION > $GOROOT/VERSION && \
   cd $GOROOT/src && \
-  ./all.bash && \
-  GOOS=windows GOARCH=386 CGO_ENABLED=1 CC_FOR_TARGET=/usr/bin/i686-w64-mingw32-gcc ./make.bash
+  ./all.bash
+
+ENV CGO_ENABLED=1
+RUN go get github.com/mitchellh/gox && \
+  go get github.com/inconshreveable/gonative && \
+  mkdir -p /usr/local/gonative && \
+  cd /usr/local/gonative && \
+  gonative build
+ENV PATH=/usr/local/gonative/go/bin:$PATH
 
 WORKDIR $GOPATH/src

+ 13 - 7
ConsoleClient/make.bash

@@ -11,12 +11,18 @@ fi
 echo 'go-getting dependencies...'
 go get -d -v ./...
 
-echo 'Building windows-386 executable...'
-CGO_ENABLED=1 GOOS=windows GOARCH=386 \
-  go build -a -v -o psiphon-tunnel-core.exe
-upx --best psiphon-tunnel-core.exe
+CGO_ENABLED=1
 
-mkdir -p windows_386
-mv -f psiphon-tunnel-core.exe windows_386/psiphon-tunnel-core.exe
+echo 'Building windows-386...'
+CC=/usr/bin/i686-w64-mingw32-gcc \
+  gox -verbose -osarch windows/386 -output windows_386_psiphon-tunnel-core
+upx --best windows_386_psiphon-tunnel-core.exe
 
-echo 'Windows executable can be found at: windows_386/psiphon-tunnel-core.exe'
+echo 'Building windows-amd64...'
+CC=/usr/bin/x86_64-w64-mingw32-gcc \
+  gox -verbose -osarch windows/amd64 -output windows_amd64_psiphon-tunnel-core
+upx --best windows_amd64_psiphon-tunnel-core.exe
+
+echo 'Building linux-amd64...'
+gox -verbose -osarch linux/amd64 -output linux_amd64_psiphon-tunnel-core
+upx --best linux_amd64_psiphon-tunnel-core