1.PHONY: help check 2.DEFAULT_GOAL := help 3 4SUBPKGS=cpu disk docker host internal load mem net process 5 6help: ## Show help 7 @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' 8 9check: ## Check 10 errcheck -ignore="Close|Run|Write" ./... 11 golint ./... | egrep -v 'underscores|HttpOnly|should have comment|comment on exported|CamelCase|VM|UID' && exit 1 || exit 0 12 13BUILD_FAIL_PATTERN=grep -v "exec format error" | grep "build failed" && exit 1 || exit 0 14build_test: ## test only buildable 15 # Supported operating systems 16 GOOS=linux GOARCH=amd64 go test ./... | $(BUILD_FAIL_PATTERN) 17 GOOS=linux GOARCH=386 go test ./... | $(BUILD_FAIL_PATTERN) 18 GOOS=linux GOARCH=arm go test ./... | $(BUILD_FAIL_PATTERN) 19 GOOS=linux GOARCH=arm64 go test ./... | $(BUILD_FAIL_PATTERN) 20 GOOS=linux GOARCH=riscv64 go test ./... | $(BUILD_FAIL_PATTERN) 21 GOOS=freebsd go test ./... | $(BUILD_FAIL_PATTERN) 22 GOOS=freebsd GOARCH=arm go test ./... | $(BUILD_FAIL_PATTERN) 23 CGO_ENABLED=0 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN) 24 GOOS=windows go test ./... | $(BUILD_FAIL_PATTERN) 25 # Operating systems supported for building only (not implemented error if used) 26 GOOS=solaris go test ./... | $(BUILD_FAIL_PATTERN) 27 GOOS=dragonfly go test ./... | $(BUILD_FAIL_PATTERN) 28 GOOS=netbsd go test ./... | $(BUILD_FAIL_PATTERN) 29 # cross build to OpenBSD not worked since process has "C" 30# GOOS=openbsd go test ./... | $(BUILD_FAIL_PATTERN) 31 32ifeq ($(shell uname -s), Darwin) 33 CGO_ENABLED=1 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN) 34endif 35 @echo 'Successfully built on all known operating systems' 36 37vet: 38 GOOS=darwin GOARCH=amd64 go vet ./... 39 GOOS=darwin GOARCH=386 go vet ./... 40 GOOS=darwin GOARCH=arm64 go vet ./... 41 42 GOOS=dragonfly GOARCH=amd64 go vet ./... 43 44 GOOS=freebsd GOARCH=amd64 go vet ./... 45 GOOS=freebsd GOARCH=386 go vet ./... 46 GOOS=freebsd GOARCH=arm go vet ./... 47 48 GOOS=linux GOARCH=386 go vet ./... 49 GOOS=linux GOARCH=amd64 go vet ./... 50 GOOS=linux GOARCH=arm64 go vet ./... 51 GOOS=linux GOARCH=arm go vet ./... 52 GOOS=linux GOARCH=mips64 go vet ./... 53 GOOS=linux GOARCH=mips64le go vet ./... 54 GOOS=linux GOARCH=mips go vet ./... 55 GOOS=linux GOARCH=mipsle go vet ./... 56 GOOS=linux GOARCH=ppc64le go vet ./... 57 GOOS=linux GOARCH=riscv64 go vet ./... 58 GOOS=linux GOARCH=s390x go vet ./... 59 60 GOOS=netbsd GOARCH=amd64 go vet ./... 61 62 GOOS=openbsd GOARCH=386 go vet ./... 63 GOOS=openbsd GOARCH=amd64 go vet ./... 64 65 GOOS=solaris GOARCH=amd64 go vet ./... 66 67 GOOS=windows GOARCH=amd64 go vet ./... 68 GOOS=windows GOARCH=386 go vet ./... 69 70macos_test: 71 CGO_ENABLED=0 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN) 72 CGO_ENABLED=1 GOOS=darwin go test ./... | $(BUILD_FAIL_PATTERN) 73 74init_tools: 75 go get github.com/golang/dep/cmd/dep 76