1 # Makefile for program source directory in GNU NLS utilities package.
2 # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
4 # This file file be copied and used freely without restrictions. It can
5 # be used in projects which are not available under the GNU Public License
6 # but which still want to provide support for the GNU gettext functionality.
7 # Please note that the actual code is *not* freely available.
16 top_srcdir = @top_srcdir@
21 exec_prefix = @exec_prefix@
22 datadir = $(prefix)/@DATADIRNAME@
23 localedir = $(datadir)/locale
24 gnulocaledir = $(prefix)/share/locale
25 gettextsrcdir = $(prefix)/share/gettext/po
29 INSTALL_DATA = @INSTALL_DATA@
30 MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
34 GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
36 XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
37 XML_I18N_UPDATE = @XML_I18N_UPDATE@
38 XML_I18N_EXTRACT = @XML_I18N_EXTRACT@
40 MSGMERGE = XML_I18N_EXTRACT=$(XML_I18N_EXTRACT) $(XML_I18N_UPDATE) --dist
41 GENPOT = XML_I18N_EXTRACT=$(XML_I18N_EXTRACT) $(XML_I18N_UPDATE) --pot
48 INCLUDES = -I.. -I$(top_srcdir)/intl
50 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
52 SOURCES = cat-id-tbl.c
55 DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
56 stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
61 CATOBJEXT = @CATOBJEXT@
62 INSTOBJEXT = @INSTOBJEXT@
65 .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
71 $(MAKE) $(PACKAGE).pot
72 $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
78 file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
79 && rm -f $$file && $(GMSGFMT) -o $$file $<
82 sed -f ../intl/po2msg.sed < $< > $*.msg \
83 && rm -f $@ && $(GENCAT) $@ $*.msg
88 all-yes: cat-id-tbl.c $(CATALOGS)
91 $(srcdir)/$(PACKAGE).pot: $(POTFILES)
94 $(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
95 $(srcdir)/stamp-cat-id: $(PACKAGE).pot
97 sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
98 | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
99 if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
102 echo cat-id-tbl.c changed; \
103 rm -f $(srcdir)/cat-id-tbl.c; \
104 mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
106 cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
109 install: install-exec install-data
111 install-data: install-data-@USE_NLS@
113 install-data-yes: all
114 if test -r "$(MKINSTALLDIRS)"; then \
115 $(MKINSTALLDIRS) $(datadir); \
117 $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
119 @catalogs='$(CATALOGS)'; \
120 for cat in $$catalogs; do \
121 cat=`basename $$cat`; \
123 *.gmo) destdir=$(gnulocaledir);; \
124 *) destdir=$(localedir);; \
126 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
127 dir=$$destdir/$$lang/LC_MESSAGES; \
128 if test -r "$(MKINSTALLDIRS)"; then \
129 $(MKINSTALLDIRS) $$dir; \
131 $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
133 if test -r $$cat; then \
134 $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
135 echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
137 $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
138 echo "installing $(srcdir)/$$cat as" \
139 "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
141 if test -r $$cat.m; then \
142 $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
143 echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
145 if test -r $(srcdir)/$$cat.m ; then \
146 $(INSTALL_DATA) $(srcdir)/$$cat.m \
147 $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
148 echo "installing $(srcdir)/$$cat as" \
149 "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
155 if test "$(PACKAGE)" = "gettext"; then \
156 if test -r "$(MKINSTALLDIRS)"; then \
157 $(MKINSTALLDIRS) $(gettextsrcdir); \
159 $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
161 $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
162 $(gettextsrcdir)/Makefile.in.in; \
167 # Define this as empty until I found a useful application.
171 catalogs='$(CATALOGS)'; \
172 for cat in $$catalogs; do \
173 cat=`basename $$cat`; \
174 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
175 rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
176 rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
177 rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
178 rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
180 rm -f $(gettextsrcdir)/po-Makefile.in.in
184 cat-id-tbl.o: ../intl/libgettext.h
186 dvi info tags TAGS ID:
189 rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
195 rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
197 maintainer-clean: distclean
198 @echo "This command is intended for maintainers to use;"
199 @echo "it deletes files that may require special tools to rebuild."
202 distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
203 dist distdir: update-po $(DISTFILES)
204 dists="$(DISTFILES)"; \
205 for file in $$dists; do \
206 ln $(srcdir)/$$file $(distdir) 2> /dev/null \
207 || cp -p $(srcdir)/$$file $(distdir); \
211 $(MAKE) $(PACKAGE).pot
212 PATH=`pwd`/../src:$$PATH; \
214 catalogs='$(CATALOGS)'; \
215 for cat in $$catalogs; do \
216 cat=`basename $$cat`; \
217 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
218 cp $$lang.po $$lang.old.po; \
220 if $(MSGMERGE) $$lang; then \
221 rm -f $$lang.old.po; \
223 echo "msgmerge for $$cat failed!"; \
224 mv $$lang.old.po $$lang.po; \
229 $(MAKE) $(PACKAGE).pot;
230 PATH=`pwd`/../src:$$PATH; \
231 echo; printf "$*: "; \
232 if $(MSGMERGE) $*; then \
235 echo "msgmerge for * failed!"; \
236 mv $*.old.po $*.po; \
238 msgfmt --statistics $*.po; echo;
241 POTFILES: POTFILES.in
242 ( if test 'x$(srcdir)' != 'x.'; then \
243 posrcprefix='$(top_srcdir)/'; \
248 && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
249 -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
250 | sed -e '$$s/\\$$//') > $@-t \
254 Makefile: Makefile.in.in ../config.status POTFILES
256 && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
257 $(SHELL) ./config.status
259 # Tell versions [3.59,3.63) of GNU make not to export all variables.
260 # Otherwise a system limit (for SysV at least) may be exceeded.