76c09912bc1efb37d9c589dc02b32e847cec364e
[platform/upstream/kbd.git] / po / Makefile
1 PACKAGE = kbd
2 VERSION = 1.13
3
4 include ../make_include
5
6 # po2tbl.sed is not taken from /usr/share/gettext/intl
7 # Often it is not present.
8 # A RedHat 5.2 installation only has po2tbl.sed.in.
9 #
10 PO2TBL = ./po2tbl.sed
11 INTL = /usr/share/gettext/intl
12 # FOREIGN=--foreign-user
13 FOREIGN=
14 SHELL = /bin/sh
15
16 prefix = $(DESTDIR)/usr
17 datadir = $(prefix)/share
18 localedir = $(datadir)/locale
19 gnulocaledir = $(prefix)/share/locale
20 gettextsrcdir = $(prefix)/share/gettext/po
21
22 # Not giving an explicit path improves the chances of finding these
23 GENCAT = gencat
24 MSGFMT = msgfmt
25 XGETTEXT = xgettext
26 MSGMERGE = msgmerge
27 INSTALL = install -c
28 INSTALL_DATA = ${INSTALL} -m 644
29
30 # ..      for <config.h> (if HAVE_CONFIG_H is set)
31 # $(INTL) for "libgettext.h"
32 INCLUDES = -I.. -I$(INTL)
33
34 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
35
36 # Enter here all .po files
37 POFILES =  cs.po da.po de.po el.po es.po fr.po gr.po nl.po pl.po \
38  ro.po ru.po sv.po tr.po
39 # the same but with .gmo
40 GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo gr.gmo nl.gmo \
41  pl.gmo ro.gmo ru.gmo sv.gmo tr.gmo
42
43 CATALOGS = $(GMOFILES)
44 CATOBJEXT = .gmo
45 INSTOBJEXT = .mo
46
47 .SUFFIXES:
48 .SUFFIXES: .c .o .po .gmo .mo .msg .cat
49
50 .c.o:
51         $(COMPILE) $<
52
53 .po.mo:
54         $(MSGFMT) -o $@ $<
55
56 .po.gmo:
57         $(MSGFMT) -o $@ $<
58
59 .po.cat:
60         sed -f $(PO2TBL) < $< > $*.msg \
61           && rm -f $@ && $(GENCAT) $@ $*.msg
62
63 all: all-$(HAVE_XGETTEXT)
64
65 all-yes: cat-id-tbl.c $(CATALOGS)
66 all-no:
67
68 kbd.pot:
69         $(XGETTEXT) --default-domain=kbd --directory=.. \
70           --add-comments --keyword=_ --keyword=N_ \
71           --files-from=POTFILES.in $(FOREIGN)
72         mv kbd.po kbd.pot
73
74 cat-id-tbl.c: stamp-cat-id
75 stamp-cat-id: kbd.pot
76         rm -f cat-id-tbl.tmp
77         sed -f $(PO2TBL) kbd.pot \
78                 | sed -e "s/@PACKAGE NAME@/kbd/" > cat-id-tbl.tmp
79         if cmp -s cat-id-tbl.tmp cat-id-tbl.c; then \
80           rm cat-id-tbl.tmp; \
81         else \
82           echo cat-id-tbl.c changed; \
83           rm -f cat-id-tbl.c; \
84           mv cat-id-tbl.tmp cat-id-tbl.c; \
85         fi
86         rm -f stamp-cat-id && echo timestamp > stamp-cat-id
87
88 install: install-data-$(HAVE_XGETTEXT)
89 install-data-no: all
90 install-data-yes: all
91         ../mkinstalldirs $(datadir);
92         @catalogs='$(CATALOGS)'; \
93         for cat in $$catalogs; do \
94           case "$$cat" in \
95             *.gmo) destdir=$(gnulocaledir);; \
96             *)     destdir=$(localedir);; \
97           esac; \
98           lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
99           dir=$$destdir/$$lang/LC_MESSAGES; \
100           ../mkinstalldirs $$dir; \
101           $(INSTALL_DATA) $$cat $$dir/kbd$(INSTOBJEXT); \
102           echo "installing $$cat as $$dir/kbd$(INSTOBJEXT)"; \
103           if test -r $$cat.m; then \
104             $(INSTALL_DATA) $$cat.m $$dir/kbd$(INSTOBJEXT).m; \
105             echo "installing $$cat.m as $$dir/kbd$(INSTOBJEXT).m"; \
106           fi; \
107         done
108
109 uninstall:
110         catalogs='$(CATALOGS)'; \
111         for cat in $$catalogs; do \
112           lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
113           rm -f $(localedir)/$$lang/LC_MESSAGES/kbd$(INSTOBJEXT); \
114           rm -f $(localedir)/$$lang/LC_MESSAGES/kbd$(INSTOBJEXT).m; \
115           rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/kbd$(INSTOBJEXT); \
116           rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/kbd$(INSTOBJEXT).m; \
117         done
118         rm -f $(gettextsrcdir)/po-Makefile.in.in
119
120 cat-id-tbl.o: $(INTL)/libgettext.h
121
122 clean:
123         rm -f core core.* *~ *.o kbd.pot cat-id-tbl.tmp
124
125 distclean: clean
126         rm -f POTFILES *.gmo *.mo *.msg *.cat *.cat.m
127
128 update-po: 
129         $(MAKE) kbd.pot
130         catalogs='$(CATALOGS)'; \
131         for cat in $$catalogs; do \
132           lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
133           mv $$lang.po $$lang.old.po; \
134           echo "$$lang:"; \
135           if $(MSGMERGE) $$lang.old.po kbd.pot -o $$lang.po; then \
136             rm -f $$lang.old.po; \
137           else \
138             echo "msgmerge for $$cat failed!"; \
139             rm -f $$lang.po; \
140             mv $$lang.old.po $$lang.po; \
141           fi; \
142         done
143
144 POTFILES: 
145         ./update-potfiles
146