aboutsummaryrefslogtreecommitdiffhomepage
path: root/GNUmakefile
blob: 23f261b24e09cc28fb5dc76888e81ee9674844e1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
GO := go

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)

ENABLED_LANGUAGES := $(shell ./enabled-languages)

all: euro-cash.eu exttmpl

euro-cash.eu: $(cssfiles) $(templates) $(gofiles) $(sqlfiles)
	$(GO) build

po: exttmpl
	find . -name '*.go' -exec xgettext -Lgo --force-po --from-code=UTF-8 \
		-o po/backend.pot {} +
	find . -name '*.html.tmpl' -exec ./exttmpl {} + \
		| 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 --update "po/$$bcp/messages.po" po/messages.pot;               \
	done
	find po -name '*~' -delete

exttmpl: $(exttmpl)
	$(GO) build ./cmd/exttmpl

%.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 '*.min.css'                                                   \
		-or -name '*.tar.gz'                                                    \
	\) -delete

.PHONY: clean po release