1# Makefile for directory with message catalog handling in GNU NLS Utilities.
2# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
3#
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)
7# any later version.
8#
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.
13#
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,
17# USA.
18
19PACKAGE = @PACKAGE@
20VERSION = @VERSION@
21
22SHELL = /bin/sh
23
24srcdir = @srcdir@
25top_srcdir = @top_srcdir@
26top_builddir = ..
27VPATH = @srcdir@
28
29prefix = @prefix@
30exec_prefix = @exec_prefix@
31transform = @program_transform_name@
32libdir = @libdir@
33includedir = @includedir@
34datarootdir = @datarootdir@
35datadir = @datadir@
36localedir = $(datadir)/locale
37gettextsrcdir = $(datadir)/gettext/intl
38aliaspath = $(localedir)
39subdir = intl
40
41INSTALL = @INSTALL@
42INSTALL_DATA = @INSTALL_DATA@
43mkinstalldirs = mkdir -p
44
45l = @INTL_LIBTOOL_SUFFIX_PREFIX@
46
47ARCHIVE = @AR@ @ARFLAGS@
48CC = @CC@
49LIBTOOL = @LIBTOOL@
50RANLIB = @RANLIB@
51YACC = @INTLBISON@ -y -d
52YFLAGS = -p __gettext
53
54x = @EXEEXT@
55o = .@OBJEXT@
56
57DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
58-DLIBDIR=\"$(libdir)\" @DEFS@
59CPPFLAGS = @CPPFLAGS@
60CFLAGS = @CFLAGS@
61LDFLAGS = @LDFLAGS@
62
63COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
64
65HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
66COMHDRS = gettext.h gettextP.h hash-string.h
67SOURCES = $(COMSRCS) intl-compat.c
68COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
69finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
70explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
71localcharset.c
72OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
73finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
74explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
75plural.$lo localcharset.$lo
76GETTOBJS = intl-compat.$lo
77DISTFILES.common = Makefile.in \
78config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
79DISTFILES.generated = plural.c
80DISTFILES.normal = VERSION
81DISTFILES.gettext = COPYING.LIB-2 COPYING.LIB-2.1 libintl.glibc
82DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
83
84# Libtool's library version information for libintl.
85# Before making a gettext release, the gettext maintainer must change this
86# according to the libtool documentation, section "Library interface versions".
87# Maintainers of other packages that include the intl directory must *not*
88# change these values.
89LTV_CURRENT=1
90LTV_REVISION=1
91LTV_AGE=0
92
93.SUFFIXES:
94.SUFFIXES: .c .y $o .lo .sin .sed
95.c$o:
96	$(COMPILE) $<
97.c.lo:
98	$(LIBTOOL) --mode=compile $(COMPILE) $<
99
100.y.c:
101	$(YACC) $(YFLAGS) -o $@ $<
102	rm -f $*.h
103
104.sin.sed:
105	sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
106	mv t-$@ $@
107
108INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I../include
109
110all: all-@USE_INCLUDED_LIBINTL@
111all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
112all-no: all-no-@BUILD_INCLUDED_LIBINTL@
113all-no-yes: libgnuintl.$la
114all-no-no:
115
116libintl.a libgnuintl.a: $(OBJECTS)
117	rm -f $@
118	$(ARCHIVE) $@ $(OBJECTS)
119	$(RANLIB) $@
120
121libintl.la libgnuintl.la: $(OBJECTS)
122	$(LIBTOOL) --mode=link \
123	  $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
124	  $(OBJECTS) @LIBICONV@ \
125	  -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
126	  -rpath $(libdir) \
127	  -no-undefined
128
129libintl.h: libgnuintl.h
130	cp $(srcdir)/libgnuintl.h libintl.h
131
132charset.alias: config.charset
133	$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
134	mv t-$@ $@
135
136check: all
137
138# This installation goal is only used in GNU gettext.  Packages which
139# only use the library should use install instead.
140
141# We must not install the libintl.h/libintl.a files if we are on a
142# system which has the GNU gettext() function in its C library or in a
143# separate library.
144# If you want to use the one which comes with this version of the
145# package, you have to use `configure --with-included-gettext'.
146install: install-exec install-data
147install-exec: all
148	if test "$(PACKAGE)" = "gettext" \
149	   && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
150	  $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
151	  $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
152	  $(LIBTOOL) --mode=install \
153	    $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
154	else \
155	  : ; \
156	fi
157	if test '@USE_INCLUDED_LIBINTL@' = yes; then \
158	  $(mkinstalldirs) $(DESTDIR)$(libdir); \
159	  temp=$(DESTDIR)$(libdir)/t-charset.alias; \
160	  dest=$(DESTDIR)$(libdir)/charset.alias; \
161	  if test -f $(DESTDIR)$(libdir)/charset.alias; then \
162	    orig=$(DESTDIR)$(libdir)/charset.alias; \
163	    sed -f ref-add.sed $$orig > $$temp; \
164	    $(INSTALL_DATA) $$temp $$dest; \
165	    rm -f $$temp; \
166	  else \
167	    if test @GLIBC21@ = no; then \
168	      orig=charset.alias; \
169	      sed -f ref-add.sed $$orig > $$temp; \
170	      $(INSTALL_DATA) $$temp $$dest; \
171	      rm -f $$temp; \
172	    fi; \
173	  fi; \
174	  $(mkinstalldirs) $(DESTDIR)$(localedir); \
175	  test -f $(DESTDIR)$(localedir)/locale.alias \
176	    && orig=$(DESTDIR)$(localedir)/locale.alias \
177	    || orig=$(srcdir)/locale.alias; \
178	  temp=$(DESTDIR)$(localedir)/t-locale.alias; \
179	  dest=$(DESTDIR)$(localedir)/locale.alias; \
180	  sed -f ref-add.sed $$orig > $$temp; \
181	  $(INSTALL_DATA) $$temp $$dest; \
182	  rm -f $$temp; \
183	else \
184	  : ; \
185	fi
186install-data: all
187	if test "$(PACKAGE)" = "gettext"; then \
188	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
189	  $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
190	  $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
191	  dists="COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common)"; \
192	  for file in $$dists; do \
193	    $(INSTALL_DATA) $(srcdir)/$$file \
194			    $(DESTDIR)$(gettextsrcdir)/$$file; \
195	  done; \
196	  chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
197	  dists="$(DISTFILES.generated)"; \
198	  for file in $$dists; do \
199	    if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
200	    $(INSTALL_DATA) $$dir/$$file \
201			    $(DESTDIR)$(gettextsrcdir)/$$file; \
202	  done; \
203	  dists="$(DISTFILES.obsolete)"; \
204	  for file in $$dists; do \
205	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
206	  done; \
207	else \
208	  : ; \
209	fi
210
211# Define this as empty until I found a useful application.
212installcheck:
213
214uninstall:
215	if test "$(PACKAGE)" = "gettext" \
216	   && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
217	  rm -f $(DESTDIR)$(includedir)/libintl.h; \
218	  $(LIBTOOL) --mode=uninstall \
219	    rm -f $(DESTDIR)$(libdir)/libintl.$la; \
220	else \
221	  : ; \
222	fi
223	if test '@USE_INCLUDED_LIBINTL@' = yes; then \
224	  if test -f $(DESTDIR)$(libdir)/charset.alias; then \
225	    temp=$(DESTDIR)$(libdir)/t-charset.alias; \
226	    dest=$(DESTDIR)$(libdir)/charset.alias; \
227	    sed -f ref-del.sed $$dest > $$temp; \
228	    if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
229	      rm -f $$dest; \
230	    else \
231	      $(INSTALL_DATA) $$temp $$dest; \
232	    fi; \
233	    rm -f $$temp; \
234	  fi; \
235	  if test -f $(DESTDIR)$(localedir)/locale.alias; then \
236	    temp=$(DESTDIR)$(localedir)/t-locale.alias; \
237	    dest=$(DESTDIR)$(localedir)/locale.alias; \
238	    sed -f ref-del.sed $$dest > $$temp; \
239	    if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
240	      rm -f $$dest; \
241	    else \
242	      $(INSTALL_DATA) $$temp $$dest; \
243	    fi; \
244	    rm -f $$temp; \
245	  fi; \
246	else \
247	  : ; \
248	fi
249	if test "$(PACKAGE)" = "gettext"; then \
250	  for file in VERSION ChangeLog COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
251	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
252	  done; \
253	else \
254	  : ; \
255	fi
256
257info dvi:
258
259$(OBJECTS): ../include/autoconf.h libgnuintl.h
260bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
261dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
262
263tags: TAGS
264
265TAGS: $(HEADERS) $(SOURCES)
266	here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
267
268id: ID
269
270ID: $(HEADERS) $(SOURCES)
271	here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
272
273
274mostlyclean:
275	rm -f *.a *.la *$o *.lo core core.*
276	rm -f libintl.h charset.alias ref-add.sed ref-del.sed
277	rm -f -r .libs _libs
278
279clean: mostlyclean
280
281distclean: clean
282	rm -f Makefile ID TAGS
283	if test "$(PACKAGE)" = gettext; then \
284	  rm -f ChangeLog.inst $(DISTFILES.normal); \
285	else \
286	  : ; \
287	fi
288
289maintainer-clean: distclean
290	@echo "This command is intended for maintainers to use;"
291	@echo "it deletes files that may require special tools to rebuild."
292
293
294# GNU gettext needs not contain the file `VERSION' but contains some
295# other files which should not be distributed in other packages.
296distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
297dist distdir: Makefile
298	if test "$(PACKAGE)" = gettext; then \
299	  additional="$(DISTFILES.gettext)"; \
300	else \
301	  additional="$(DISTFILES.normal)"; \
302	fi; \
303	$(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
304	for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
305	  if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
306	  ln $$dir/$$file $(distdir) 2> /dev/null \
307	    || cp -p $$dir/$$file $(distdir); \
308	done
309
310Makefile: Makefile.in ../config.status
311	cd .. \
312	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
313
314# Tell versions [3.59,3.63) of GNU make not to export all variables.
315# Otherwise a system limit (for SysV at least) may be exceeded.
316.NOEXPORT:
317