aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2025-05-12 07:36:15 -0300
committerEuAndreh <eu@euandre.org>2025-05-12 10:31:18 -0300
commit80ae5eff35d4fe48953cb5e61f929f765ab7cd0f (patch)
tree8037182f336a421de927138f5c562015023c38fe /Makefile
parentmv po/* po/doc/ (diff)
downloadgotext-80ae5eff35d4fe48953cb5e61f929f765ab7cd0f.tar.gz
gotext-80ae5eff35d4fe48953cb5e61f929f765ab7cd0f.tar.xz
Absorb gettext_test.go
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile41
1 files changed, 31 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 1d5fcd9..8b7ade9 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@ GOLDFLAGS = -L $(GOLIBDIR)
.SUFFIXES:
-.SUFFIXES: .go .a .c .o .bin .bin-check .adoc
+.SUFFIXES: .go .a .c .o .bin .bin-check .adoc .po .mo
.c.o:
$(CC) $(CFLAGS) -o $@ -c $<
@@ -32,7 +32,7 @@ GOLDFLAGS = -L $(GOLIBDIR)
.go.a:
go tool compile -I $(@D) $(GOCFLAGS) -o $@ -p $(*F) \
`find $< $$(if [ $(*F) != main ]; then \
- echo src/$(NAME).go src/version.go; fi) | uniq`
+ echo src/$(NAME).go src/meta.go; fi) | uniq`
.a.bin:
go tool link -L $(@D) $(GOLDFLAGS) -o $@ --extldflags '$(LDLIBS)' $<
@@ -40,6 +40,9 @@ GOLDFLAGS = -L $(GOLIBDIR)
.adoc:
asciidoctor -b manpage -o $@ $<
+.po.mo:
+ msgfmt -cfv -o $@ $<
+
all:
@@ -53,6 +56,7 @@ 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 = $(manpages.N.adoc:.adoc=)
+sources.mo = $(sources.po:.po=.mo)
cgo.go = \
src/_cgo_import.go \
@@ -73,24 +77,27 @@ objects = \
sources = \
src/$(NAME).go \
- src/version.go \
+ src/meta.go \
src/main.go \
derived-assets = \
- src/version.go \
+ src/meta.go \
$(objects) \
$(libs.a) \
$(mains.a) \
$(mains.bin) \
$(NAME).bin \
$(manpages.N) \
+ $(sources.mo) \
+ locale/.gitignore \
side-assets = \
src/_cgo_export.h \
src/_cgo_main.c \
tests/fuzz/corpus/ \
tests/benchmarks/*/main.txt \
+ locale/ \
@@ -101,7 +108,7 @@ all: $(derived-assets)
$(objects): Makefile deps.mk
$(libs.a): Makefile deps.mk
-$(libs.a): src/$(NAME).go src/version.go
+$(libs.a): src/$(NAME).go src/meta.go
$(libs.a): $(cgo.go) $(cgo.o)
$(cgo.go) $(cgo.c) $(cgo.o): src/_cgo_.o
@@ -114,27 +121,35 @@ src/_cgo_import.go: src/_cgo_.o
go tool cgo --dynpackage $(NAME) --dynimport src/_cgo_.o --dynout $@
src/$(NAME).a tests/$(NAME).a $(functional-tests/lib.a) $(benchmarks/lib.a):
- go tool compile $(GOCFLAGS) -o $@ -p $(*F) $(cgo.go) src/version.go \
+ go tool compile $(GOCFLAGS) -o $@ -p $(*F) $(cgo.go) src/meta.go \
`find $*.go | grep -Ev '^src/$(NAME)\.go$$'`
go tool pack r $@ $(cgo.o)
$(fuzz-targets/lib.a):
go tool compile $(GOCFLAGS) -o $@ -p $(NAME) -d=libfuzzer \
- $*.go $(cgo.go) src/version.go
+ $*.go $(cgo.go) src/meta.go
go tool pack r $@ $(cgo.o)
-src/version.go: Makefile
- echo 'package $(NAME); const Version = "$(VERSION)"' > $@
+src/meta.go: Makefile
+ echo 'package $(NAME)' > $@
+ echo 'const Version = "$(VERSION)"' >> $@
+ echo 'const Name = "$(NAME)"' >> $@
+ echo 'const LOCALEDIR = "$(LOCALEDIR)"' >> $@
$(NAME).bin: src/main.bin
ln -fs src/main.bin $@
+locale/.gitignore: po/tests/de.mo po/tests/es.mo
+ instool $(@D) install mo $(sources.mo)
+ echo '*' > $@
+
tests.bin-check = \
tests/main.bin-check \
$(functional-tests/main.go:.go=.bin-check) \
+tests/functional/api-usage/bin-check: locale/dir.sentinel
$(tests.bin-check):
$(EXEC)$*.bin
@@ -181,9 +196,15 @@ bench: $(benchmarks/main.bin-check)
-i18n:
+i18n-doc:
po4a po/doc/po4a.cfg
+i18n-tests:
+ gotext tests/functional/api-usage/gotext.go > po/tests/tests.pot
+ po4a po/tests/po4a.cfg
+
+i18n: i18n-doc i18n-tests
+
## Remove *all* derived artifacts produced during the build.