build: respect GOBIN when using make targets
This PR updates GNUMakefile to respect $GOBIN if it is set in the environment or via an $GOENV file. Previously we hard-coded the output to $GOPATH/bin, which is not necessarily the desired behavior.
This commit is contained in:
parent
c30b4617aa
commit
98758d4287
|
@ -0,0 +1,3 @@
|
|||
```release-note:improvement
|
||||
build: make targets now respect GOBIN variable
|
||||
```
|
16
GNUmakefile
16
GNUmakefile
|
@ -12,7 +12,13 @@ ifneq (MSYS_NT,$(THIS_OS))
|
|||
# GOPATH supports PATH style multi-paths; assume the first entry is favorable.
|
||||
# Necessary because new Circle images override GOPATH with multiple values.
|
||||
# See: https://discuss.circleci.com/t/gopath-is-set-to-multiple-directories/7174
|
||||
GOPATH=$(shell go env GOPATH | cut -d: -f1)
|
||||
GOPATH := $(shell go env GOPATH | cut -d: -f1)
|
||||
endif
|
||||
|
||||
# Respect $GOBIN if set in environment or via $GOENV file.
|
||||
BIN := $(shell go env GOBIN)
|
||||
ifndef BIN
|
||||
BIN := $(shell go env GOPATH)/bin
|
||||
endif
|
||||
|
||||
GO_TAGS ?=
|
||||
|
@ -253,15 +259,15 @@ dev: hclfmt ## Build for the current development platform
|
|||
@echo "==> Removing old development build..."
|
||||
@rm -f $(PROJECT_ROOT)/$(DEV_TARGET)
|
||||
@rm -f $(PROJECT_ROOT)/bin/nomad
|
||||
@rm -f $(GOPATH)/bin/nomad
|
||||
@rm -f $(BIN)/nomad
|
||||
@if [ -d vendor ]; then echo -e "==> WARNING: Found vendor directory. This may cause build errors, consider running 'rm -r vendor' or 'make clean' to remove.\n"; fi
|
||||
@$(MAKE) --no-print-directory \
|
||||
$(DEV_TARGET) \
|
||||
GO_TAGS="$(GO_TAGS) $(NOMAD_UI_TAG)"
|
||||
@mkdir -p $(PROJECT_ROOT)/bin
|
||||
@mkdir -p $(GOPATH)/bin
|
||||
@mkdir -p $(BIN)
|
||||
@cp $(PROJECT_ROOT)/$(DEV_TARGET) $(PROJECT_ROOT)/bin/
|
||||
@cp $(PROJECT_ROOT)/$(DEV_TARGET) $(GOPATH)/bin
|
||||
@cp $(PROJECT_ROOT)/$(DEV_TARGET) $(BIN)
|
||||
|
||||
.PHONY: prerelease
|
||||
prerelease: GO_TAGS=ui codegen_generated release
|
||||
|
@ -341,7 +347,7 @@ clean: ## Remove build artifacts
|
|||
@rm -rf "$(PROJECT_ROOT)/bin/"
|
||||
@rm -rf "$(PROJECT_ROOT)/pkg/"
|
||||
@rm -rf "$(PROJECT_ROOT)/vendor/"
|
||||
@rm -f "$(GOPATH)/bin/nomad"
|
||||
@rm -f "$(BIN)/nomad"
|
||||
|
||||
.PHONY: testcluster
|
||||
testcluster: ## Bring up a Linux test cluster using Vagrant. Set PROVIDER if necessary.
|
||||
|
|
Loading…
Reference in New Issue