From: Bruno Haible Date: Sat, 18 May 2019 21:33:06 +0000 (+0200) Subject: build: Restore the ability to build gettext-tools separately, part 1. X-Git-Tag: v0.20.2~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fb13bceb0fb72373f732da9154babd6085f9728;p=thirdparty%2Fgettext.git build: Restore the ability to build gettext-tools separately, part 1. Reported by Hanspeter Niederstrasser in . Code based on patch by Miguel Ángel Arruga Vivas . * autogen.sh: Copy libtextstyle.m4 for use by gettext-tools. * gettext-tools/configure.ac: New option --with-installed-libtextstyle. (USE_INSTALLED_LIBTEXTSTYLE): New conditional. * gettext-tools/src/Makefile.am (textstyle.h): Disable rule if USE_INSTALLED_LIBTEXTSTYLE is true. (LT_LIBTEXTSTYLE): New variable. (libgettextsrc_la_LDFLAGS): Use it instead of hardcoding a relative filename of libtextstyle.la. * configure.ac: Filter out --with-installed-libtextstyle from inherited --help output. * Makefile.am (distcheck-hook): Compare different copies of libtextstyle.m4. * PACKAGING: Document that gettext-tools's configure needs to be invoked with --with-installed-libtextstyle. --- diff --git a/Makefile.am b/Makefile.am index be8a2c928..48e8eb007 100644 --- a/Makefile.am +++ b/Makefile.am @@ -123,6 +123,7 @@ distcheck-hook: test "`sed 1,16d $(srcdir)/gettext-runtime/intl/xsize.h | md5sum`" = "`sed 1,16d $(srcdir)/gettext-tools/gnulib-lib/xsize.h | md5sum`" cmp -s $(srcdir)/gettext-runtime/man/help2man $(srcdir)/gettext-tools/man/help2man cmp -s $(srcdir)/gettext-runtime/man/x-to-1.in $(srcdir)/gettext-tools/man/x-to-1.in + cmp -s $(srcdir)/libtextstyle/m4/libtextstyle.m4 $(srcdir)/gettext-tools/gnulib-m4/libtextstyle.m4 cmp -s $(srcdir)/gettext-tools/examples/hello-java-awt/m4/TestAWT.java $(srcdir)/gettext-tools/examples/hello-java-swing/m4/TestAWT.java cmp -s $(srcdir)/gettext-tools/examples/hello-java-awt/m4/TestAWT.class $(srcdir)/gettext-tools/examples/hello-java-swing/m4/TestAWT.class test "`sed 1,15d $(srcdir)/gnulib-local/lib/alloca.in.h | md5sum`" = "`sed 1,15d $(srcdir)/gettext-runtime/libasprintf/alloca.in.h | md5sum`" diff --git a/PACKAGING b/PACKAGING index a8ce979f9..52b80ac7e 100644 --- a/PACKAGING +++ b/PACKAGING @@ -42,7 +42,7 @@ The 'libtextstyle' binary package can be installed by doing The 'gettext-tools' binary package can be installed by doing cd gettext-tools - ./configure + ./configure --with-installed-libtextstyle make make install diff --git a/autogen.sh b/autogen.sh index 2415b5547..f03a446d5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -273,6 +273,7 @@ if ! $skip_gnulib; then $GNULIB_TOOL --dir=gettext-tools --lib=libgettextlib --source-base=gnulib-lib --m4-base=gnulib-m4 --tests-base=gnulib-tests --makefile-name=Makefile.gnulib --libtool --with-tests --local-dir=gnulib-local --local-symlink \ --import --avoid=array-list-tests --avoid=linkedhash-list-tests --avoid=hash-tests --avoid=fdutimensat-tests --avoid=futimens-tests --avoid=utime-tests --avoid=utimens-tests --avoid=utimensat-tests \ `for m in $GNULIB_MODULES_TOOLS_LIBUNISTRING_TESTS; do echo --avoid=$m; done` $GNULIB_MODULES_TOOLS_FOR_SRC $GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES $GNULIB_MODULES_TOOLS_OTHER || exit $? + $GNULIB_TOOL --copy-file m4/libtextstyle.m4 gettext-tools/gnulib-m4/libtextstyle.m4 || exit $? # In gettext-tools/libgrep: GNULIB_MODULES_TOOLS_FOR_LIBGREP=' mbrlen diff --git a/configure.ac b/configure.ac index 38db6fd3f..0c84bdd72 100644 --- a/configure.ac +++ b/configure.ac @@ -49,7 +49,7 @@ AC_CANONICAL_HOST dnl Optional Features: AC_ARG_ENABLE calls dnl Optional Packages: AC_ARG_WITH calls dnl Some influential environment variables: AC_ARG_VAR calls -esyscmd([{ cd gettext-runtime && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; cd libtextstyle && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; cd gettext-tools && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; } | sed -f build-aux/ac-help.sed ]) +esyscmd([{ cd gettext-runtime && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; cd libtextstyle && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; { cd gettext-tools && autoconf --trace=AC_ARG_ENABLE:'$n([$1],[$2])' --trace=AC_ARG_WITH:'$n([$1],[$2])' --trace=AC_ARG_VAR:'$n($@)' && cd ..; } | grep -v installed.libtextstyle; } | sed -f build-aux/ac-help.sed ]) AC_CONFIG_FILES([Makefile]) diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac index c512480a7..104b067ba 100644 --- a/gettext-tools/configure.ac +++ b/gettext-tools/configure.ac @@ -131,6 +131,22 @@ AM_CONDITIONAL([PACKAGE_IS_GETTEXT_TOOLS], [true]) AM_CONDITIONAL([PRELOADABLE_LIBINTL], [test $USE_INCLUDED_LIBINTL = no && test $GLIBC2 = yes && test "$enable_shared" = yes]) +dnl This option allows to build gettext-tools without (re)building libtextstyle. +AC_ARG_WITH([installed-libtextstyle], + [AS_HELP_STRING([--with-installed-libtextstyle], + [Use an already installed libtextstyle.])], + [gt_use_installed_libtextstyle=$withval], + [gt_use_installed_libtextstyle=no]) +if test "$gt_use_installed_libtextstyle" != no; then + gl_LIBTEXTSTYLE +else + test -f ../libtextstyle/Makefile || { + AC_MSG_ERROR([When building the gettext-tools package without building the entire gettext package, you need to pass the --with-installed-libtextstyle option to configure.]) + } +fi +AM_CONDITIONAL([USE_INSTALLED_LIBTEXTSTYLE], + [test "$gt_use_installed_libtextstyle" != no]) + dnl This line internationalizes the bison generated parsers. BISON_I18N diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am index b98b7abd3..af3dcee15 100644 --- a/gettext-tools/src/Makefile.am +++ b/gettext-tools/src/Makefile.am @@ -250,6 +250,9 @@ cldr_plurals_SOURCES = cldr-plural.y cldr-plural-exp.c cldr-plurals.c cldr_plurals_CFLAGS = $(AM_CFLAGS) $(INCXML) cldr_plurals_LDADD = libgettextsrc.la $(LDADD) +if USE_INSTALLED_LIBTEXTSTYLE +LT_LIBTEXTSTYLE = @LTLIBTEXTSTYLE@ +else # How to get the include files of libtextstyle. textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h: here=`pwd`; \ @@ -257,6 +260,9 @@ textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h: $(MAKE) install-nobase_includeHEADERS install-nobase_nodist_includeHEADERS includedir="$$here" BUILT_SOURCES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h MOSTLYCLEANFILES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h +# Where to find the built libtextstyle library. +LT_LIBTEXTSTYLE = ../../libtextstyle/lib/libtextstyle.la +endif # How to build libgettextsrc.la. # Need ../gnulib-lib/libgettextlib.la. @@ -268,7 +274,7 @@ MOSTLYCLEANFILES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyl # use iconv(). libgettextsrc_la_LDFLAGS = \ -release @VERSION@ \ - ../gnulib-lib/libgettextlib.la $(LTLIBUNISTRING) ../../libtextstyle/lib/libtextstyle.la @LTLIBINTL@ @LTLIBICONV@ -lc -no-undefined + ../gnulib-lib/libgettextlib.la $(LTLIBUNISTRING) $(LT_LIBTEXTSTYLE) @LTLIBINTL@ @LTLIBICONV@ -lc -no-undefined # OS/2 does not support a DLL name longer than 8 characters. if OS2