From 87beb9a92b61a2210523b30b2e3305efc7c6911f Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Thu, 15 May 2025 04:32:50 -0300 Subject: Makefile: Simplify variable names and use instool(1) --- Makefile | 40 +++++++++++++++++++++------------------- deps.mk | 10 +++++----- mkdeps.sh | 19 +++++++++++-------- 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 974b992..55c499f 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ GOLDFLAGS = -L $(GOLIBDIR) asciidoctor -b manpage -o $@ $< .po.mo: - msgfmt -c -o $@ $< + msgfmt -cfv -o $@ $< @@ -45,15 +45,15 @@ all: include deps.mk -libs.a = $(libs.go:.go=.a) -mains.a = $(mains.go:.go=.a) -mains.bin = $(mains.go:.go=.bin) -functional-tests/lib.a = $(functional-tests/lib.go:.go=.a) -fuzz-targets/lib.a = $(fuzz-targets/lib.go:.go=.a) -benchmarks/lib.a = $(benchmarks/lib.go:.go=.a) -manpages.N.adoc = $(manpages.en.N.adoc) $(manpages.xx.N.adoc) -manpages.N = $(manpages.N.adoc:.adoc=) -sources.mo = $(sources.po:.po=.mo) +libs.a = $(libs.go:.go=.a) +mains.a = $(mains.go:.go=.a) +mains.bin = $(mains.go:.go=.bin) +functional/lib.a = $(functional/lib.go:.go=.a) +fuzz/lib.a = $(fuzz/lib.go:.go=.a) +benchmarks/lib.a = $(benchmarks/lib.go:.go=.a) +manpages.N.adoc = $(manpages.en.N.adoc) $(manpages.XX.N.adoc) +manpages.N = $(manpages.N.adoc:.adoc=) +sources.mo = $(sources.po:.po=.mo) sources = \ src/$(NAME).go \ @@ -67,7 +67,7 @@ derived-assets = \ $(mains.a) \ $(mains.bin) \ $(NAME).bin \ - $(manpages.xx.N.adoc) \ + $(manpages.XX.N.adoc) \ $(manpages.N) \ $(sources.mo) \ @@ -86,7 +86,7 @@ $(libs.a): Makefile deps.mk $(libs.a): src/$(NAME).go src/meta.go -$(fuzz-targets/lib.a): +$(fuzz/lib.a): go tool compile $(GOCFLAGS) -o $@ -p $(NAME) -d=libfuzzer \ $*.go src/$(NAME).go src/meta.go @@ -99,14 +99,14 @@ src/meta.go: Makefile $(NAME).bin: src/main.bin ln -fs src/main.bin $@ -$(manpages.xx.N.adoc): po/doc/po4a.cfg +$(manpages.XX.N.adoc): po/doc/po4a.cfg po4a --no-update --translate-only $@ po/doc/po4a.cfg tests.bin-check = \ tests/main.bin-check \ - $(functional-tests/main.go:.go=.bin-check) \ + $(functional/main.go:.go=.bin-check) \ $(tests.bin-check): $(EXEC)$*.bin @@ -135,12 +135,12 @@ check: check-unit check-integration FUZZSEC=1 -fuzz-targets/main.bin-check = $(fuzz-targets/main.go:.go=.bin-check) -$(fuzz-targets/main.bin-check): +fuzz/main.bin-check = $(fuzz/main.go:.go=.bin-check) +$(fuzz/main.bin-check): $(EXEC)$*.bin --test.fuzztime=$(FUZZSEC)s \ --test.fuzz='.*' --test.fuzzcachedir=tests/fuzz/corpus -fuzz: $(fuzz-targets/main.bin-check) +fuzz: $(fuzz/main.bin-check) @@ -182,7 +182,8 @@ install: all cp $(NAME).bin '$(DESTDIR)$(BINDIR)'/$(NAME) cp src/$(NAME).a '$(DESTDIR)$(GOLIBDIR)' cp $(sources) '$(DESTDIR)$(SRCDIR)' - mandir install '$(DESTDIR)$(MANDIR)' $(manpages.N) + instool '$(DESTDIR)$(MANDIR)' install man $(manpages.N) + instool '$(DESTDIR)$(LOCALEDIR)' install mo $(sources.mo) ## Uninstalls from $(DESTDIR)$(PREFIX). This is a perfect mirror ## of the "install" target, and removes *all* that was installed. @@ -193,7 +194,8 @@ uninstall: '$(DESTDIR)$(GOLIBDIR)'/$(NAME).a \ '$(DESTDIR)$(SRCDIR)' \ - mandir uninstall '$(DESTDIR)$(MANDIR)' $(manpages.N) + instool '$(DESTDIR)$(MANDIR)' uninstall man $(manpages.N) + instool '$(DESTDIR)$(LOCALEDIR)' uninstall mo $(sources.mo) diff --git a/deps.mk b/deps.mk index b6bcb65..f593d1e 100644 --- a/deps.mk +++ b/deps.mk @@ -27,7 +27,7 @@ manpages.en.N.adoc = \ doc/uuid.en.7tutorial.adoc \ doc/uuid.en.7why.adoc \ -manpages.xx.N.adoc = \ +manpages.XX.N.adoc = \ doc/uuid.de.0.adoc \ doc/uuid.de.1.adoc \ doc/uuid.de.3.adoc \ @@ -81,18 +81,18 @@ sources.po = \ po/uuid/fr.po \ po/uuid/pt.po \ -functional-tests/lib.go = \ +functional/lib.go = \ tests/functional/string-round-trip/uuid.go \ -functional-tests/main.go = \ +functional/main.go = \ tests/functional/string-round-trip/main.go \ -fuzz-targets/lib.go = \ +fuzz/lib.go = \ tests/fuzz/from-string/uuid.go \ tests/fuzz/new-v4-from/uuid.go \ tests/fuzz/new-v7-from/uuid.go \ -fuzz-targets/main.go = \ +fuzz/main.go = \ tests/fuzz/from-string/main.go \ tests/fuzz/new-v4-from/main.go \ tests/fuzz/new-v7-from/main.go \ diff --git a/mkdeps.sh b/mkdeps.sh index 14e475c..ae6fffc 100755 --- a/mkdeps.sh +++ b/mkdeps.sh @@ -5,8 +5,10 @@ export LANG=POSIX.UTF-8 libs() { - find src tests -name '*.go' | grep -v '/main\.go$' | - grep -v '/meta\.go$' + find src tests -name '*.go' | + grep -Ev '/(main|meta)\.go$' | + grep -Ev '/_cgo_(import|gotypes)\.go$' | + grep -Ev '\.cgo1\.go$' } mains() { @@ -24,19 +26,20 @@ xdocs() { } pos() { - find po/ -name '*.po' | grep -v '^po/doc/' + find po/ -name '*.po' | grep -Ev '^po/(doc|tests)/' } + libs | varlist 'libs.go' mains | varlist 'mains.go' docs | varlist 'manpages.en.N.adoc' -xdocs | varlist 'manpages.xx.N.adoc' +xdocs | varlist 'manpages.XX.N.adoc' pos | varlist 'sources.po' -find tests/functional/*/*.go -not -name main.go | varlist 'functional-tests/lib.go' -find tests/functional/*/main.go | varlist 'functional-tests/main.go' -find tests/fuzz/*/*.go -not -name main.go | varlist 'fuzz-targets/lib.go' -find tests/fuzz/*/main.go | varlist 'fuzz-targets/main.go' +find tests/functional/*/*.go -not -name main.go | varlist 'functional/lib.go' +find tests/functional/*/main.go | varlist 'functional/main.go' +find tests/fuzz/*/*.go -not -name main.go | varlist 'fuzz/lib.go' +find tests/fuzz/*/main.go | varlist 'fuzz/main.go' find tests/benchmarks/*/*.go -not -name main.go | varlist 'benchmarks/lib.go' find tests/benchmarks/*/main.go | varlist 'benchmarks/main.go' -- cgit v1.2.3