wand/Makefile

83 lines
2.1 KiB
Makefile
Raw Normal View History

2025-10-31 20:31:49 +01:00
sources = $(shell find . -name "*.go" | grep -v iniparser.gen.go | grep -v docreflect.gen.go | grep -v docreflect_test.go)
2026-01-07 18:43:30 +01:00
PREFIX ?= /usr/local
prefix ?= $(PREFIX)
date = $(shell git show -s --format=%cs HEAD)
version = $(date)-$(shell git rev-parse --short HEAD)
2025-08-18 14:24:31 +02:00
default: build
2025-10-31 20:31:49 +01:00
lib: $(sources) iniparser.gen.go docreflect.gen.go
2025-08-24 01:45:25 +02:00
go build
go build ./tools
2025-08-18 14:24:31 +02:00
2026-01-07 21:43:12 +01:00
build: lib .build/wand .build/wand.1 cmd/wand/readme.md
2025-08-24 01:45:25 +02:00
2025-10-31 20:31:49 +01:00
check: $(sources) build docreflect_test.go
2025-08-18 14:24:31 +02:00
go test -count 1 ./...
2025-10-31 20:31:49 +01:00
.cover: $(sources) build docreflect_test.go
2025-08-18 14:24:31 +02:00
go test -count 1 -coverprofile .cover ./...
cover: .cover
go tool cover -func .cover
showcover: .cover
go tool cover -html .cover
2025-10-31 20:31:49 +01:00
fmt: $(sources) iniparser.gen.go docreflect.gen.go
2025-08-18 14:24:31 +02:00
go fmt ./...
2025-08-24 01:45:25 +02:00
2025-08-24 04:46:54 +02:00
iniparser.gen.go: ini.treerack
2026-01-07 20:12:19 +01:00
go run internal/script/ini-parser/parser.go wand < ini.treerack > iniparser.gen.go || rm -f iniparser.gen.go
2025-08-24 01:45:25 +02:00
2025-10-31 20:31:49 +01:00
docreflect.gen.go: $(sources)
2026-01-07 20:12:19 +01:00
go run internal/script/docreflect/docs.go \
2025-08-24 01:45:25 +02:00
wand \
code.squareroundforest.org/arpio/wand/tools \
2025-08-24 04:46:54 +02:00
> docreflect.gen.go \
2025-08-26 03:21:35 +02:00
|| rm -f docreflect.gen.go
2025-08-24 01:45:25 +02:00
2025-10-31 20:31:49 +01:00
docreflect_test.go: $(sources)
2026-01-07 20:12:19 +01:00
go run internal/script/docreflect/docs.go \
2025-09-11 21:16:39 +02:00
wand \
2025-09-05 03:19:00 +02:00
code.squareroundforest.org/arpio/wand/internal/tests/testlib \
> docreflect_test.go \
|| rm -f docreflect_test.go
2025-08-26 03:21:35 +02:00
.build:
mkdir -p .build
2025-08-24 01:45:25 +02:00
2025-10-31 20:31:49 +01:00
.build/wand: $(sources) iniparser.gen.go docreflect.gen.go .build
2025-12-10 20:31:10 +01:00
go build \
-o .build/wand \
2026-01-07 18:43:30 +01:00
-ldflags "-X main.version=$(version)" \
2025-12-10 20:31:10 +01:00
./cmd/wand
2025-08-24 01:45:25 +02:00
2026-01-07 18:43:30 +01:00
.build/wand.1: $(sources) iniparser.gen.go docreflect.gen.go .build
2026-01-07 20:12:19 +01:00
go run internal/script/man/man.go $(date) $(version) ./cmd/wand > .build/wand.1
2026-01-07 18:43:30 +01:00
2026-01-07 18:45:58 +01:00
cmd/wand/readme.md: $(sources) docreflect.gen.go
2026-01-07 20:12:19 +01:00
go run internal/script/markdown/md.go 0 ./cmd/wand > cmd/wand/readme.md
2026-01-07 18:43:30 +01:00
$(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
2025-08-26 03:21:35 +02:00
2026-01-07 21:43:12 +01:00
uninstall:
rm $(prefix)/bin/wand
rm $(prefix)/share/man/man1/wand.1
2025-08-26 03:21:35 +02:00
clean:
2025-09-01 02:07:48 +02:00
go clean ./...
2025-08-26 03:21:35 +02:00
rm -rf .build
rm -f docreflect.gen.go
2025-09-11 21:16:39 +02:00
rm -f docreflect_test.go
2025-08-26 03:21:35 +02:00
rm -f iniparser.gen.go
rm -f .cover