From 5c85cdb28130eeced1d86c0228d70646ec9ca0a3 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Tue, 10 Jul 2018 17:43:57 +0200 Subject: [pkg] cross build windows installer --- Makefile | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'Makefile') 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 -- cgit v1.2.3