summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2018-07-10 17:43:57 +0200
committerRuben Pollan <meskio@sindominio.net>2018-07-10 17:46:04 +0200
commit5c85cdb28130eeced1d86c0228d70646ec9ca0a3 (patch)
tree6dfcf7b2fd30e8e64ab5786c790b9ef6747e8321 /Makefile
parent6c0d093f76b5a35a141589f15aec21fbe1e69d8e (diff)
[pkg] cross build windows installer
Diffstat (limited to 'Makefile')
-rwxr-xr-xMakefile20
1 files changed, 18 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 9741257..0cb2208 100755
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,7 @@ VERSION = $(shell git -C `go env GOPATH`/src/$(SYSTRAY) describe --tags)
# -----------------------------------------------------------------------------
# Windows
# -----------------------------------------------------------------------------
+CROSS_FLAGS = CGO_ENABLED=1 GOARCH=386 GOOS=windows CC="/usr/bin/i686-w64-mingw32-gcc" CGO_LDFLAGS="-lssp" CXX="i686-w64-mingw32-c++"
deps_win:
choco install -y golang python upx nssm nsis wget 7zip
@@ -24,17 +25,27 @@ openvpn_win:
copy .\staging\openvpn\openvpn.exe .\staging
copy .\staging\openvpn\*.dll .\staging
helper_win:
- go build -ldflags "-s -w" -o $(STAGING)/$(HELPER_BIN).exe .\helper
+ go build -ldflags "-s -w" -o $(STAGING)/$(HELPER_BIN).exe ./helper
upx $(STAGING)/$(HELPER_BIN).exe
systray_win:
go get -tags "standalone" -u $(SYSTRAY)
powershell '$$gopath=go env GOPATH;$$version=git -C $$gopath/src/$(SYSTRAY) describe --tags; go build -tags "standalone" -ldflags "-H windowsgui -s -w -X main.version=$$version" -o $(STAGING)/$(SYSTRAY_BIN).exe $(SYSTRAY)'
+ upx $(STAGING)/$(SYSTRAY_BIN).exe
build_win: staging\nssm.exe helper_win systray_win
# since it's tedious, I assume you did bootstrap openvpn_win manually already.
echo "[+] building windows"
if not exist dist mkdir dist
- make -C win
+ powershell '$$gopath=go env GOPATH;$$version=git -C $$gopath/src/$(SYSTRAY) describe --tags; $(MAKE) -C win VERSION=$$version'
"C:\Program Files (x86)\NSIS\makensis.exe" win/RiseupVPN-installer.nsi
+build_cross_win: staging/nssm.exe
+ echo "!define VERSION $(VERSION)" > $(STAGING)/version.nsh
+ $(CROSS_FLAGS) $(MAKE) helper_win
+ $(CROSS_FLAGS) go get -tags "standalone" -u $(SYSTRAY)
+ $(CROSS_FLAGS) go build -tags "standalone" -ldflags "-H windowsgui -s -w -X main.version=$(VERSION)" -o $(STAGING)/$(SYSTRAY_BIN).exe $(SYSTRAY)
+ upx $(STAGING)/$(SYSTRAY_BIN).exe
+ mkdir -p dist
+ make -C win VERSION=$(VERSION)
+ makensis win/RiseupVPN-installer.nsi
# -----------------------------------------------------------------------------
# OSX
@@ -86,3 +97,8 @@ clean:
staging\nssm.exe:
xcopy /y "C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe" $(STAGING)
+staging/nssm.exe:
+ wget https://nssm.cc/release/nssm-2.24.zip -O $(STAGING)/nssm.zip
+ unzip $(STAGING)/nssm.zip -d $(STAGING)
+ mv $(STAGING)/nssm-*/win32/nssm.exe $(STAGING)
+ rm -rf $(STAGING)/nssm-* $(STAGING)/nssm.zip