79 lines
2.0 KiB
Makefile
79 lines
2.0 KiB
Makefile
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 script/ini-parser/parser.go wand < ini.treerack > iniparser.gen.go || rm -f iniparser.gen.go
|
|
|
|
docreflect.gen.go: $(sources)
|
|
go run 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 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 script/man/man.go $(date) $(version) ./cmd/wand > .build/wand.1
|
|
|
|
cmd/wand/readme.md:
|
|
go run 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
|