1TOOL?=vault-plugin-auth-azure 2TEST?=$$(go list ./...) 3EXTERNAL_TOOLS=\ 4 github.com/mitchellh/gox 5BUILD_TAGS?=${TOOL} 6GOFMT_FILES?=$$(find . -name '*.go' | grep -v vendor) 7 8# bin generates the releaseable binaries for this plugin 9bin: generate 10 @CGO_ENABLED=0 BUILD_TAGS='$(BUILD_TAGS)' sh -c "'$(CURDIR)/scripts/build.sh'" 11 12default: dev 13 14# dev creates binaries for testing Vault locally. These are put 15# into ./bin/ as well as $GOPATH/bin, except for quickdev which 16# is only put into /bin/ 17quickdev: generate 18 @CGO_ENABLED=0 go build -i -tags='$(BUILD_TAGS)' -o bin/${TOOL} 19dev: generate 20 @CGO_ENABLED=0 BUILD_TAGS='$(BUILD_TAGS)' VAULT_DEV_BUILD=1 sh -c "'$(CURDIR)/scripts/build.sh'" 21 22testcompile: generate 23 @for pkg in $(TEST) ; do \ 24 go test -v -c -tags='$(BUILD_TAGS)' $$pkg -parallel=4 ; \ 25 done 26 27# test runs all tests 28test: generate 29 @if [ "$(TEST)" = "./..." ]; then \ 30 echo "ERROR: Set TEST to a specific package"; \ 31 exit 1; \ 32 fi 33 VAULT_ACC=1 go test -tags='$(BUILD_TAGS)' $(TEST) -v $(TESTARGS) -timeout 10m 34 35# generate runs `go generate` to build the dynamically generated 36# source files. 37generate: 38 @go generate $(go list ./...) 39 40# bootstrap the build by downloading additional tools 41bootstrap: 42 @for tool in $(EXTERNAL_TOOLS) ; do \ 43 echo "Installing/Updating $$tool" ; \ 44 go get -u $$tool; \ 45 done 46 47fmt: 48 gofmt -w $(GOFMT_FILES) 49 50# deps updates all dependencies for this project. 51deps: 52 @echo "==> Updating deps for ${TOOL}" 53 @dep ensure -update 54 55.PHONY: bin default generate test bootstrap fmt deps 56