xref: /netbsd-src/external/gpl2/gettext/dist/gettext-tools/src/Makefile.am (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
1## Makefile for the gettext-tools/src subdirectory of GNU gettext
2## Copyright (C) 1995-1998, 2000-2006 Free Software Foundation, Inc.
3##
4## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
6## 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
12## GNU General Public License for more details.
13##
14## You should have received a copy of the GNU General Public License
15## along with this program; if not, write to the Free Software Foundation,
16## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18## Process this file with automake to produce Makefile.in.
19
20AUTOMAKE_OPTIONS = 1.5 gnits no-dependencies
21EXTRA_DIST =
22MOSTLYCLEANFILES = core *.stackdump
23CLEANFILES =
24DISTCLEANFILES =
25
26RM = rm -f
27
28bin_PROGRAMS = \
29msgcmp msgfmt msgmerge msgunfmt xgettext \
30msgattrib msgcat msgcomm msgconv msgen msgexec msgfilter msggrep msginit msguniq \
31recode-sr-latin
32
33noinst_PROGRAMS = hostname urlget
34
35lib_LTLIBRARIES = libgettextsrc.la
36
37noinst_HEADERS = pos.h message.h po-error.h po-xerror.h po-gram.h po-charset.h \
38po-lex.h open-catalog.h read-catalog-abstract.h read-catalog.h \
39read-po.h read-properties.h read-stringtable.h \
40str-list.h \
41write-catalog.h write-po.h write-properties.h write-stringtable.h \
42dir-list.h file-list.h po-gram-gen.h po-gram-gen2.h \
43msgl-charset.h msgl-equal.h msgl-iconv.h msgl-ascii.h msgl-cat.h \
44msgl-english.h msgl-check.h msgl-fsearch.h msgfmt.h msgunfmt.h \
45plural-count.h plural-eval.h \
46read-mo.h write-mo.h \
47read-java.h write-java.h \
48read-csharp.h write-csharp.h \
49read-resources.h write-resources.h \
50read-tcl.h write-tcl.h \
51write-qt.h \
52po-time.h plural-table.h lang-table.h format.h filters.h \
53xgettext.h x-c.h x-po.h x-sh.h x-python.h x-lisp.h x-elisp.h x-librep.h \
54x-scheme.h x-smalltalk.h x-java.h x-properties.h x-csharp.h x-awk.h x-ycp.h \
55x-tcl.h x-perl.h x-php.h x-stringtable.h x-rst.h x-glade.h
56
57EXTRA_DIST += FILES project-id ChangeLog.0
58
59aliaspath = $(localedir)
60jardir = $(datadir)/gettext
61pkgdatadir = $(datadir)/gettext
62projectsdir = $(pkgdatadir)/projects
63pkglibdir = $(libdir)/gettext
64
65AM_CPPFLAGS = \
66  -I. -I$(srcdir) \
67  -I.. -I$(top_srcdir) \
68  -I$(top_srcdir)/libgrep \
69  -I$(top_srcdir)/libuniname \
70  -I../gnulib-lib -I$(top_srcdir)/gnulib-lib \
71  -I../intl -I$(top_srcdir)/../gettext-runtime/intl
72DEFS = \
73  -DLOCALEDIR=\"$(localedir)\" -DBISON_LOCALEDIR=\"$(BISON_LOCALEDIR)\" \
74  -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
75  -DUSEJEXE=$(USEJEXE) \
76  -DGETTEXTJEXEDIR=\"$(pkglibdir)\" \
77  -DGETTEXTJAR=\"$(jardir)/gettext.jar\" \
78  -DLIBDIR=\"$(libdir)\" \
79  -DGETTEXTDATADIR=\"$(pkgdatadir)\" \
80  -DPROJECTSDIR=\"$(projectsdir)\" @DEFS@
81LDADD = ../gnulib-lib/libgettextlib.la @LTLIBINTL@
82
83SED = sed
84YACC = @YACC@ -d
85GCJ = @GCJ@
86GCJFLAGS = @GCJFLAGS@
87JAR = @JAR@
88JAVACOMP = $(SHELL) ../javacomp.sh
89CSHARPCOMP = $(SHELL) ../csharpcomp.sh
90CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@
91
92
93# All programs deal with message lists.
94# All programs must read PO files. (msgunfmt also, for read-java.c,
95# read-csharp.c and read-resources.c.)
96# message.c -> str-list.c.
97# (read-catalog-abstract.c <--> po-gram-gen.y <--> po-lex.c) -> str-list.c.
98# (read-catalog-abstract.c <--> po-gram-gen.y <--> po-lex.c) -> open-catalog.c -> dir-list.c -> str-list.c.
99# (read-catalog-abstract.c <--> po-gram-gen.y <--> po-lex.c) -> po-charset.c.
100# (read-catalog-abstract.c <--> po-gram-gen.y <--> po-lex.c) -> message.c -> str-list.c.
101COMMON_SOURCE = message.c po-error.c po-xerror.c \
102read-catalog-abstract.c po-lex.c po-gram-gen.y po-charset.c \
103read-po.c read-properties.c read-stringtable.c open-catalog.c \
104dir-list.c str-list.c
105
106# xgettext and msgfmt deal with format strings.
107if !WOE32DLL
108FORMAT_SOURCE = format.c
109else
110FORMAT_SOURCE = ../woe32dll/c++format.cc
111endif
112FORMAT_SOURCE += format-invalid.h \
113format-c.c format-sh.c format-python.c format-lisp.c format-elisp.c \
114format-librep.c format-scheme.c format-java.c format-csharp.c format-awk.c \
115format-pascal.c format-ycp.c format-tcl.c format-perl.c format-perl-brace.c \
116format-php.c format-gcc-internal.c format-qt.c format-boost.c
117
118# libgettextsrc contains all code that is needed by at least two programs.
119libgettextsrc_la_SOURCES = \
120$(COMMON_SOURCE) read-catalog.c \
121write-catalog.c write-properties.c write-stringtable.c write-po.c \
122msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-english.c msgl-check.c \
123file-list.c msgl-charset.c po-time.c plural-exp.c plural-eval.c plural-table.c \
124$(FORMAT_SOURCE)
125
126# msggrep needs pattern matching.
127LIBGREP = ../libgrep/libgrep.a
128
129# x-python needs table of Unicode character names.
130LIBUNINAME = ../libuniname/libuniname.a
131
132# Source dependencies.
133msgcmp_SOURCES = msgcmp.c
134msgfmt_SOURCES = msgfmt.c
135msgfmt_SOURCES += \
136  write-mo.c write-java.c write-csharp.c write-resources.c write-tcl.c \
137  write-qt.c ../../gettext-runtime/intl/hash-string.c
138if !WOE32DLL
139msgmerge_SOURCES = msgmerge.c
140else
141msgmerge_SOURCES = ../woe32dll/c++msgmerge.cc
142endif
143msgmerge_SOURCES += msgl-fsearch.c plural-count.c
144msgunfmt_SOURCES = msgunfmt.c
145msgunfmt_SOURCES += \
146  read-mo.c read-java.c read-csharp.c read-resources.c read-tcl.c
147if !WOE32DLL
148xgettext_SOURCES = xgettext.c
149else
150xgettext_SOURCES = ../woe32dll/c++xgettext.cc
151endif
152xgettext_SOURCES += \
153  x-c.c x-po.c x-sh.c x-python.c x-lisp.c x-elisp.c x-librep.c x-scheme.c \
154  x-smalltalk.c x-java.c x-csharp.c x-awk.c x-ycp.c x-tcl.c x-perl.c x-php.c \
155  x-rst.c x-glade.c
156if !WOE32DLL
157msgattrib_SOURCES = msgattrib.c
158else
159msgattrib_SOURCES = ../woe32dll/c++msgattrib.cc
160endif
161if !WOE32DLL
162msgcat_SOURCES = msgcat.c
163else
164msgcat_SOURCES = ../woe32dll/c++msgcat.cc
165endif
166if !WOE32DLL
167msgcomm_SOURCES = msgcomm.c
168else
169msgcomm_SOURCES = ../woe32dll/c++msgcomm.cc
170endif
171if !WOE32DLL
172msgconv_SOURCES = msgconv.c
173else
174msgconv_SOURCES = ../woe32dll/c++msgconv.cc
175endif
176if !WOE32DLL
177msgen_SOURCES = msgen.c
178else
179msgen_SOURCES = ../woe32dll/c++msgen.cc
180endif
181msgexec_SOURCES = msgexec.c
182if !WOE32DLL
183msgfilter_SOURCES = msgfilter.c
184else
185msgfilter_SOURCES = ../woe32dll/c++msgfilter.cc
186endif
187msgfilter_SOURCES += filter-sr-latin.c
188if !WOE32DLL
189msggrep_SOURCES = msggrep.c
190else
191msggrep_SOURCES = ../woe32dll/c++msggrep.cc
192endif
193msginit_SOURCES = msginit.c
194msginit_SOURCES += lang-table.c plural-count.c
195msginit_SOURCES += ../../gettext-runtime/intl/localealias.c
196# This is needed because on Solaris, localealias.c requires the symbol
197# libintl_thread_in_use which is defined in lock.c. The copy of lock.c inside
198# libintl.so is not sufficient, because libintl.so doesn't export the symbol
199# libintl_thread_in_use.
200msginit_SOURCES += ../../gettext-runtime/intl/lock.c
201if !WOE32DLL
202msguniq_SOURCES = msguniq.c
203else
204msguniq_SOURCES = ../woe32dll/c++msguniq.cc
205endif
206recode_sr_latin_SOURCES = recode-sr-latin.c filter-sr-latin.c
207hostname_SOURCES = hostname.c
208urlget_SOURCES = urlget.c
209
210# How to build libgettextsrc.la.
211# Need ../gnulib-lib/libgettextlib.la.
212# Need @LTLIBINTL@ because many source files use gettext().
213# Need @LTLIBICONV@ because po-charset.c, po-lex.c, msgl-iconv.c, write-po.c
214# use iconv().
215libgettextsrc_la_LDFLAGS = \
216  -release @VERSION@ \
217  ../gnulib-lib/libgettextlib.la @LTLIBINTL@ @LTLIBICONV@ -lc @LTNOUNDEF@
218
219# Tell the mingw or Cygwin linker which symbols to export.
220if WOE32DLL
221libgettextsrc_la_SOURCES += ../woe32dll/gettextsrc-exports.c
222libgettextsrc_la_LDFLAGS += -Wl,--export-all-symbols
223endif
224
225# No need to install libgettextsrc.a, except on AIX.
226install-exec-local: install-libLTLIBRARIES install-exec-clean
227install-exec-clean:
228	case "@host_os@" in \
229	  aix*) ;; \
230	  *) $(RM) $(DESTDIR)$(libdir)/libgettextsrc.a ;; \
231	esac
232
233# Compile-time flags for particular source files.
234msgmerge_CFLAGS = $(AM_CFLAGS) $(OPENMP_CFLAGS)
235msgmerge_CXXFLAGS = $(AM_CXXFLAGS) $(OPENMP_CFLAGS)
236
237# Link dependencies.
238# INTL_MACOSX_LIBS is needed because the programs depend on libintl.la
239# but libtool doesn't put -Wl,-framework options into .la files.
240# For msginit, it is also needed because of localename.c.
241msgcmp_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
242msgfmt_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
243msgmerge_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@ @MSGMERGE_LIBM@ $(OPENMP_CFLAGS)
244msgunfmt_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
245xgettext_LDADD = $(LIBUNINAME) libgettextsrc.la @INTL_MACOSX_LIBS@ @LTLIBEXPAT@
246msgattrib_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
247msgcat_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
248msgcomm_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
249msgconv_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
250msgen_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
251msgexec_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
252msgfilter_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
253msggrep_LDADD = $(LIBGREP) libgettextsrc.la @INTL_MACOSX_LIBS@
254msginit_LDADD = ../intl/localename.@INTL_LIBTOOL_SUFFIX_PREFIX@o \
255                libgettextsrc.la @INTL_MACOSX_LIBS@
256msguniq_LDADD = libgettextsrc.la @INTL_MACOSX_LIBS@
257recode_sr_latin_LDADD = ../gnulib-lib/libgettextlib.la @INTL_MACOSX_LIBS@
258
259# Specify installation directory, for --enable-relocatable.
260msgcmp_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
261msgfmt_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
262msgmerge_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
263msgunfmt_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
264xgettext_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
265msgattrib_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
266msgcat_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
267msgcomm_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
268msgconv_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
269msgen_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
270msgexec_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
271msgfilter_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
272msggrep_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
273msginit_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
274msguniq_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
275recode_sr_latin_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
276hostname_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibdir)\"
277urlget_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibdir)\"
278if RELOCATABLE_VIA_LD
279msgcmp_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
280msgfmt_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
281msgmerge_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
282msgunfmt_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
283xgettext_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
284msgattrib_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
285msgcat_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
286msgcomm_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
287msgconv_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
288msgen_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
289msgexec_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
290msgfilter_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
291msggrep_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
292msginit_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
293msguniq_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
294recode_sr_latin_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
295hostname_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibdir)`
296urlget_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibdir)`
297endif
298
299# Linking with C++ libraries is needed _only_ on mingw and Cygwin.
300if !WOE32DLL
301libgettextsrc_la_LINK = $(LIBTOOL) --tag=CC \
302	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
303	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgettextsrc_la_LDFLAGS) $(LDFLAGS) \
304	-o $@
305msgattrib_LINK = $(LIBTOOL) --tag=CC \
306	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
307	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msgattrib_LDFLAGS) $(LDFLAGS) \
308	-o $@
309msgcat_LINK = $(LIBTOOL) --tag=CC \
310	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
311	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msgcat_LDFLAGS) $(LDFLAGS) \
312	-o $@
313msgcomm_LINK = $(LIBTOOL) --tag=CC \
314	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
315	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msgcomm_LDFLAGS) $(LDFLAGS) \
316	-o $@
317msgconv_LINK = $(LIBTOOL) --tag=CC \
318	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
319	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msgconv_LDFLAGS) $(LDFLAGS) \
320	-o $@
321msgen_LINK = $(LIBTOOL) --tag=CC \
322	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
323	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msgen_LDFLAGS) $(LDFLAGS) \
324	-o $@
325msgfilter_LINK = $(LIBTOOL) --tag=CC \
326	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
327	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msgfilter_LDFLAGS) $(LDFLAGS) \
328	-o $@
329msggrep_LINK = $(LIBTOOL) --tag=CC \
330	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
331	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msggrep_LDFLAGS) $(LDFLAGS) \
332	-o $@
333msgmerge_LINK = $(LIBTOOL) --tag=CC \
334	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
335	$(CCLD) $(msgmerge_CFLAGS) $(CFLAGS) $(msgmerge_LDFLAGS) $(LDFLAGS) \
336	-o $@
337msguniq_LINK = $(LIBTOOL) --tag=CC \
338	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
339	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(msguniq_LDFLAGS) $(LDFLAGS) \
340	-o $@
341xgettext_LINK = $(LIBTOOL) --tag=CC \
342	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
343	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(xgettext_LDFLAGS) $(LDFLAGS) \
344	-o $@
345else
346libgettextsrc_la_LINK = $(LIBTOOL) --tag=CXX \
347	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
348	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(libgettextsrc_la_LDFLAGS) $(LDFLAGS) \
349	-o $@
350msgattrib_LINK = $(LIBTOOL) --tag=CXX \
351	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
352	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msgattrib_LDFLAGS) $(LDFLAGS) \
353	-o $@
354msgcat_LINK = $(LIBTOOL) --tag=CXX \
355	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
356	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msgcat_LDFLAGS) $(LDFLAGS) \
357	-o $@
358msgcomm_LINK = $(LIBTOOL) --tag=CXX \
359	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
360	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msgcomm_LDFLAGS) $(LDFLAGS) \
361	-o $@
362msgconv_LINK = $(LIBTOOL) --tag=CXX \
363	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
364	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msgconv_LDFLAGS) $(LDFLAGS) \
365	-o $@
366msgen_LINK = $(LIBTOOL) --tag=CXX \
367	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
368	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msgen_LDFLAGS) $(LDFLAGS) \
369	-o $@
370msgfilter_LINK = $(LIBTOOL) --tag=CXX \
371	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
372	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msgfilter_LDFLAGS) $(LDFLAGS) \
373	-o $@
374msggrep_LINK = $(LIBTOOL) --tag=CXX \
375	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
376	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msggrep_LDFLAGS) $(LDFLAGS) \
377	-o $@
378msgmerge_LINK = $(LIBTOOL) --tag=CXX \
379	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
380	$(CXXLD) $(msgmerge_CXXFLAGS) $(CXXFLAGS) $(msgmerge_LDFLAGS) $(LDFLAGS) \
381	-o $@
382msguniq_LINK = $(LIBTOOL) --tag=CXX \
383	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
384	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(msguniq_LDFLAGS) $(LDFLAGS) \
385	-o $@
386xgettext_LINK = $(LIBTOOL) --tag=CXX \
387	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
388	$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(xgettext_LDFLAGS) $(LDFLAGS) \
389	-o $@
390endif
391
392# Special rules for bison and flex generated files.
393
394BUILT_SOURCES = \
395  po-gram-gen.c po-gram-gen.h po-gram-gen2.h
396
397po-lex.o po-lex.lo: po-gram-gen2.h
398po-gram-gen2.h: po-gram-gen.h
399	$(SED) -e 's/yy/po_gram_/g' -e 's/extern /extern DLL_VARIABLE /' $(srcdir)/po-gram-gen.h > $@-tmp
400	mv $@-tmp $@
401
402
403# Special rules for installation of auxiliary programs.
404
405install-exec-local:
406	$(mkdir_p) $(DESTDIR)$(pkglibdir)
407	$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) hostname$(EXEEXT) $(DESTDIR)$(pkglibdir)/hostname$(EXEEXT)
408	$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) urlget$(EXEEXT) $(DESTDIR)$(pkglibdir)/urlget$(EXEEXT)
409	$(INSTALL_SCRIPT) user-email $(DESTDIR)$(pkglibdir)/user-email
410	$(INSTALL_SCRIPT) $(srcdir)/project-id $(DESTDIR)$(pkglibdir)/project-id
411
412installdirs-local:
413	$(mkdir_p) $(DESTDIR)$(pkglibdir)
414
415uninstall-local:
416	$(RM) $(DESTDIR)$(pkglibdir)/hostname$(EXEEXT)
417	$(RM) $(DESTDIR)$(pkglibdir)/urlget$(EXEEXT)
418	$(RM) $(DESTDIR)$(pkglibdir)/user-email
419	$(RM) $(DESTDIR)$(pkglibdir)/project-id
420
421DISTCLEANFILES += user-email
422
423
424# Special rules for Java compilation.
425
426USEJEXE = $(USEJEXE_@BUILDJAVAEXE@)
427USEJEXE_yes = 1
428USEJEXE_no = 0
429
430all-local: all-java-@BUILDJAVAEXE@
431all-java-yes: gnu.gettext.DumpResource$(EXEEXT) gnu.gettext.GetURL$(EXEEXT)
432all-java-no: all-java-no-@BUILDJAVA@
433all-java-no-yes: gettext.jar
434all-java-no-no:
435
436gnu.gettext.DumpResource$(EXEEXT): $(srcdir)/gnu/gettext/DumpResource.java
437	$(GCJ) $(GCJFLAGS) $(srcdir)/gnu/gettext/DumpResource.java --main=gnu.gettext.DumpResource -o $@
438
439gnu.gettext.GetURL$(EXEEXT): $(srcdir)/gnu/gettext/GetURL.java
440	$(GCJ) $(GCJFLAGS) $(srcdir)/gnu/gettext/GetURL.java --main=gnu.gettext.GetURL -o $@
441
442gnu/gettext/DumpResource.class: $(srcdir)/gnu/gettext/DumpResource.java
443	$(JAVACOMP) -d . $(srcdir)/gnu/gettext/DumpResource.java
444
445gnu/gettext/GetURL.class: $(srcdir)/gnu/gettext/GetURL.java
446	$(JAVACOMP) -d . $(srcdir)/gnu/gettext/GetURL.java
447
448gettext.jar: gnu/gettext/DumpResource.class gnu/gettext/GetURL.class
449	$(JAR) cf $@ gnu/gettext/DumpResource*.class gnu/gettext/GetURL*.class
450
451EXTRA_DIST += gnu/gettext/DumpResource.java gnu/gettext/GetURL.java
452
453CLEANFILES += gnu.gettext.DumpResource$(EXEEXT) gnu.gettext.GetURL$(EXEEXT) \
454              gettext.jar gnu/gettext/*.class
455
456install-exec-local: install-exec-java-@BUILDJAVAEXE@
457install-exec-java-yes: all-java-yes
458	$(mkdir_p) $(DESTDIR)$(pkglibdir)
459	$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) gnu.gettext.DumpResource$(EXEEXT) $(DESTDIR)$(pkglibdir)/gnu.gettext.DumpResource$(EXEEXT)
460	$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) gnu.gettext.GetURL$(EXEEXT) $(DESTDIR)$(pkglibdir)/gnu.gettext.GetURL$(EXEEXT)
461install-exec-java-no:
462
463install-data-local: install-data-java-@BUILDJAVAEXE@
464install-data-java-yes:
465install-data-java-no: install-data-java-no-@BUILDJAVA@
466install-data-java-no-yes: all-java-no-yes
467	$(INSTALL_DATA) gettext.jar $(DESTDIR)$(jardir)/gettext.jar
468install-data-java-no-no:
469
470installdirs-local: installdirs-java-@BUILDJAVAEXE@
471installdirs-java-yes:
472	$(mkdir_p) $(DESTDIR)$(pkglibdir)
473installdirs-java-no: installdirs-java-no-@BUILDJAVA@
474installdirs-java-no-yes:
475	$(mkdir_p) $(DESTDIR)$(jardir)
476installdirs-java-no-no:
477
478uninstall-local: uninstall-java-@BUILDJAVAEXE@
479uninstall-java-yes:
480	$(RM) $(DESTDIR)$(pkglibdir)/gnu.gettext.DumpResource$(EXEEXT)
481	$(RM) $(DESTDIR)$(pkglibdir)/gnu.gettext.GetURL$(EXEEXT)
482uninstall-java-no: uninstall-java-no-@BUILDJAVA@
483uninstall-java-no-yes:
484	$(RM) $(DESTDIR)$(jardir)/gettext.jar
485uninstall-java-no-no:
486
487
488# Special rules for C# auxiliary programs.
489
490EXTRA_DIST += msgfmt.cs msgunfmt.cs
491
492CLEANFILES += \
493  msgfmt.net.exe msgfmt.net.exe.mdb \
494  msgunfmt.net.exe msgunfmt.net.exe.mdb
495
496all-local: all-csharp-@BUILDCSHARP@
497all-csharp-yes: msgfmt.net.exe msgunfmt.net.exe
498all-csharp-no:
499
500msgfmt.net.exe: msgfmt.cs
501	$(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ $(srcdir)/msgfmt.cs
502
503msgunfmt.net.exe: msgunfmt.cs
504	$(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ -L ../../gettext-runtime/intl-csharp -l GNU.Gettext $(srcdir)/msgunfmt.cs
505
506install-exec-local: install-exec-csharp-@BUILDCSHARP@
507install-exec-csharp-yes: all-csharp-yes
508	$(mkdir_p) $(DESTDIR)$(pkglibdir)
509	$(INSTALL_DATA) msgfmt.net.exe $(DESTDIR)$(pkglibdir)/msgfmt.net.exe
510	$(INSTALL_DATA) msgunfmt.net.exe $(DESTDIR)$(pkglibdir)/msgunfmt.net.exe
511install-exec-csharp-no:
512	$(mkdir_p) $(DESTDIR)$(pkglibdir)
513
514installdirs-local: install-csharp
515installdirs-csharp:
516	$(mkdir_p) $(DESTDIR)$(pkglibdir)
517
518uninstall-local: uninstall-csharp-@BUILDCSHARP@
519uninstall-csharp-yes: all-csharp-yes
520	$(RM) $(DESTDIR)$(pkglibdir)/msgfmt.net.exe
521	$(RM) $(DESTDIR)$(pkglibdir)/msgunfmt.net.exe
522uninstall-csharp-no:
523
524
525# Special rules for Tcl auxiliary program.
526
527EXTRA_DIST += msgunfmt.tcl
528
529install-data-local: install-tcl
530install-tcl:
531	$(mkdir_p) $(DESTDIR)$(pkgdatadir)
532	$(INSTALL_DATA) $(srcdir)/msgunfmt.tcl $(DESTDIR)$(pkgdatadir)/msgunfmt.tcl
533
534installdirs-local: installdirs-tcl
535installdirs-tcl:
536	$(mkdir_p) $(DESTDIR)$(pkgdatadir)
537
538uninstall-local: uninstall-tcl
539uninstall-tcl:
540	$(RM) $(DESTDIR)$(pkgdatadir)/msgunfmt.tcl
541
542
543# Support for relocatability.
544RELOCATABLE_LIBRARY_PATH = $(libdir)
545RELOCATABLE_SRC_DIR = $(top_srcdir)/gnulib-lib
546RELOCATABLE_BUILD_DIR = ../gnulib-lib
547RELOCATABLE_CONFIG_H_DIR = ..
548@SET_RELOCATABLE@
549