blob: e5688b82fc6a15c9a39077b452e6d78c3050691c [file] [log] [blame]
## Makefile for the gettext-tools/libgettextpo subdirectory of GNU gettext
## Copyright (C) 1995-1998, 2000-2016, 2019-2021 Free Software Foundation, Inc.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <https://www.gnu.org/licenses/>.
## Process this file with automake to produce Makefile.in.
AUTOMAKE_OPTIONS = 1.5 gnits no-dependencies subdir-objects
EXTRA_DIST =
BUILT_SOURCES =
MOSTLYCLEANFILES = core *.stackdump
MOSTLYCLEANDIRS =
CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
SUFFIXES =
lib_LTLIBRARIES = libgettextpo.la
nodist_include_HEADERS = gettext-po.h
noinst_LTLIBRARIES =
nodist_noinst_HEADERS = config.h
AM_CPPFLAGS = \
-I. -I$(srcdir) \
-I.. -I$(top_srcdir) \
-I../src -I$(top_srcdir)/src \
-I../../gettext-runtime/intl -I$(top_srcdir)/../gettext-runtime/intl
DEFS = -DIN_LIBGETTEXTPO=1 -DOMIT_SETLOCALE_LOCK=1 @DEFS@
# libgettextpo contains the public API for PO files.
libgettextpo_la_SOURCES = \
gettext-po.c \
$(libgettextpo_la_AUXSOURCES)
# These are auxiliary sources whose symbols should not be exported.
libgettextpo_la_AUXSOURCES = \
../src/str-list.c \
../src/dir-list.c \
../src/message.c \
../src/pos.c \
../src/msgl-ascii.c \
../src/po-error.c \
../src/po-xerror.c \
../src/write-catalog.c \
../src/write-po.c \
../src/open-catalog.c \
../src/po-charset.c \
../src/po-lex.c \
../src/po-gram-gen.c \
../src/read-po.c \
../src/read-catalog-abstract.c \
../src/read-catalog.c \
../src/plural-table.c \
../src/format-c.c \
../src/format-python.c \
../src/format-python-brace.c \
../src/format-java.c \
../src/format-java-printf.c \
../src/format-csharp.c \
../src/format-javascript.c \
../src/format-scheme.c \
../src/format-lisp.c \
../src/format-elisp.c \
../src/format-librep.c \
../src/format-ruby.c \
../src/format-sh.c \
../src/format-awk.c \
../src/format-lua.c \
../src/format-pascal.c \
../src/format-smalltalk.c \
../src/format-qt.c \
../src/format-qt-plural.c \
../src/format-kde.c \
../src/format-kde-kuit.c \
../src/format-boost.c \
../src/format-tcl.c \
../src/format-perl.c \
../src/format-perl-brace.c \
../src/format-php.c \
../src/format-gcc-internal.c \
../src/format-gfc-internal.c \
../src/format.c \
../src/plural-exp.c \
../src/plural-eval.c \
../src/msgl-check.c \
../src/sentence.c
# Libtool's library version information for libgettextpo.
# See the libtool documentation, section "Library interface versions".
LTV_CURRENT=5
LTV_REVISION=7
LTV_AGE=5
# How to build libgettextpo.la.
# Don't make it depend on libgettextsrc.la or libgettextlib.la, since they
# define an uncontrolled amount of symbols.
libgettextpo_la_LIBADD = libgnu.la $(WOE32_LIBADD) $(LTLIBUNISTRING)
libgettextpo_la_LDFLAGS = \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-rpath $(libdir) \
@LTLIBINTL@ @LTLIBICONV@ -lc -no-undefined
# Tell the mingw or Cygwin linker which symbols to export.
if WOE32DLL
libgettextpo_la_SOURCES += ../woe32dll/gettextpo-exports.c
libgettextpo_la_LDFLAGS += -Wl,--export-all-symbols
endif
# OS/2 does not support a DLL name longer than 8 characters.
if OS2
libgettextpo_la_LDFLAGS += -os2dllname gtpo
endif
# Specify installation directory, for --enable-relocatable.
if RELOCATABLE_VIA_LD
# This is needed, because libgettextpo depends on libintl.
libgettextpo_la_LDFLAGS += `$(RELOCATABLE_LDFLAGS) $(libdir)`
endif
# Support for relocatability.
RELOCATABLE_LIBRARY_PATH = $(libdir)
# Version information according to Woe32 conventions.
EXTRA_DIST += libgettextpo.rc
if WOE32
WOE32_LIBADD = libgettextpo.res.lo
libgettextpo.res.lo : $(srcdir)/libgettextpo.rc
$(LIBTOOL) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) `$(SHELL) $(top_srcdir)/../windows/windres-options --escape $(VERSION)` -i $(srcdir)/libgettextpo.rc -o libgettextpo.res.lo --output-format=coff
MOSTLYCLEANFILES += libgettextpo.res.lo
else
WOE32_LIBADD =
endif
# Hide symbols that are defined by libgettextpo_la_AUXSOURCES or libgnu.la
# from the global namespace, by prefixing them with "libgettextpo_".
all check install: config.h
config.h: $(BUILT_SOURCES)
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
: "Avoid double inclusion, to avoid a warning about redefinition of DLL_VARIABLE."; \
echo '#ifndef GTPO_CONFIG_H'; \
echo '#define GTPO_CONFIG_H'; \
echo; \
echo '#include "../config.h"'; \
: "We use gnulib module 'getcwd-lgpl' here, not module 'getcwd'."; \
echo '#undef GNULIB_GETCWD'; \
: "We don't use gnulib module 'fchdir' here."; \
echo '#undef REPLACE_FCHDIR'; \
: "Turn all gettext() calls into dgettext() calls."; \
echo '#define DEFAULT_TEXT_DOMAIN "gettext-tools"'; \
: "All code is collected in a single library,"; \
: "No references to variables in other libraries exist."; \
echo '#undef DLL_VARIABLE'; \
echo '#define DLL_VARIABLE'; \
echo; \
echo '#endif /* GTPO_CONFIG_H */'; \
} > config.h && \
if test -n "$(HAVE_GLOBAL_SYMBOL_PIPE)"; then \
{ \
for f in $(libgettextpo_la_AUXSOURCES) $(libgnu_la_SOURCES) $(libgnu_la_LIBADD); do \
case $$f in \
*.c | *.$(OBJEXT) | *.lo ) \
sf=`echo "$$f" | sed -e 's,\\.[^.]*$$,,'`.c; \
test -f $$sf || sf=$(srcdir)/$$sf; \
of=`echo "$$f" | sed -e 's,^.*/,,' -e 's,\\.[^.]*$$,,'`.$(OBJEXT); \
$(COMPILE) $(DEFS) -c $$sf || { rm -f config.h; exit 1; }; \
sh ./exported.sh $$of 1>&5; \
rm -f $$of `echo "$$of" | sed -e 's,\\.$(OBJEXT)$$,.lo,'`; \
;; \
esac; \
done; \
} 5>&1 1>&2 \
| sed -e 's,.* ,,' | grep -v '@' | LC_ALL=C sort | LC_ALL=C uniq \
| sed -e 's,^obstack_free$$,__obstack_free,' \
| sed -e 's,^\(.*\)$$,#define \1 libgettextpo_\1,' > config.h-t && \
if test -f config.h; then \
cat config.h-t >> config.h; \
rm -f config.h-t; \
else \
rm -f config.h-t; \
exit 1; \
fi \
fi
MOSTLYCLEANFILES += config.h config.h-t
# Special rules for installable include files that export variables.
EXTRA_DIST += gettext-po.in.h
BUILT_SOURCES += gettext-po.h
CLEANFILES += gettext-po.h
gettext-po.h: gettext-po.in.h
if WOE32DLL
sed -e 's/extern \([^()]*\);/extern __declspec (dllimport) \1;/' $(srcdir)/gettext-po.in.h > gettext-po.h-tmp
else
cp $(srcdir)/gettext-po.in.h gettext-po.h-tmp
endif
mv gettext-po.h-tmp gettext-po.h
# Allow users to use "gnulib-tool --update".
EXTRA_DIST += gnulib-m4/gnulib-cache.m4
# A small set of gnulib modules is needed here as well.
include Makefile.gnulib