diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..20117db --- /dev/null +++ b/Makefile @@ -0,0 +1,76 @@ +# /************************************************************************ + # File: Makefile + # Author: mdr0id + # Date: 7/16/2019 + # Description: Used for local and container dev in CI deployments + # Usage: make + # + # Known bugs/missing features: + # + # ************************************************************************/ +PROJECT_NAME := "lightwalletd" +GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v '*_test.go') +GO_TEST_FILES := $(shell find . -name '*_test.go' -type f | rev | cut -d "/" -f2- | rev | sort -u) +GO_BUILD_FILES := $(shell find . -name 'main.go') + +#PKG_LIST := $(shell go list | grep -v /vendor/) +#GO_COV_REPORTS := + +.PHONY: all dep build clean test coverage coverhtml lint + +all: build + +# Lint golang files +lint: + @golint -set_exit_status + +show_tests: + @echo ${GO_TEST_FILES} + +# Run unittests +test: + @go test -v -short ${GO_TEST_FILES} + +# Run data race detector +race: dep + @go test -v -race -short ${GO_TEST_FILES} + +# Run memory sanitizer (need to ensure proper build flag is set) +msan: dep + @go test -v -msan -short ${GO_TEST_FILES} + +# Generate global code coverage report +coverage: + @go test -coverprofile=coverage.out ${GO_TEST_FILES} + +# Generate code coverage report +coverage_report: + @go tool cover -func=coverage.out + +# Generate code coverage report in HTML +coverage_html: + @go tool cover -html=coverage.out + +# Generate documents +docs: + @echo "Generating docs..." + +# Generate docker image +image: + @echo "Building lightwalletd image..." + +# Get dependencies +dep: + @go get -v -d ./... + +# Build binary +build: #dep + @go build -i -v ${GO_BUILD_FILES} + +# Install binaries into Go path +install: + go install ./... + +clean: + @echo "clean project..." + #rm -f $(PROJECT_NAME) \ No newline at end of file