aboutsummaryrefslogtreecommitdiffhomepage
path: root/GNUmakefile
diff options
context:
space:
mode:
Diffstat (limited to 'GNUmakefile')
-rw-r--r--GNUmakefile76
1 files changed, 51 insertions, 25 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 3c48127..3d7ec2c 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,45 +1,71 @@
+GO := go
+PORT := 8080
+
cssfiles := $(shell find static -name '*.css' -not -name '*.min.css')
cssfiles := $(cssfiles:.css=.min.css)
gofiles := $(shell find main.go src -name '*.go')
+sqlfiles := $(shell find src/dbx/sql -name '*.sql')
templates := $(shell find src/templates -name '*.tmpl')
-exttmpl := $(wildcard cmd/exttmpl/*.go)
-mfmt := $(wildcard cmd/mfmt/*.go)
+extpo := $(wildcard cmd/extpo/*.go)
+extwiki := $(wildcard cmd/extwiki/*.go)
-all: euro-cash.eu exttmpl mfmt
+ENABLED_LANGUAGES := $(shell ./aux/enabled-languages)
-euro-cash.eu: $(cssfiles) $(templates) $(gofiles)
- go build
+all: euro-cash.eu extpo
-all-i18n: exttmpl
- go generate ./src
- find . -name out.gotext.json | mcp -b sed s/out/messages/
- go build
+euro-cash.eu: $(cssfiles) $(templates) $(gofiles) $(sqlfiles)
+ $(GO) build
-exttmpl: $(exttmpl)
- go build ./cmd/exttmpl
+extract: extpo extwiki
+ find . -name '*.go' -exec xgotext --foreign-user -o po/backend.pot {} +
+ find . -name '*.html.tmpl' -exec ./extwiki {} + \
+ | gofmt >src/wikipedia/links.gen.go
+ find . -name '*.html.tmpl' -exec ./extpo {} + \
+ | msgcat po/backend.pot - -o po/messages.pot
+ for bcp in $(ENABLED_LANGUAGES); \
+ do \
+ dir="po/$$bcp"; \
+ if [ ! -d "$$dir" ]; \
+ then \
+ mkdir -p "$$dir"; \
+ msginit -i po/messages.pot -o "$$dir/messages.po" -l$$bcp.UTF-8 \
+ --no-translator; \
+ fi; \
+ msgmerge -UN "po/$$bcp/messages.po" po/messages.pot; \
+ done
+ find po -name '*~' -delete
-mfmt: $(mfmt)
- go build ./cmd/mfmt
+po:
+ for po in po/*/*.po; \
+ do \
+ msgfmt "$$po" -o "$${po%.*}.mo"; \
+ done
-%.min.css: %.css
- lightningcss -m $< -o $@
+extpo: $(extpo)
+ $(GO) build ./cmd/extpo
-watch:
- ls euro-cash.eu | entr -r ./euro-cash.eu -no-email -port $${PORT:-8080}
+extwiki: $(extwiki)
+ $(GO) build ./cmd/extwiki
-release: all-i18n
- [ -n "$$GOOS" -a -n "$$GOARCH" ]
- find data static -type f \( \
- -not -name '*.css' \
- -or -name '*.min.css' \
- \) -exec tar -cf euro-cash.eu-$$GOOS-$$GOARCH.tar.gz euro-cash.eu {} +
+%.min.css: %.css
+ if command -v lightningcss >/dev/null; \
+ then \
+ lightningcss -m $< -o $@; \
+ else \
+ cp $< $@; \
+ fi
clean:
find . -type f \( \
-name euro-cash.eu \
- -or -name exttmpl \
- -or -name mfmt \
+ -or -name extpo \
+ -or -name extwiki \
-or -name '*.min.css' \
-or -name '*.tar.gz' \
\) -delete
+
+debug:
+ ./euro-cash.eu -debug -no-email -db-name :memory: -port $(PORT)
+
+.PHONY: clean debug extract po release