[pve-devel] [RFC i18n] buildsys: refactor building and language initialization
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Jan 23 09:33:11 CET 2018
rsync everything in a temporary build directory and let buildpackage
handle the rest.
Has the advantage that both packages can be assembled in one
buildpackage run, whereas previous it was called twice.
Further, we can omit the do `make install` manually before calling
dpkg-buildpackage and use .SECONDARY so that make keeps the files.
It's not used anywhere else in our build systems and not really
needed.
If a new language gets added just run:
make init-XY.po
This won't happen that often, so an auto create has not a real use,
especially as the .po file must then be edited anyway.
Also we now can reuse the new 'messages.pot' target in the 'update'
target and a strict separation between initialising a new language
and updating a existing one seems reasonable.
Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
Makefile | 33 +++++++++++++++------------------
1 file changed, 15 insertions(+), 18 deletions(-)
diff --git a/Makefile b/Makefile
index 44e7705..fc2c625 100644
--- a/Makefile
+++ b/Makefile
@@ -14,24 +14,22 @@ PVELOCALEDIR=${DESTDIR}/usr/share/pve-i18n
PMG_LANG_FILES=$(patsubst %, pmg-lang-%.js, $(LINGUAS))
PVE_LANG_FILES=$(patsubst %, pve-lang-%.js, $(LINGUAS))
-all: | submodule
+all:
.PHONY: deb
deb: $(DEBS)
$(DEBS): | submodule
rm -rf dest
- mkdir dest
- rsync -a debian dest
- make DESTDIR=dest install
+ rsync -a * dest
cd dest; dpkg-buildpackage -b -us -uc
- lintian $@
+ lintian $(DEBS)
.PHONY: submodule
submodule:
test -f "pmg-gui/Makefile" || git submodule update --init
.PHONY: install
-install: ${PMG_LANG_FILES} ${PVE_LANG_FILES}
+install: ${PMG_LANG_FILES} ${PVE_LANG_FILES}
install -d ${PMGLOCALEDIR}
install -m 0644 ${PMG_LANG_FILES} ${PMGLOCALEDIR}
install -d ${PVELOCALEDIR}
@@ -50,23 +48,22 @@ define potupdate
./jsgettext.pl -p "$(1) $(shell cd $(2);git rev-parse HEAD)" -o $(1).pot $(2)
endef
-.PHONY: update
-update:
+.PHONY: update update_pot
+update_pot: submodule
git submodule foreach 'git pull --ff-only origin master'
$(call potupdate,proxmox-widget-toolkit,proxmox-widget-toolkit/)
$(call potupdate,pve-manager,pve-manager/www/manager6/)
$(call potupdate,proxmox-mailgateway,pmg-gui/js/)
- msgcat proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot > messages.pot.tmp
- mv messages.pot.tmp messages.pot
+
+update: | update_pot messages.pot
for i in $(LINGUAS); do echo -n "$$i: "; msgmerge -s -v $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
- rm messages.pot
-# try to generate po files when someone add a new language
-.SECONDARY: # do not delete generated intermediate file
-%.po: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot
- msgcat $+ > $*.pot
- msginit -i $*.pot -l $* -o $*.po
- rm $*.pot
+init-%.po: messages.pot
+ msginit -i $^ -l $^ -o $*.po --no-translator
+
+.INTERMEDIATE: messages.pot
+messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot
+ msgcat $^ > $@
.PHONY: distclean
distclean: clean
@@ -74,7 +71,7 @@ distclean: clean
.PHONY: clean
clean:
find . -name '*~' -exec rm {} ';'
- rm -rf dest *.po.tmp *.js.tmp *.deb *.buildinfo *.changes pve-lang-*.js pmg-lang-*.js
+ rm -rf dest *.po.tmp *.js.tmp *.deb *.buildinfo *.changes *.js messages.pot
.PHONY: upload-pve
upload-pve: ${PVE_I18N_DEB}
--
2.14.2
More information about the pve-devel
mailing list