.PHONY: all clean IMAGE_TAR=image.tar IMAGE_NAME=weaveworks/socksproxy GIT_REVISION := $(shell git rev-parse HEAD) PROXY_EXE=proxy NETGO_CHECK=@strings $@ | grep cgo_stub\\\.go >/dev/null || { \ rm $@; \ echo "\nYour go standard library was built without the 'netgo' build tag."; \ echo "To fix that, run"; \ echo " sudo go clean -i net"; \ echo " sudo go install -tags netgo std"; \ false; \ } all: $(IMAGE_TAR) $(IMAGE_TAR): Dockerfile $(PROXY_EXE) docker build --build-arg=revision=$(GIT_REVISION) -t $(IMAGE_NAME) . docker save $(IMAGE_NAME):latest > $@ $(PROXY_EXE): *.go go get -tags netgo ./$(@D) go build -ldflags "-extldflags \"-static\" -linkmode=external" -tags netgo -o $@ ./$(@D) $(NETGO_CHECK) clean: -docker rmi $(IMAGE_NAME) rm -rf $(PROXY_EXE) $(IMAGE_TAR) go clean ./...