1 # Makefile for directory with message catalog handling in GNU NLS Utilities.
2 # Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
4 # This program is free software; you can redistribute it and/or modify it
5 # under the terms of the GNU Library General Public License as published
6 # by the Free Software Foundation; either version 2, or (at your option)
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Library General Public License for more details.
14 # You should have received a copy of the GNU Library General Public
15 # License along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
25 top_srcdir = @top_srcdir@
30 exec_prefix = @exec_prefix@
31 transform = @program_transform_name@
33 includedir = @includedir@
35 localedir = $(datadir)/locale
36 gettextsrcdir = $(datadir)/gettext/intl
37 aliaspath = $(localedir)
41 INSTALL_DATA = @INSTALL_DATA@
42 MKINSTALLDIRS = @MKINSTALLDIRS@
43 mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
45 l = @INTL_LIBTOOL_SUFFIX_PREFIX@
51 YACC = @INTLBISON@ -y -d
52 YFLAGS = --name-prefix=__gettext
54 DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
55 -DLIBDIR=\"$(libdir)\" -DIN_LIBINTL @DEFS@
60 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
62 HEADERS = $(COMHDRS) libgnuintl.h loadinfo.h
63 COMHDRS = gmo.h gettextP.h hash-string.h plural-exp.h eval-plural.h os2compat.h
64 SOURCES = $(COMSRCS) intl-compat.c
65 COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
66 finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
67 explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
68 plural-exp.c localcharset.c localename.c osdep.c os2compat.c
69 OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
70 finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
71 explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
72 plural.$lo plural-exp.$lo localcharset.$lo localename.$lo osdep.$lo
73 GETTOBJS = intl-compat.$lo
74 DISTFILES.common = Makefile.in \
75 config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
76 DISTFILES.generated = plural.c
77 DISTFILES.normal = VERSION
78 DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc
79 DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
80 COPYING.LIB-2 gettext.h libgettext.h plural-eval.c
82 # Libtool's library version information for libintl.
83 # Before making a gettext release, the gettext maintainer must change this
84 # according to the libtool documentation, section "Library interface versions".
85 # Maintainers of other packages that include the intl directory must *not*
86 # change these values.
92 .SUFFIXES: .c .y .o .lo .sin .sed
96 $(LIBTOOL) --mode=compile $(COMPILE) $<
99 $(YACC) $(YFLAGS) --output $@ $<
103 sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
106 INCLUDES = -I.. -I. -I$(top_srcdir)/intl
108 all: all-@USE_INCLUDED_LIBINTL@
109 all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
110 all-no: all-no-@BUILD_INCLUDED_LIBINTL@
111 all-no-yes: libgnuintl.$la
114 libintl.a libgnuintl.a: $(OBJECTS)
116 $(AR) cru $@ $(OBJECTS)
119 libintl.la libgnuintl.la: $(OBJECTS)
120 $(LIBTOOL) --mode=link \
121 $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
122 $(OBJECTS) @LTLIBICONV@ -lc \
123 -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
127 libintl.h: libgnuintl.h
128 cp $(srcdir)/libgnuintl.h libintl.h
130 charset.alias: config.charset
131 $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
136 # This installation goal is only used in GNU gettext. Packages which
137 # only use the library should use install instead.
139 # We must not install the libintl.h/libintl.a files if we are on a
140 # system which has the GNU gettext() function in its C library or in a
142 # If you want to use the one which comes with this version of the
143 # package, you have to use `configure --with-included-gettext'.
144 install: install-exec install-data
146 if test "$(PACKAGE)" = "gettext" \
147 && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
148 $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
149 $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
150 $(LIBTOOL) --mode=install \
151 $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
155 if test '@USE_INCLUDED_LIBINTL@' = yes; then \
156 test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
157 temp=$(DESTDIR)$(libdir)/t-charset.alias; \
158 dest=$(DESTDIR)$(libdir)/charset.alias; \
159 if test -f $(DESTDIR)$(libdir)/charset.alias; then \
160 orig=$(DESTDIR)$(libdir)/charset.alias; \
161 sed -f ref-add.sed $$orig > $$temp; \
162 $(INSTALL_DATA) $$temp $$dest; \
165 if test @GLIBC21@ = no; then \
166 orig=charset.alias; \
167 sed -f ref-add.sed $$orig > $$temp; \
168 $(INSTALL_DATA) $$temp $$dest; \
172 $(mkinstalldirs) $(DESTDIR)$(localedir); \
173 test -f $(DESTDIR)$(localedir)/locale.alias \
174 && orig=$(DESTDIR)$(localedir)/locale.alias \
175 || orig=$(srcdir)/locale.alias; \
176 temp=$(DESTDIR)$(localedir)/t-locale.alias; \
177 dest=$(DESTDIR)$(localedir)/locale.alias; \
178 sed -f ref-add.sed $$orig > $$temp; \
179 $(INSTALL_DATA) $$temp $$dest; \
185 if test "$(PACKAGE)" = "gettext"; then \
186 $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
187 $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
188 $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
189 dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
190 for file in $$dists; do \
191 $(INSTALL_DATA) $(srcdir)/$$file \
192 $(DESTDIR)$(gettextsrcdir)/$$file; \
194 chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
195 dists="$(DISTFILES.generated)"; \
196 for file in $$dists; do \
197 if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
198 $(INSTALL_DATA) $$dir/$$file \
199 $(DESTDIR)$(gettextsrcdir)/$$file; \
201 dists="$(DISTFILES.obsolete)"; \
202 for file in $$dists; do \
203 rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
209 install-strip: install
212 if test "$(PACKAGE)" = "gettext" \
213 && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
214 $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
218 if test '@USE_INCLUDED_LIBINTL@' = yes; then \
219 test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
220 $(mkinstalldirs) $(DESTDIR)$(localedir); \
224 if test "$(PACKAGE)" = "gettext"; then \
225 $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
230 # Define this as empty until I found a useful application.
234 if test "$(PACKAGE)" = "gettext" \
235 && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
236 rm -f $(DESTDIR)$(includedir)/libintl.h; \
237 $(LIBTOOL) --mode=uninstall \
238 rm -f $(DESTDIR)$(libdir)/libintl.$la; \
242 if test '@USE_INCLUDED_LIBINTL@' = yes; then \
243 if test -f $(DESTDIR)$(libdir)/charset.alias; then \
244 temp=$(DESTDIR)$(libdir)/t-charset.alias; \
245 dest=$(DESTDIR)$(libdir)/charset.alias; \
246 sed -f ref-del.sed $$dest > $$temp; \
247 if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
250 $(INSTALL_DATA) $$temp $$dest; \
254 if test -f $(DESTDIR)$(localedir)/locale.alias; then \
255 temp=$(DESTDIR)$(localedir)/t-locale.alias; \
256 dest=$(DESTDIR)$(localedir)/locale.alias; \
257 sed -f ref-del.sed $$dest > $$temp; \
258 if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
261 $(INSTALL_DATA) $$temp $$dest; \
268 if test "$(PACKAGE)" = "gettext"; then \
269 for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
270 rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
278 $(OBJECTS): ../config.h libgnuintl.h
279 bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: gettextP.h gmo.h loadinfo.h
280 dcigettext.$lo: hash-string.h
281 explodename.$lo l10nflist.$lo: loadinfo.h
282 dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: plural-exp.h
283 dcigettext.$lo: eval-plural.h
287 TAGS: $(HEADERS) $(SOURCES)
288 here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
292 ID: $(HEADERS) $(SOURCES)
293 here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
297 rm -f *.a *.la *.o *.lo core core.*
298 rm -f libintl.h charset.alias ref-add.sed ref-del.sed
304 rm -f Makefile ID TAGS
305 if test "$(PACKAGE)" = gettext; then \
306 rm -f ChangeLog.inst $(DISTFILES.normal); \
311 maintainer-clean: distclean
312 @echo "This command is intended for maintainers to use;"
313 @echo "it deletes files that may require special tools to rebuild."
316 # GNU gettext needs not contain the file `VERSION' but contains some
317 # other files which should not be distributed in other packages.
318 distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
319 dist distdir: Makefile
320 if test "$(PACKAGE)" = gettext; then \
321 additional="$(DISTFILES.gettext)"; \
323 additional="$(DISTFILES.normal)"; \
325 $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
326 for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
327 if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
328 cp -p $$dir/$$file $(distdir); \
331 Makefile: Makefile.in ../config.status
333 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
335 # Tell versions [3.59,3.63) of GNU make not to export all variables.
336 # Otherwise a system limit (for SysV at least) may be exceeded.