]> git.proxmox.com Git - proxmox-i18n.git/blob - Makefile
buildsys: add sbuild target for convenience
[proxmox-i18n.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2
3 LINGUAS=\
4 ar \
5 ca \
6 da \
7 de \
8 es \
9 eu \
10 fa \
11 fr \
12 gl \
13 he \
14 hu \
15 it \
16 ja \
17 kr \
18 nb \
19 nl \
20 nn \
21 pl \
22 pt_BR \
23 ru \
24 sl \
25 sv \
26 tr \
27 zh_CN \
28 zh_TW \
29
30 BUILDDIR ?= $(DEB_SOURCE)-$(DEB_VERSION)
31
32 DSC=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
33 PVE_I18N_DEB=pve-i18n_$(DEB_VERSION)_all.deb
34 PMG_I18N_DEB=pmg-i18n_$(DEB_VERSION)_all.deb
35 PBS_I18N_DEB=pbs-i18n_$(DEB_VERSION)_all.deb
36
37 DEBS=$(PMG_I18N_DEB) $(PVE_I18N_DEB) $(PBS_I18N_DEB)
38
39 PMGLOCALEDIR=$(DESTDIR)/usr/share/pmg-i18n
40 PVELOCALEDIR=$(DESTDIR)/usr/share/pve-i18n
41 PBSLOCALEDIR=$(DESTDIR)/usr/share/pbs-i18n
42
43 PMG_LANG_FILES=$(patsubst %, pmg-lang-%.js, $(LINGUAS))
44 PVE_LANG_FILES=$(patsubst %, pve-lang-%.js, $(LINGUAS))
45 PBS_LANG_FILES=$(patsubst %, pbs-lang-%.js, $(LINGUAS))
46
47 all:
48
49 $(BUILDDIR): submodule
50 rm -rf $@ $@.tmp
51 rsync -a * $@.tmp
52 mv $@.tmp $@
53
54 .PHONY: deb
55 deb: $(DEBS)
56 $(DEBS): build-debs
57
58 build-debs: $(BUILDDIR)
59 cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
60 lintian $(DEBS)
61 touch "$@"
62
63 sbuild: $(DSC)
64 sbuild $(DSC)
65
66 .PHONY: dsc
67 dsc: $(DSC)
68 $(DSC): $(BUILDDIR)
69 cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
70 lintian $(DSC)
71
72 submodule:
73 test -f pmg-gui/Makefile -a -f proxmox-backup/Makefile -a -f pve-manager/Makefile \
74 || git submodule update --init
75
76 .PHONY: install
77 install: $(PMG_LANG_FILES) $(PVE_LANG_FILES) $(PBS_LANG_FILES)
78 install -d $(PMGLOCALEDIR)
79 install -m 0644 $(PMG_LANG_FILES) $(PMGLOCALEDIR)
80 install -d $(PVELOCALEDIR)
81 install -m 0644 $(PVE_LANG_FILES) $(PVELOCALEDIR)
82 install -d $(PBSLOCALEDIR)
83 install -m 0644 $(PBS_LANG_FILES) $(PBSLOCALEDIR)
84
85 pmg-lang-%.js: %.po
86 ./po2js.pl -t pmg -v "$(DEB_VERSION)" -o pmg-lang-$*.js $?
87
88 pve-lang-%.js: %.po
89 ./po2js.pl -t pve -v "$(DEB_VERSION)" -o pve-lang-$*.js $?
90
91 pbs-lang-%.js: %.po
92 ./po2js.pl -t pbs -v "$(DEB_VERSION)" -o pbs-lang-$*.js $?
93
94 # parameter 1 is the name
95 # parameter 2 is the directory
96 define potupdate
97 ./jsgettext.pl -p "$(1) $(shell cd $(2);git rev-parse HEAD)" -o $(1).pot $(2)
98 endef
99
100 .PHONY: update update_pot do_update
101 update_pot: submodule
102 $(call potupdate,proxmox-widget-toolkit,proxmox-widget-toolkit/)
103 $(call potupdate,pve-manager,pve-manager/www/manager6/)
104 $(call potupdate,proxmox-mailgateway,pmg-gui/js/)
105 $(call potupdate,proxmox-backup,proxmox-backup/www/)
106
107 do_update:
108 $(MAKE) update_pot
109 $(MAKE) messages.pot
110 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;
111
112 update:
113 git submodule foreach 'git pull --ff-only origin master'
114 $(MAKE) do_update
115
116 stats:
117 @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
118
119 init-%.po: messages.pot
120 msginit -i $^ -l $^ -o $*.po --no-translator
121
122 .INTERMEDIATE: messages.pot
123 messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot
124 msgcat $^ > $@
125
126 .PHONY: distclean
127 distclean: clean
128
129 .PHONY: clean
130 clean:
131 rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot
132
133 .PHONY: upload-pve upload-pmg upload-pbs upload
134 upload-%: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
135 upload-pve: $(PVE_I18N_DEB)
136 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist $(UPLOAD_DIST)
137 upload-pmg: $(PMG_I18N_DEB)
138 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist $(UPLOAD_DIST)
139 upload-pbs: $(PBS_I18N_DEB)
140 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pbs --dist $(UPLOAD_DIST)
141
142 upload: upload-pve upload-pmg upload-pbs