| From 6aa1338b916fe72c200b6f160b934be15b6ff590 Mon Sep 17 00:00:00 2001 |
| From: Ross Burton <ross.burton@intel.com> |
| Date: Tue, 23 Jan 2018 00:54:13 +0000 |
| Subject: [PATCH] gettext: beat library detection into shape |
| |
| For reasons which I just can't fathom gnulib doesn't use the expected tools to |
| find libraries but badly reinvents the wheel. This will trivially lead to host |
| contamination (explicit searches of /usr/lib) or incorrect RPATHs (bad |
| canonicalisation resulting in relative paths). |
| |
| Simply delete all the crazy, and replace with a single call to pkg-config. |
| |
| Upstream-Status: Inappropriate [upstream still refuse to consider pkg-config] |
| Signed-off-by: Ross Burton <ross.burton@intel.com> |
| --- |
| gettext-tools/gnulib-m4/libxml.m4 | 105 ++--------------------- |
| libtextstyle/gnulib-local/m4/libglib.m4 | 106 +++--------------------- |
| libtextstyle/gnulib-m4/libglib.m4 | 106 +++--------------------- |
| 3 files changed, 31 insertions(+), 286 deletions(-) |
| |
| diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4 |
| index 0340490..0355388 100644 |
| --- a/gettext-tools/gnulib-m4/libxml.m4 |
| +++ b/gettext-tools/gnulib-m4/libxml.m4 |
| @@ -13,6 +13,7 @@ dnl gl_LIBXML(FORCE-INCLUDED) |
| dnl forces the use of the included or an external libxml. |
| AC_DEFUN([gl_LIBXML], |
| [ |
| + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
| AC_REQUIRE([AM_ICONV_LINK]) |
| |
| ifelse([$1], , [ |
| @@ -30,106 +31,10 @@ AC_DEFUN([gl_LIBXML], |
| INCXML= |
| ifelse([$1], [yes], , [ |
| if test "$gl_cv_libxml_use_included" != yes; then |
| - dnl Figure out whether we can use a preinstalled libxml2, or have to use |
| - dnl the included one. |
| - AC_CACHE_VAL([gl_cv_libxml], [ |
| - gl_cv_libxml=no |
| - gl_cv_LIBXML= |
| - gl_cv_LTLIBXML= |
| - gl_cv_INCXML= |
| - gl_save_LIBS="$LIBS" |
| - LIBS="$LIBS $LIBICONV" |
| - dnl Search for libxml2 and define LIBXML2, LTLIBXML2 and INCXML2 |
| - dnl accordingly. |
| - dnl Don't use xml2-config nor pkg-config, since it doesn't work when |
| - dnl cross-compiling or when the C compiler in use is different from the |
| - dnl one that built the library. |
| - dnl Use a test program that tries to invoke xmlFree. On Cygwin 1.7.x, |
| - dnl libxml2 is built in such a way that uses of xmlFree work fine with |
| - dnl -Wl,--enable-auto-import but lead to a link error with |
| - dnl -Wl,--disable-auto-import. |
| - AC_LIB_LINKFLAGS_BODY([xml2]) |
| - LIBS="$gl_save_LIBS $LIBXML2 $LIBICONV" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <libxml/xmlversion.h> |
| - #include <libxml/xmlmemory.h> |
| - #include <libxml/xpath.h> |
| - ]], |
| - [[xmlCheckVersion (0); |
| - xmlFree ((void *) 0); |
| - xmlXPathSetContextNode ((void *)0, (void *)0); |
| - ]])], |
| - [gl_cv_libxml=yes |
| - gl_cv_LIBXML="$LIBXML2 $LIBICONV" |
| - gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" |
| - ]) |
| - if test "$gl_cv_libxml" != yes; then |
| - gl_save_CPPFLAGS="$CPPFLAGS" |
| - CPPFLAGS="$CPPFLAGS $INCXML2" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <libxml/xmlversion.h> |
| - #include <libxml/xmlmemory.h> |
| - #include <libxml/xpath.h> |
| - ]], |
| - [[xmlCheckVersion (0); |
| - xmlFree ((void *) 0); |
| - xmlXPathSetContextNode ((void *)0, (void *)0); |
| - ]])], |
| - [gl_cv_libxml=yes |
| - gl_cv_LIBXML="$LIBXML2 $LIBICONV" |
| - gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" |
| - gl_cv_INCXML="$INCXML2" |
| - ]) |
| - if test "$gl_cv_libxml" != yes; then |
| - dnl Often the include files are installed in /usr/include/libxml2. |
| - dnl In libxml2-2.5, <libxml/xmlversion.h> is self-contained. |
| - dnl In libxml2-2.6, it includes <libxml/xmlexports.h> which is |
| - dnl self-contained. |
| - libxml2_include_dir= |
| - AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <libxml2/libxml/xmlexports.h>]])], |
| - [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlexports.h]) |
| - libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlexports_h" | sed -e 's,.libxml.xmlexports\.h$,,'` |
| - ]) |
| - if test -z "$libxml2_include_dir"; then |
| - AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <libxml2/libxml/xmlversion.h>]])], |
| - [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlversion.h]) |
| - libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlversion_h" | sed -e 's,.libxml.xmlversion\.h$,,'` |
| - ]) |
| - fi |
| - if test -n "$libxml2_include_dir" && test -d "$libxml2_include_dir"; then |
| - CPPFLAGS="$gl_save_CPPFLAGS -I$libxml2_include_dir" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <libxml/xmlversion.h> |
| - #include <libxml/xmlmemory.h> |
| - #include <libxml/xpath.h> |
| - ]], |
| - [[xmlCheckVersion (0); |
| - xmlFree ((void *) 0); |
| - xmlXPathSetContextNode ((void *)0, (void *)0); |
| - ]])], |
| - [gl_cv_libxml=yes |
| - gl_cv_LIBXML="$LIBXML2 $LIBICONV" |
| - gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" |
| - gl_cv_INCXML="-I$libxml2_include_dir" |
| - ]) |
| - fi |
| - fi |
| - CPPFLAGS="$gl_save_CPPFLAGS" |
| - fi |
| - LIBS="$gl_save_LIBS" |
| - ]) |
| - AC_MSG_CHECKING([for libxml]) |
| - AC_MSG_RESULT([$gl_cv_libxml]) |
| - if test $gl_cv_libxml = yes; then |
| - LIBXML="$gl_cv_LIBXML" |
| - LTLIBXML="$gl_cv_LTLIBXML" |
| - INCXML="$gl_cv_INCXML" |
| - else |
| - gl_cv_libxml_use_included=yes |
| - fi |
| + PKG_CHECK_MODULES([XML], [libxml-2.0]) |
| + LIBXML=$XML_LIBS |
| + LTLIBXML=$XML_LIBS |
| + INCXML=$XML_CFLAGS |
| fi |
| ]) |
| AC_SUBST([LIBXML]) |
| diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4 |
| index dbc9eb8..136e512 100644 |
| --- a/libtextstyle/gnulib-local/m4/libglib.m4 |
| +++ b/libtextstyle/gnulib-local/m4/libglib.m4 |
| @@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved. |
| |
| dnl From Bruno Haible. |
| |
| -dnl gl_LIBGLIB |
| -dnl gives the user the option to decide whether to use the included or |
| -dnl an external libglib. |
| -dnl gl_LIBGLIB(FORCE-INCLUDED) |
| -dnl forces the use of the included or an external libglib. |
| AC_DEFUN([gl_LIBGLIB], |
| [ |
| - ifelse([$1], , [ |
| - AC_MSG_CHECKING([whether included glib is requested]) |
| - AC_ARG_WITH([included-glib], |
| - [ --with-included-glib use the glib2 included here], |
| - [gl_cv_libglib_force_included=$withval], |
| - [gl_cv_libglib_force_included=no]) |
| - AC_MSG_RESULT([$gl_cv_libglib_force_included]) |
| - ], [gl_cv_libglib_force_included=$1]) |
| + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
| + AC_MSG_CHECKING([whether included glib is requested]) |
| + AC_ARG_WITH([included-glib], |
| + [ --with-included-glib use the glib2 included here], |
| + [gl_cv_libglib_force_included=$withval], |
| + [gl_cv_libglib_force_included=no]) |
| + AC_MSG_RESULT([$gl_cv_libglib_force_included]) |
| |
| gl_cv_libglib_use_included="$gl_cv_libglib_force_included" |
| LIBGLIB= |
| LTLIBGLIB= |
| INCGLIB= |
| - ifelse([$1], [yes], , [ |
| - if test "$gl_cv_libglib_use_included" != yes; then |
| - dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use |
| - dnl the included one. |
| - AC_CACHE_VAL([gl_cv_libglib], [ |
| - gl_cv_libglib=no |
| - gl_cv_LIBGLIB= |
| - gl_cv_LTLIBGLIB= |
| - gl_cv_INCGLIB= |
| - gl_save_LIBS="$LIBS" |
| - dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and |
| - dnl INCGLIB_2_0 accordingly. |
| - dnl Don't use glib-config nor pkg-config, since it doesn't work when |
| - dnl cross-compiling or when the C compiler in use is different from the |
| - dnl one that built the library. |
| - AC_LIB_LINKFLAGS_BODY([glib-2.0]) |
| - LIBS="$gl_save_LIBS $LIBGLIB_2_0" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <glib.h> |
| - #ifndef G_BEGIN_DECLS |
| - error this glib.h includes a glibconfig.h from a glib version 1.x |
| - #endif |
| - ]], |
| - [[g_string_new ("foo");]])], |
| - [gl_cv_libglib=yes |
| - gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| - gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| - ]) |
| - if test "$gl_cv_libglib" != yes; then |
| - gl_save_CPPFLAGS="$CPPFLAGS" |
| - CPPFLAGS="$CPPFLAGS $INCGLIB_2_0" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <glib.h> |
| - #ifndef G_BEGIN_DECLS |
| - error this glib.h includes a glibconfig.h from a glib version 1.x |
| - #endif |
| - ]], |
| - [[g_string_new ("foo");]])], |
| - [gl_cv_libglib=yes |
| - gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| - gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| - gl_cv_INCGLIB="$INCGLIB_2_0" |
| - ]) |
| - if test "$gl_cv_libglib" != yes; then |
| - dnl Often the include files are installed in /usr/include/glib-2.0 |
| - dnl and /usr/lib/glib-2.0/include. |
| - if test -n "$LIBGLIB_2_0_PREFIX"; then |
| - CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <glib.h> |
| - #ifndef G_BEGIN_DECLS |
| - error this glib.h includes a glibconfig.h from a glib version 1.x |
| - #endif |
| - ]], |
| - [[g_string_new ("foo");]])], |
| - [gl_cv_libglib=yes |
| - gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| - gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| - gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" |
| - ]) |
| - fi |
| - fi |
| - CPPFLAGS="$gl_save_CPPFLAGS" |
| - fi |
| - LIBS="$gl_save_LIBS" |
| - ]) |
| - AC_MSG_CHECKING([for glib]) |
| - AC_MSG_RESULT([$gl_cv_libglib]) |
| - if test $gl_cv_libglib = yes; then |
| - LIBGLIB="$gl_cv_LIBGLIB" |
| - LTLIBGLIB="$gl_cv_LTLIBGLIB" |
| - INCGLIB="$gl_cv_INCGLIB" |
| - else |
| - gl_cv_libglib_use_included=yes |
| - fi |
| - fi |
| - ]) |
| + if test "$gl_cv_libglib_use_included" != yes; then |
| + PKG_CHECK_MODULES([GLIB], [glib-2.0]) |
| + LIBGLIB="$GLIB_LIBS" |
| + LTLIBGLIB="$GLIB_LIBS" |
| + INCGLIB="$GLIB_CFLAGS" |
| + fi |
| AC_SUBST([LIBGLIB]) |
| AC_SUBST([LTLIBGLIB]) |
| AC_SUBST([INCGLIB]) |
| diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4 |
| index dbc9eb8..136e512 100644 |
| --- a/libtextstyle/gnulib-m4/libglib.m4 |
| +++ b/libtextstyle/gnulib-m4/libglib.m4 |
| @@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved. |
| |
| dnl From Bruno Haible. |
| |
| -dnl gl_LIBGLIB |
| -dnl gives the user the option to decide whether to use the included or |
| -dnl an external libglib. |
| -dnl gl_LIBGLIB(FORCE-INCLUDED) |
| -dnl forces the use of the included or an external libglib. |
| AC_DEFUN([gl_LIBGLIB], |
| [ |
| - ifelse([$1], , [ |
| - AC_MSG_CHECKING([whether included glib is requested]) |
| - AC_ARG_WITH([included-glib], |
| - [ --with-included-glib use the glib2 included here], |
| - [gl_cv_libglib_force_included=$withval], |
| - [gl_cv_libglib_force_included=no]) |
| - AC_MSG_RESULT([$gl_cv_libglib_force_included]) |
| - ], [gl_cv_libglib_force_included=$1]) |
| + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
| + AC_MSG_CHECKING([whether included glib is requested]) |
| + AC_ARG_WITH([included-glib], |
| + [ --with-included-glib use the glib2 included here], |
| + [gl_cv_libglib_force_included=$withval], |
| + [gl_cv_libglib_force_included=no]) |
| + AC_MSG_RESULT([$gl_cv_libglib_force_included]) |
| |
| gl_cv_libglib_use_included="$gl_cv_libglib_force_included" |
| LIBGLIB= |
| LTLIBGLIB= |
| INCGLIB= |
| - ifelse([$1], [yes], , [ |
| - if test "$gl_cv_libglib_use_included" != yes; then |
| - dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use |
| - dnl the included one. |
| - AC_CACHE_VAL([gl_cv_libglib], [ |
| - gl_cv_libglib=no |
| - gl_cv_LIBGLIB= |
| - gl_cv_LTLIBGLIB= |
| - gl_cv_INCGLIB= |
| - gl_save_LIBS="$LIBS" |
| - dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and |
| - dnl INCGLIB_2_0 accordingly. |
| - dnl Don't use glib-config nor pkg-config, since it doesn't work when |
| - dnl cross-compiling or when the C compiler in use is different from the |
| - dnl one that built the library. |
| - AC_LIB_LINKFLAGS_BODY([glib-2.0]) |
| - LIBS="$gl_save_LIBS $LIBGLIB_2_0" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <glib.h> |
| - #ifndef G_BEGIN_DECLS |
| - error this glib.h includes a glibconfig.h from a glib version 1.x |
| - #endif |
| - ]], |
| - [[g_string_new ("foo");]])], |
| - [gl_cv_libglib=yes |
| - gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| - gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| - ]) |
| - if test "$gl_cv_libglib" != yes; then |
| - gl_save_CPPFLAGS="$CPPFLAGS" |
| - CPPFLAGS="$CPPFLAGS $INCGLIB_2_0" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <glib.h> |
| - #ifndef G_BEGIN_DECLS |
| - error this glib.h includes a glibconfig.h from a glib version 1.x |
| - #endif |
| - ]], |
| - [[g_string_new ("foo");]])], |
| - [gl_cv_libglib=yes |
| - gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| - gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| - gl_cv_INCGLIB="$INCGLIB_2_0" |
| - ]) |
| - if test "$gl_cv_libglib" != yes; then |
| - dnl Often the include files are installed in /usr/include/glib-2.0 |
| - dnl and /usr/lib/glib-2.0/include. |
| - if test -n "$LIBGLIB_2_0_PREFIX"; then |
| - CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" |
| - AC_LINK_IFELSE( |
| - [AC_LANG_PROGRAM( |
| - [[#include <glib.h> |
| - #ifndef G_BEGIN_DECLS |
| - error this glib.h includes a glibconfig.h from a glib version 1.x |
| - #endif |
| - ]], |
| - [[g_string_new ("foo");]])], |
| - [gl_cv_libglib=yes |
| - gl_cv_LIBGLIB="$LIBGLIB_2_0" |
| - gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" |
| - gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" |
| - ]) |
| - fi |
| - fi |
| - CPPFLAGS="$gl_save_CPPFLAGS" |
| - fi |
| - LIBS="$gl_save_LIBS" |
| - ]) |
| - AC_MSG_CHECKING([for glib]) |
| - AC_MSG_RESULT([$gl_cv_libglib]) |
| - if test $gl_cv_libglib = yes; then |
| - LIBGLIB="$gl_cv_LIBGLIB" |
| - LTLIBGLIB="$gl_cv_LTLIBGLIB" |
| - INCGLIB="$gl_cv_INCGLIB" |
| - else |
| - gl_cv_libglib_use_included=yes |
| - fi |
| - fi |
| - ]) |
| + if test "$gl_cv_libglib_use_included" != yes; then |
| + PKG_CHECK_MODULES([GLIB], [glib-2.0]) |
| + LIBGLIB="$GLIB_LIBS" |
| + LTLIBGLIB="$GLIB_LIBS" |
| + INCGLIB="$GLIB_CFLAGS" |
| + fi |
| AC_SUBST([LIBGLIB]) |
| AC_SUBST([LTLIBGLIB]) |
| AC_SUBST([INCGLIB]) |