1# Makefile for directory with message catalog handling library of GNU gettext
2# Copyright (C) 1995-1998, 2000-2003 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_NAME@
20VERSION = @PACKAGE_VERSION@
21
22SHELL = /bin/sh
23
24srcdir = @srcdir@
25top_srcdir = @top_srcdir@
26top_builddir = @BUILD_DIR@
27VPATH = $(srcdir)
28
29prefix = @prefix@
30exec_prefix = @exec_prefix@
31transform = @program_transform_name@
32libdir = @libdir@
33includedir = @includedir@
34datadir = @datadir@
35localedir = $(datadir)/locale
36gettextsrcdir = $(datadir)/gettext/intl
37aliaspath = $(localedir)
38subdir = intl
39
40INSTALL = @INSTALL@
41INSTALL_DATA = @INSTALL_DATA@
42MKINSTALLDIRS = @MKINSTALLDIRS@
43mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
44
45l = @INTL_LIBTOOL_SUFFIX_PREFIX@
46
47AR = ar
48CC = @CC@
49LIBTOOL = @LIBTOOL@
50RANLIB = @RANLIB@
51YACC = @INTLBISON@ -y -d
52YFLAGS = --name-prefix=__gettext
53
54LOCAL_DEFS = @LOCAL_DEFS@
55
56DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
57-DLIBDIR=\"$(prefix)/libdata\" -DIN_LIBINTL \
58-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
59-Dset_relocation_prefix=libintl_set_relocation_prefix \
60-Drelocate=libintl_relocate \
61-DDEPENDS_ON_LIBICONV=1 @DEFS@ @LOCAL_DEFS@
62CPPFLAGS = @CPPFLAGS@
63CFLAGS = @CFLAGS@
64LDFLAGS = @LDFLAGS@
65LIBS = @LIBS@
66
67COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
68
69HEADERS = \
70  gmo.h \
71  gettextP.h \
72  hash-string.h \
73  loadinfo.h \
74  plural-exp.h \
75  eval-plural.h \
76  localcharset.h \
77  relocatable.h \
78  os2compat.h \
79  libgnuintl.h.in
80SOURCES = \
81  bindtextdom.c \
82  dcgettext.c \
83  dgettext.c \
84  gettext.c \
85  finddomain.c \
86  loadmsgcat.c \
87  localealias.c \
88  textdomain.c \
89  l10nflist.c \
90  explodename.c \
91  dcigettext.c \
92  dcngettext.c \
93  dngettext.c \
94  ngettext.c \
95  plural.y \
96  plural-exp.c \
97  localcharset.c \
98  relocatable.c \
99  localename.c \
100  log.c \
101  osdep.c \
102  os2compat.c \
103  intl-compat.c
104OBJECTS = \
105  bindtextdom.$lo \
106  dcgettext.$lo \
107  dgettext.$lo \
108  gettext.$lo \
109  finddomain.$lo \
110  loadmsgcat.$lo \
111  localealias.$lo \
112  textdomain.$lo \
113  l10nflist.$lo \
114  explodename.$lo \
115  dcigettext.$lo \
116  dcngettext.$lo \
117  dngettext.$lo \
118  ngettext.$lo \
119  plural.$lo \
120  plural-exp.$lo \
121  localcharset.$lo \
122  relocatable.$lo \
123  localename.$lo \
124  log.$lo \
125  osdep.$lo \
126  intl-compat.$lo
127DISTFILES.common = Makefile.in \
128config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
129DISTFILES.generated = plural.c
130DISTFILES.normal = VERSION
131DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \
132Makefile.vms libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
133DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
134COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h
135
136all: all-@USE_INCLUDED_LIBINTL@
137all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
138all-no: all-no-@BUILD_INCLUDED_LIBINTL@
139all-no-yes: libgnuintl.$la
140all-no-no:
141
142libintl.a libgnuintl.a: $(OBJECTS)
143	rm -f $@
144	$(AR) cru $@ $(OBJECTS)
145	$(RANLIB) $@
146
147libintl.la libgnuintl.la: $(OBJECTS)
148	$(LIBTOOL) --mode=link \
149	  $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
150	  $(OBJECTS) @LTLIBICONV@ $(LIBS) \
151	  -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
152	  -rpath $(libdir) \
153	  -no-undefined
154
155# Libtool's library version information for libintl.
156# Before making a gettext release, the gettext maintainer must change this
157# according to the libtool documentation, section "Library interface versions".
158# Maintainers of other packages that include the intl directory must *not*
159# change these values.
160LTV_CURRENT=5
161LTV_REVISION=0
162LTV_AGE=3
163
164.SUFFIXES:
165.SUFFIXES: .c .y .o .lo .sin .sed
166
167.c.o:
168	$(COMPILE) $<
169
170.y.c:
171	$(YACC) $(YFLAGS) --output $@ $<
172	rm -f $*.h
173
174bindtextdom.lo: $(srcdir)/bindtextdom.c
175	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c
176dcgettext.lo: $(srcdir)/dcgettext.c
177	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c
178dgettext.lo: $(srcdir)/dgettext.c
179	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c
180gettext.lo: $(srcdir)/gettext.c
181	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c
182finddomain.lo: $(srcdir)/finddomain.c
183	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c
184loadmsgcat.lo: $(srcdir)/loadmsgcat.c
185	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c
186localealias.lo: $(srcdir)/localealias.c
187	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c
188textdomain.lo: $(srcdir)/textdomain.c
189	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c
190l10nflist.lo: $(srcdir)/l10nflist.c
191	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c
192explodename.lo: $(srcdir)/explodename.c
193	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c
194dcigettext.lo: $(srcdir)/dcigettext.c
195	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c
196dcngettext.lo: $(srcdir)/dcngettext.c
197	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c
198dngettext.lo: $(srcdir)/dngettext.c
199	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c
200ngettext.lo: $(srcdir)/ngettext.c
201	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c
202plural.lo: $(srcdir)/plural.c
203	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c
204plural-exp.lo: $(srcdir)/plural-exp.c
205	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c
206localcharset.lo: $(srcdir)/localcharset.c
207	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c
208relocatable.lo: $(srcdir)/relocatable.c
209	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c
210localename.lo: $(srcdir)/localename.c
211	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c
212log.lo: $(srcdir)/log.c
213	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c
214osdep.lo: $(srcdir)/osdep.c
215	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c
216intl-compat.lo: $(srcdir)/intl-compat.c
217	$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c
218
219ref-add.sed: $(srcdir)/ref-add.sin
220	sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed
221	mv t-ref-add.sed ref-add.sed
222ref-del.sed: $(srcdir)/ref-del.sin
223	sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed
224	mv t-ref-del.sed ref-del.sed
225
226INCLUDES = -I. -I$(srcdir) -I${top_builddir} -I${top_srcdir}
227
228libgnuintl.h: $(srcdir)/libgnuintl.h.in
229	cp $(srcdir)/libgnuintl.h.in libgnuintl.h
230
231libintl.h: libgnuintl.h
232	cp libgnuintl.h libintl.h
233
234charset.alias: $(srcdir)/config.charset
235	$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
236	mv t-$@ $@
237
238check: all
239
240# We must not install the libintl.h/libintl.a files if we are on a
241# system which has the GNU gettext() function in its C library or in a
242# separate library.
243# If you want to use the one which comes with this version of the
244# package, you have to use `configure --with-included-gettext'.
245install: install-exec install-data
246install-exec: all
247	if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
248	   && test '@USE_INCLUDED_LIBINTL@' = yes; then \
249	  $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
250	  $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
251	  $(LIBTOOL) --mode=install \
252	    $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
253	  if test "@RELOCATABLE@" = yes; then \
254	    dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \
255	    if test -n "$dependencies"; then \
256	      rm -f $(DESTDIR)$(libdir)/libintl.la; \
257	    fi; \
258	  fi; \
259	else \
260	  : ; \
261	fi
262	if test "$(PACKAGE)" = "gettext-tools" \
263	   && test '@USE_INCLUDED_LIBINTL@' = no; then \
264	  $(mkinstalldirs) $(DESTDIR)$(libdir); \
265	  $(LIBTOOL) --mode=install \
266	    $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \
267	  rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
268	  $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \
269	  $(LIBTOOL) --mode=uninstall \
270	    rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \
271	else \
272	  : ; \
273	fi
274	if test '@USE_INCLUDED_LIBINTL@' = yes; then \
275	  $(mkinstalldirs) $(DESTDIR)$(localedir); \
276	  test -f $(DESTDIR)$(localedir)/locale.alias \
277	    && orig=$(DESTDIR)$(localedir)/locale.alias \
278	    || orig=$(srcdir)/locale.alias; \
279	  temp=$(DESTDIR)$(localedir)/t-locale.alias; \
280	  dest=$(DESTDIR)$(localedir)/locale.alias; \
281	  sed -f ref-add.sed $$orig > $$temp; \
282	  $(INSTALL_DATA) $$temp $$dest; \
283	  rm -f $$temp; \
284	else \
285	  : ; \
286	fi
287install-data: all
288	if test "$(PACKAGE)" = "gettext-tools"; then \
289	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
290	  $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
291	  $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
292	  dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
293	  for file in $$dists; do \
294	    $(INSTALL_DATA) $(srcdir)/$$file \
295			    $(DESTDIR)$(gettextsrcdir)/$$file; \
296	  done; \
297	  chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
298	  dists="$(DISTFILES.generated)"; \
299	  for file in $$dists; do \
300	    if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
301	    $(INSTALL_DATA) $$dir/$$file \
302			    $(DESTDIR)$(gettextsrcdir)/$$file; \
303	  done; \
304	  dists="$(DISTFILES.obsolete)"; \
305	  for file in $$dists; do \
306	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
307	  done; \
308	else \
309	  : ; \
310	fi
311
312install-strip: install
313
314installdirs:
315	if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
316	   && test '@USE_INCLUDED_LIBINTL@' = yes; then \
317	  $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
318	else \
319	  : ; \
320	fi
321	if test "$(PACKAGE)" = "gettext-tools" \
322	   && test '@USE_INCLUDED_LIBINTL@' = no; then \
323	  $(mkinstalldirs) $(DESTDIR)$(libdir); \
324	else \
325	  : ; \
326	fi
327	if test '@USE_INCLUDED_LIBINTL@' = yes; then \
328	  test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
329	  $(mkinstalldirs) $(DESTDIR)$(localedir); \
330	else \
331	  : ; \
332	fi
333	if test "$(PACKAGE)" = "gettext-tools"; then \
334	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
335	else \
336	  : ; \
337	fi
338
339# Define this as empty until I found a useful application.
340installcheck:
341
342uninstall:
343	if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
344	   && test '@USE_INCLUDED_LIBINTL@' = yes; then \
345	  rm -f $(DESTDIR)$(includedir)/libintl.h; \
346	  $(LIBTOOL) --mode=uninstall \
347	    rm -f $(DESTDIR)$(libdir)/libintl.$la; \
348	else \
349	  : ; \
350	fi
351	if test "$(PACKAGE)" = "gettext-tools" \
352	   && test '@USE_INCLUDED_LIBINTL@' = no; then \
353	  rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
354	else \
355	  : ; \
356	fi
357	if test '@USE_INCLUDED_LIBINTL@' = yes; then \
358	  if test -f $(DESTDIR)$(prefix)/libdata/charset.alias; then \
359	    temp=$(DESTDIR)$(prefix)/libdata/t-charset.alias; \
360	    dest=$(DESTDIR)$(prefix)/libdata/charset.alias; \
361	    sed -f ref-del.sed $$dest > $$temp; \
362	    if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
363	      rm -f $$dest; \
364	    else \
365	      $(INSTALL_DATA) $$temp $$dest; \
366	    fi; \
367	    rm -f $$temp; \
368	  fi; \
369	  if test -f $(DESTDIR)$(localedir)/locale.alias; then \
370	    temp=$(DESTDIR)$(localedir)/t-locale.alias; \
371	    dest=$(DESTDIR)$(localedir)/locale.alias; \
372	    sed -f ref-del.sed $$dest > $$temp; \
373	    if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
374	      rm -f $$dest; \
375	    else \
376	      $(INSTALL_DATA) $$temp $$dest; \
377	    fi; \
378	    rm -f $$temp; \
379	  fi; \
380	else \
381	  : ; \
382	fi
383	if test "$(PACKAGE)" = "gettext-tools"; then \
384	  for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
385	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
386	  done; \
387	else \
388	  : ; \
389	fi
390
391info dvi ps pdf html:
392
393$(OBJECTS): ${top_builddir}/config.h libgnuintl.h
394bindtextdom.$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: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
395dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h
396explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h
397dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h
398dcigettext.$lo: $(srcdir)/eval-plural.h
399localcharset.$lo: $(srcdir)/localcharset.h
400localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h
401
402tags: TAGS
403
404TAGS: $(HEADERS) $(SOURCES)
405	here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
406
407ctags: CTAGS
408
409CTAGS: $(HEADERS) $(SOURCES)
410	here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES)
411
412id: ID
413
414ID: $(HEADERS) $(SOURCES)
415	here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
416
417
418mostlyclean:
419	rm -f *.a *.la *.o *.obj *.lo core core.*
420	rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed
421	rm -f -r .libs _libs
422
423clean: mostlyclean
424
425distclean: clean
426	rm -f Makefile ID TAGS
427	if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \
428	  rm -f ChangeLog.inst $(DISTFILES.normal); \
429	else \
430	  : ; \
431	fi
432
433maintainer-clean: distclean
434	@echo "This command is intended for maintainers to use;"
435	@echo "it deletes files that may require special tools to rebuild."
436
437
438# GNU gettext needs not contain the file `VERSION' but contains some
439# other files which should not be distributed in other packages.
440distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
441dist distdir: Makefile
442	if test "$(PACKAGE)" = "gettext-tools"; then \
443	  : ; \
444	else \
445	  if test "$(PACKAGE)" = "gettext-runtime"; then \
446	    additional="$(DISTFILES.gettext)"; \
447	  else \
448	    additional="$(DISTFILES.normal)"; \
449	  fi; \
450	  $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
451	  for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
452	    if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
453	    cp -p $$dir/$$file $(distdir); \
454	  done; \
455	fi
456
457Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
458	cd $(top_builddir) && $(SHELL) ./config.status
459# This would be more efficient, but doesn't work any more with autoconf-2.57,
460# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used.
461#	cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
462
463# Tell versions [3.59,3.63) of GNU make not to export all variables.
464# Otherwise a system limit (for SysV at least) may be exceeded.
465.NOEXPORT:
466