summaryrefslogtreecommitdiffhomepage
path: root/Makefile
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-05-23 03:17:51 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-05-23 05:18:13 +0200
commit588b9f01ae1ac81844b52c095c9abcd9326d35a3 (patch)
tree26031461215b1b355971d1590bc0b946ed814f7e /Makefile
parentf70bd1fab32ce7d1bb482f97cbca0a3ec0c45e40 (diff)
Adopt GOPATH
GOPATH is annoying, but the Go community pushing me to adopt it is even more annoying.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile29
1 files changed, 25 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index e1c53c5..bef7edf 100644
--- a/Makefile
+++ b/Makefile
@@ -5,18 +5,39 @@ BINDIR ?= $(PREFIX)/bin
ifeq ($(shell go env GOOS),linux)
ifeq ($(wildcard .git),)
$(error Do not build this for Linux. Instead use the Linux kernel module. See wireguard.com/install/ for more info.)
+else
+$(shell printf 'package main\nconst UseTheKernelModuleInstead = 0xdeadbabe\n' > ireallywantobuildon_linux.go)
endif
endif
all: wireguard-go
-wireguard-go: $(wildcard *.go) $(wildcard */*.go)
- go build -v -o $@
+export GOPATH := $(CURDIR)/.gopath
+export PATH := $(PATH):$(CURDIR)/.gopath/bin
+GO_IMPORT_PATH := git.zx2c4.com/wireguard-go
+
+.gopath/.created:
+ rm -rf .gopath
+ mkdir -p $(dir .gopath/src/$(GO_IMPORT_PATH))
+ ln -s ../../.. .gopath/src/$(GO_IMPORT_PATH)
+ touch $@
+
+vendor/.created: Gopkg.toml Gopkg.lock .gopath/.created
+ command -v dep >/dev/null || go get -v github.com/golang/dep/cmd/dep
+ cd .gopath/src/$(GO_IMPORT_PATH) && dep ensure -vendor-only -v
+ touch $@
+
+wireguard-go: $(wildcard *.go) $(wildcard */*.go) .gopath/.created vendor/.created
+ go build $(GO_BUILD_EXTRA_ARGS) -v $(GO_IMPORT_PATH)
install: wireguard-go
- @install -v -d "$(DESTDIR)$(BINDIR)" && install -m 0755 -v wireguard-go "$(DESTDIR)$(BINDIR)/wireguard-go"
+ @install -v -d "$(DESTDIR)$(BINDIR)" && install -v -m 0755 wireguard-go "$(DESTDIR)$(BINDIR)/wireguard-go"
clean:
rm -f wireguard-go
-.PHONY: clean install
+update-dep:
+ command -v dep >/dev/null || go get -v github.com/golang/dep/cmd/dep
+ cd .gopath/src/$(GO_IMPORT_PATH) && dep ensure -update -v
+
+.PHONY: clean install update-dep