From 588b9f01ae1ac81844b52c095c9abcd9326d35a3 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 23 May 2018 03:17:51 +0200 Subject: Adopt GOPATH GOPATH is annoying, but the Go community pushing me to adopt it is even more annoying. --- Makefile | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'Makefile') 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 -- cgit v1.2.3