sources = $(shell find . -name "*.go" | grep -v iniparser.gen.go | grep -v docreflect.gen.go | grep -v docreflect_test.go) PREFIX ?= /usr/local prefix ?= $(PREFIX) date = $(shell git show -s --format=%cs HEAD) version = $(date)-$(shell git rev-parse --short HEAD) default: build lib: $(sources) iniparser.gen.go docreflect.gen.go go build go build ./tools build: lib .build/wand cmd/wand/readme.md check: $(sources) build docreflect_test.go go test -count 1 ./... .cover: $(sources) build docreflect_test.go go test -count 1 -coverprofile .cover ./... cover: .cover go tool cover -func .cover showcover: .cover go tool cover -html .cover fmt: $(sources) iniparser.gen.go docreflect.gen.go go fmt ./... iniparser.gen.go: ini.treerack go run internal/script/ini-parser/parser.go wand < ini.treerack > iniparser.gen.go || rm -f iniparser.gen.go docreflect.gen.go: $(sources) go run internal/script/docreflect/docs.go \ wand \ code.squareroundforest.org/arpio/wand/tools \ > docreflect.gen.go \ || rm -f docreflect.gen.go docreflect_test.go: $(sources) go run internal/script/docreflect/docs.go \ wand \ code.squareroundforest.org/arpio/wand/internal/tests/testlib \ > docreflect_test.go \ || rm -f docreflect_test.go .build: mkdir -p .build .build/wand: $(sources) iniparser.gen.go docreflect.gen.go .build go build \ -o .build/wand \ -ldflags "-X main.version=$(version)" \ ./cmd/wand .build/wand.1: $(sources) iniparser.gen.go docreflect.gen.go .build go run internal/script/man/man.go $(date) $(version) ./cmd/wand > .build/wand.1 cmd/wand/readme.md: $(sources) docreflect.gen.go go run internal/script/markdown/md.go 0 ./cmd/wand > cmd/wand/readme.md $(prefix)/bin: mkdir -p $(prefix)/bin $(prefix)/share/man/man1: mkdir -p $(prefix)/share/man/man1 install: .build/wand .build/wand.1 $(prefix)/bin $(prefix)/share/man/man1 cp .build/wand $(prefix)/bin cp .build/wand.1 $(prefix)/share/man/man1 clean: go clean ./... rm -rf .build rm -f docreflect.gen.go rm -f docreflect_test.go rm -f iniparser.gen.go rm -f .cover