1 # Makefile for program source directory in GNU NLS utilities package.
2 # Copyright (C) 1995-1997, 2000, 2001 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.
12 # These two variables depend on the location of this directory.
20 top_srcdir = @top_srcdir@
24 exec_prefix = @exec_prefix@
26 localedir = $(datadir)/locale
27 gettextsrcdir = $(datadir)/gettext/po
30 INSTALL_DATA = @INSTALL_DATA@
31 MKINSTALLDIRS = @MKINSTALLDIRS@
32 mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
38 XML_I18N_UPDATE = @XML_I18N_UPDATE@
39 XML_I18N_EXTRACT = @XML_I18N_EXTRACT@
41 MSGMERGE = XML_I18N_EXTRACT=$(XML_I18N_EXTRACT) $(XML_I18N_UPDATE) --dist
42 GENPOT = XML_I18N_EXTRACT=$(XML_I18N_EXTRACT) $(XML_I18N_UPDATE) --pot
49 INCLUDES = -I.. -I$(top_srcdir)/intl
51 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
55 DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
56 $(POFILES) $(GMOFILES)
63 .SUFFIXES: .c .o .po .pox .gmo .mo
69 $(MAKE) $(PACKAGE).pot
70 $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
76 file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
77 && rm -f $$file && $(GMSGFMT) --statistics -o $$file $<
85 # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot',
86 # otherwise packages like GCC can not be built if only parts of the source
87 # have been downloaded.
89 $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
93 install: install-exec install-data
95 install-data: install-data-@USE_NLS@
96 if test "$(PACKAGE)" = "gettext"; then \
97 $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
98 $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
99 $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
104 install-data-yes: all
105 $(mkinstalldirs) $(DESTDIR)$(datadir)
106 @catalogs='$(CATALOGS)'; \
107 for cat in $$catalogs; do \
108 cat=`basename $$cat`; \
109 lang=`echo $$cat | sed 's/\.gmo$$//'`; \
110 dir=$(localedir)/$$lang/LC_MESSAGES; \
111 $(mkinstalldirs) $(DESTDIR)$$dir; \
112 if test -r $$cat; then \
113 $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
114 echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
116 $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
117 echo "installing $(srcdir)/$$cat as" \
118 "$(DESTDIR)$$dir/$(PACKAGE).mo"; \
122 # Define this as empty until I found a useful application.
126 catalogs='$(CATALOGS)'; \
127 for cat in $$catalogs; do \
128 cat=`basename $$cat`; \
129 lang=`echo $$cat | sed 's/\.gmo$$//'`; \
130 rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
132 if test "$(PACKAGE)" = "gettext"; then \
133 rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
140 dvi info tags TAGS ID:
143 rm -f core core.* *.pox $(PACKAGE).po *.new.po
149 rm -f Makefile Makefile.in POTFILES *.mo
151 maintainer-clean: distclean
152 @echo "This command is intended for maintainers to use;"
153 @echo "it deletes files that may require special tools to rebuild."
156 distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
160 # This is a separate target because 'update-po' must be executed before.
162 dists="$(DISTFILES)"; \
163 for file in $$dists; do \
164 if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
165 cp -p $$dir/$$file $(distdir); \
169 $(MAKE) $(PACKAGE).pot
170 if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
172 catalogs='$(GMOFILES)'; \
173 for cat in $$catalogs; do \
174 cat=`basename $$cat`; \
175 lang=`echo $$cat | sed 's/\.gmo$$//'`; \
176 cp $$lang.po $$lang.old.po; \
178 if $(MSGMERGE) $$lang ; then \
179 rm -f $$lang.old.po; \
181 echo "msgmerge for $$cat failed!"; \
182 mv $$lang.old.po $$lang.po; \
188 $(MAKE) $(PACKAGE).pot;
189 PATH=`pwd`/../src:$$PATH; \
190 echo; printf "$*: "; \
191 if $(MSGMERGE) $*; then \
194 echo "msgmerge for * failed!"; \
195 mv $*.old.po $*.po; \
197 msgfmt --statistics $*.po; echo;
200 update-gmo: Makefile $(GMOFILES)
203 Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
205 && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
206 $(SHELL) ./config.status
208 # Tell versions [3.59,3.63) of GNU make not to export all variables.
209 # Otherwise a system limit (for SysV at least) may be exceeded.