1TOOLS= golang.org/x/tools/cover 2GOCOVER_TMPFILE?= $(GOCOVER_FILE).tmp 3GOCOVER_FILE?= .cover.out 4GOCOVERHTML?= coverage.html 5FIND=`/usr/bin/which 2> /dev/null gfind find | /usr/bin/grep -v ^no | /usr/bin/head -n 1` 6XARGS=`/usr/bin/which 2> /dev/null gxargs xargs | /usr/bin/grep -v ^no | /usr/bin/head -n 1` 7 8test:: $(GOCOVER_FILE) 9 @$(MAKE) -C cmd/sockaddr test 10 11cover:: coverage_report 12 13$(GOCOVER_FILE):: 14 @${FIND} . -type d ! -path '*cmd*' ! -path '*.git*' -print0 | ${XARGS} -0 -I % sh -ec "cd % && rm -f $(GOCOVER_TMPFILE) && go test -coverprofile=$(GOCOVER_TMPFILE)" 15 16 @echo 'mode: set' > $(GOCOVER_FILE) 17 @${FIND} . -type f ! -path '*cmd*' ! -path '*.git*' -name "$(GOCOVER_TMPFILE)" -print0 | ${XARGS} -0 -n1 cat $(GOCOVER_TMPFILE) | grep -v '^mode: ' >> ${PWD}/$(GOCOVER_FILE) 18 19$(GOCOVERHTML): $(GOCOVER_FILE) 20 go tool cover -html=$(GOCOVER_FILE) -o $(GOCOVERHTML) 21 22coverage_report:: $(GOCOVER_FILE) 23 go tool cover -html=$(GOCOVER_FILE) 24 25audit_tools:: 26 @go get -u github.com/golang/lint/golint && echo "Installed golint:" 27 @go get -u github.com/fzipp/gocyclo && echo "Installed gocyclo:" 28 @go get -u github.com/remyoudompheng/go-misc/deadcode && echo "Installed deadcode:" 29 @go get -u github.com/client9/misspell/cmd/misspell && echo "Installed misspell:" 30 @go get -u github.com/gordonklaus/ineffassign && echo "Installed ineffassign:" 31 32audit:: 33 deadcode 34 go tool vet -all *.go 35 go tool vet -shadow=true *.go 36 golint *.go 37 ineffassign . 38 gocyclo -over 65 *.go 39 misspell *.go 40 41clean:: 42 rm -f $(GOCOVER_FILE) $(GOCOVERHTML) 43 44dev:: 45 @go build 46 @$(MAKE) -B -C cmd/sockaddr sockaddr 47 48install:: 49 @go install 50 @$(MAKE) -C cmd/sockaddr install 51 52doc:: 53 @echo Visit: http://127.0.0.1:6161/pkg/github.com/hashicorp/go-sockaddr/ 54 godoc -http=:6161 -goroot $GOROOT 55 56world:: 57 @set -e; \ 58 for os in solaris darwin freebsd linux windows android; do \ 59 for arch in amd64; do \ 60 printf "Building on %s-%s\n" "$${os}" "$${arch}" ; \ 61 env GOOS="$${os}" GOARCH="$${arch}" go build -o /dev/null; \ 62 done; \ 63 done 64 65 $(MAKE) -C cmd/sockaddr world 66