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