|
|
@@ -1,6 +1,6 @@
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
-set -e
|
|
|
+set -e -x
|
|
|
|
|
|
if [ ! -f make.bash ]; then
|
|
|
echo "make.bash must be run from $GOPATH/src/github.com/Psiphon-Labs/psiphon-tunnel-core/ConsoleClient"
|
|
|
@@ -9,6 +9,12 @@ fi
|
|
|
|
|
|
EXE_BASENAME="psiphon-tunnel-core"
|
|
|
|
|
|
+# The "OPENSSL" tag enables support of OpenSSL for use by IndistinguishableTLS.
|
|
|
+# This needs to be outside of prepare_build because it's used by go-get.
|
|
|
+WINDOWS_BUILD_TAGS="OPENSSL"
|
|
|
+LINUX_BUILD_TAGS=
|
|
|
+OSX_BUILD_TAGS=
|
|
|
+
|
|
|
prepare_build () {
|
|
|
BUILDINFOFILE="${EXE_BASENAME}_buildinfo.txt"
|
|
|
BUILDDATE=$(date --iso-8601=seconds)
|
|
|
@@ -49,7 +55,7 @@ fi
|
|
|
|
|
|
build_for_windows () {
|
|
|
echo "...Getting project dependencies (via go get) for Windows. Parameter is: '$1'"
|
|
|
- GOOS=windows go get -d -v ./...
|
|
|
+ GOOS=windows go get -d -v -tags "$WINDOWS_BUILD_TAGS" ./...
|
|
|
prepare_build
|
|
|
if [ $? != 0 ]; then
|
|
|
echo "....'go get' failed, exiting"
|
|
|
@@ -66,7 +72,7 @@ build_for_windows () {
|
|
|
CGO_CFLAGS="-I $PKG_CONFIG_PATH/include/" \
|
|
|
CGO_LDFLAGS="-L $PKG_CONFIG_PATH -L /usr/i686-w64-mingw32/lib/ -lssl -lcrypto -lwsock32 -lcrypt32 -lgdi32" \
|
|
|
CC=/usr/bin/i686-w64-mingw32-gcc \
|
|
|
- gox -verbose -ldflags "$LDFLAGS" -osarch windows/386 -output bin/windows/${EXE_BASENAME}-i686
|
|
|
+ gox -verbose -ldflags "$LDFLAGS" -osarch windows/386 -tags "$WINDOWS_BUILD_TAGS" -output bin/windows/${EXE_BASENAME}-i686
|
|
|
RETVAL=$?
|
|
|
echo ".....gox completed, exit code: $?"
|
|
|
if [ $RETVAL != 0 ]; then
|
|
|
@@ -89,7 +95,7 @@ build_for_windows () {
|
|
|
CGO_CFLAGS="-I $PKG_CONFIG_PATH/include/" \
|
|
|
CGO_LDFLAGS="-L $PKG_CONFIG_PATH -L /usr/x86_64-w64-mingw32/lib/ -lssl -lcrypto -lwsock32 -lcrypt32 -lgdi32" \
|
|
|
CC=/usr/bin/x86_64-w64-mingw32-gcc \
|
|
|
- gox -verbose -ldflags "$LDFLAGS" -osarch windows/amd64 -output bin/windows/${EXE_BASENAME}-x86_64
|
|
|
+ gox -verbose -ldflags "$LDFLAGS" -osarch windows/amd64 -tags "$WINDOWS_BUILD_TAGS" -output bin/windows/${EXE_BASENAME}-x86_64
|
|
|
RETVAL=$?
|
|
|
if [ $RETVAL != 0 ]; then
|
|
|
echo ".....gox failed, exiting"
|
|
|
@@ -104,7 +110,7 @@ build_for_windows () {
|
|
|
|
|
|
build_for_linux () {
|
|
|
echo "Getting project dependencies (via go get) for Linux. Parameter is: '$1'"
|
|
|
- GOOS=linux go get -d -v ./...
|
|
|
+ GOOS=linux go get -d -v -tags "$LINUX_BUILD_TAGS" ./...
|
|
|
prepare_build
|
|
|
if [ $? != 0 ]; then
|
|
|
echo "...'go get' failed, exiting"
|
|
|
@@ -113,7 +119,7 @@ build_for_linux () {
|
|
|
|
|
|
if [ -z $1 ] || [ "$1" == "32" ]; then
|
|
|
echo "...Building linux-i686"
|
|
|
- CFLAGS=-m32 gox -verbose -ldflags "$LDFLAGS" -osarch linux/386 -output bin/linux/${EXE_BASENAME}-i686
|
|
|
+ CFLAGS=-m32 gox -verbose -ldflags "$LDFLAGS" -osarch linux/386 -tags "$LINUX_BUILD_TAGS" -output bin/linux/${EXE_BASENAME}-i686
|
|
|
RETVAL=$?
|
|
|
if [ $RETVAL != 0 ]; then
|
|
|
echo ".....gox failed, exiting"
|
|
|
@@ -133,7 +139,7 @@ build_for_linux () {
|
|
|
|
|
|
if [ -z $1 ] || [ "$1" == "64" ]; then
|
|
|
echo "...Building linux-x86_64"
|
|
|
- gox -verbose -ldflags "$LDFLAGS" -osarch linux/amd64 -output bin/linux/${EXE_BASENAME}-x86_64
|
|
|
+ gox -verbose -ldflags "$LDFLAGS" -osarch linux/amd64 -tags "$LINUX_BUILD_TAGS" -output bin/linux/${EXE_BASENAME}-x86_64
|
|
|
RETVAL=$?
|
|
|
if [ $RETVAL != 0 ]; then
|
|
|
echo "....gox failed, exiting"
|
|
|
@@ -154,7 +160,7 @@ build_for_linux () {
|
|
|
|
|
|
build_for_osx () {
|
|
|
echo "Getting project dependencies (via go get) for OSX"
|
|
|
- GOOS=darwin go get -d -v ./...
|
|
|
+ GOOS=darwin go get -d -v -tags "$OSX_BUILD_TAGS" ./...
|
|
|
prepare_build
|
|
|
if [ $? != 0 ]; then
|
|
|
echo "..'go get' failed, exiting"
|
|
|
@@ -163,7 +169,7 @@ build_for_osx () {
|
|
|
|
|
|
echo "Building darwin-x86_64..."
|
|
|
echo "..Disabling CGO for this build"
|
|
|
- CGO_ENABLED=0 gox -verbose -ldflags "$LDFLAGS" -osarch darwin/amd64 -output bin/darwin/${EXE_BASENAME}-x86_64
|
|
|
+ CGO_ENABLED=0 gox -verbose -ldflags "$LDFLAGS" -osarch darwin/amd64 -tags "$OSX_BUILD_TAGS" -output bin/darwin/${EXE_BASENAME}-x86_64
|
|
|
# Darwin binaries don't seem to be UPXable when built this way
|
|
|
echo "..No UPX for this build"
|
|
|
}
|