summaryrefslogtreecommitdiffhomepage
path: root/app/tools
diff options
context:
space:
mode:
Diffstat (limited to 'app/tools')
-rw-r--r--app/tools/libwg-go/Makefile15
1 files changed, 13 insertions, 2 deletions
diff --git a/app/tools/libwg-go/Makefile b/app/tools/libwg-go/Makefile
index 300b3841..c54797c7 100644
--- a/app/tools/libwg-go/Makefile
+++ b/app/tools/libwg-go/Makefile
@@ -2,7 +2,9 @@ containing = $(foreach v,$2,$(if $(findstring $1,$v),$v))
FILES := $(wildcard ../wireguard-go/*/*.go) $(wildcard ../wireguard-go/*.go)
FILES := $(filter-out %/main.go $(filter-out %_linux.go,$(call containing,_,$(FILES))),$(FILES))
-export GOPATH := $(CURDIR)/go
+export GOPATH := $(CURDIR)/gopath
+export GOROOT := $(CURDIR)/goroot
+export PATH := $(GOROOT)/bin:$(PATH)
CLANG_FLAGS := --target=$(ANDROID_LLVM_TRIPLE) --gcc-toolchain=$(ANDROID_TOOLCHAIN_ROOT) --sysroot=$(ANDROID_SYSROOT)
export CGO_CFLAGS := $(CLANG_FLAGS) $(CFLAGS)
export CGO_LDFLAGS := $(CLANG_FLAGS) $(LDFLAGS)
@@ -12,7 +14,16 @@ export GOARCH := $(shell $(GO_ARCH_FILTER))
export GOOS := android
export CGO_ENABLED := 1
-$(DESTDIR)/libwg-go.so: $(FILES) api-android.go jni.c
+GORELEASETARBALL := https://dl.google.com/go/go1.10.1.$(shell uname -s | tr '[:upper:]' '[:lower:]')-amd64.tar.gz
+
+default: $(DESTDIR)/libwg-go.so
+
+$(GOROOT)/bin/go:
+ rm -rf "$(GOROOT)"
+ mkdir -p "$(GOROOT)"
+ curl "$(GORELEASETARBALL)" | tar -C "$(GOROOT)" --strip-components=1 -xzf - || rm -rf "$(GOROOT)"
+
+$(DESTDIR)/libwg-go.so: $(FILES) api-android.go jni.c $(GOROOT)/bin/go
find . -name '*.go' -type l -delete
find . -type d -empty -delete
mkdir -p $(subst ../wireguard-go/,./,$(dir $(FILES)))