GNUmakefile 2.0 KB

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