sources = $(shell find . -name "*.go" | grep -v testdocs_test.go | grep -v cmd/docreflect/docs.gen.go) PREFIX ?= /usr/local prefix ?= $(PREFIX) release_date = $(shell git show -s --format=%cs HEAD) version = $(release_date)-$(shell git rev-parse --short HEAD) default: build libdocreflect: $(sources) go build . libgenerate: $(sources) go build ./generate .build: mkdir -p .build .build/docreflect: $(sources) .build cmd/docreflect/docs.gen.go go build -o .build/docreflect -ldflags "-X main.version=$(version)" ./cmd/docreflect .build/docreflect.1: $(sources) .build cmd/docreflect/docs.gen.go go run scripts/man.go $(version) $(release_date) ./cmd/docreflect > .build/docreflect.1 cmd/docreflect/readme.md: $(sources) cmd/docreflect/docs.gen.go go run scripts/markdown.go ./cmd/docreflect > cmd/docreflect/readme.md build: libdocreflect libgenerate .build/docreflect cmd/docreflect/readme.md testdocs_test.go: $(sources) .build go run ./cmd/docreflect \ docreflect_test \ code.squareroundforest.org/arpio/docreflect/internal/tests/src/testpackage \ > .build/testdocs_test.go \ && mv .build/testdocs_test.go testdocs_test.go cmd/docreflect/docs.gen.go: $(sources) go run ./cmd/docreflect \ main \ code.squareroundforest.org/arpio/docreflect/generate \ > .build/docs.gen.go \ && mv .build/docs.gen.go cmd/docreflect/docs.gen.go .cover: $(sources) testdocs_test.go go test -count 1 -coverprofile .cover . ./generate check: .cover cover: .cover go tool cover -func .cover showcover: .cover go tool cover -html .cover fmt: $(sources) go fmt . ./generate ./cmd/docreflect ./scripts $(prefix)/bin/docreflect: .build/docreflect cp .build/docreflect $(prefix)/bin/docreflect $(prefix)/share/man/man1/docreflect.1: .build/docreflect.1 cp .build/docreflect.1 $(prefix)/share/man/man1/docreflect.1 install: $(prefix)/bin/docreflect $(prefix)/share/man/man1/docreflect.1 clean: go clean ./... rm -rf .build rm -f testdocs_test.go