From c3ca69575ea934247cd6b0ccfcb9b5dfd029d5a2 Mon Sep 17 00:00:00 2001 From: "Luis R. Rodriguez" Date: Thu, 12 Jun 2014 18:18:47 -0700 Subject: [PATCH] autoconf: update m4/pkg.m4 The provenance of the m4 pkg.m4 macro library was not documented and it was not clear how and if we can update this without breaking things. Document where this comes from, update us to the latest release from git and put a warning about avoiding private evolutions so that instead things go upstream. The pkg-config m4 macro library comes from the upstream pkg-config git repository [0]. If you update the m4 library update this file with provenance and last commit ID information. For documentation on how to use this read the pkg-config(1) man page. Tree: git://anongit.freedesktop.org/pkg-config The last synch was from commit: commit 4f0084d9d3b8726a797a373c7ec5e406000995d0 Author: Dan Nicholson Date: Mon Feb 3 15:59:18 2014 -0800 glib: Fix Makefiles to suppress warnings from automake With the newly added glib.mk, some of the noinst_* variables need to use += in the evaluation to avoid multiple definition warnings from automake. Cc: Ian Campbell Cc: Ian Jackson Cc: Jan Beulich Cc: Keir Fraser Cc: Tim Deegan Acked-by: Ian Campbell Signed-off-by: Luis R. Rodriguez [ ijc -- ran autogen.sh ] --- m4/README.source | 28 +++++++++++++++ m4/pkg.m4 | 88 ++++++++++++++++++++++++++++++++++++++++++++---- tools/configure | 45 +++++++++++++++++++++++-- 3 files changed, 153 insertions(+), 8 deletions(-) create mode 100644 m4/README.source diff --git a/m4/README.source b/m4/README.source new file mode 100644 index 0000000000..8922ea0ddf --- /dev/null +++ b/m4/README.source @@ -0,0 +1,28 @@ +About +===== +This documents the upstream sources for the different slew of different +m4 sources we have picked up or developed. + +pkg.m4 +====== +The pkg-config m4 macro library comes from the upstream pkg-config +git repository [0]. If you update the m4 library update this file +with provenance and last commit ID information. For documentation +on how to use this read the pkg-config(1) man page. + +Do not modify this file yourself, if you want to evolve it send +patches upstream and then synch back here. + +Tree: git://anongit.freedesktop.org/pkg-config + +The last synch was from commit: + +commit 4f0084d9d3b8726a797a373c7ec5e406000995d0 +Author: Dan Nicholson +Date: Mon Feb 3 15:59:18 2014 -0800 + + glib: Fix Makefiles to suppress warnings from automake + + With the newly added glib.mk, some of the noinst_* variables need to use + += in the evaluation to avoid multiple definition warnings from + automake. diff --git a/m4/pkg.m4 b/m4/pkg.m4 index 9bb3e068cf..62995f01f4 100644 --- a/m4/pkg.m4 +++ b/m4/pkg.m4 @@ -26,7 +26,8 @@ # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) @@ -72,7 +73,8 @@ m4_define([_PKG_CONFIG], pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried @@ -120,9 +122,9 @@ if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD @@ -135,7 +137,7 @@ $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -_PKG_TEXT])dnl +_PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) @@ -146,7 +148,7 @@ path to pkg-config. _PKG_TEXT -To get pkg-config, see .])dnl +To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS @@ -155,3 +157,77 @@ else $3 fi[]dnl ])# PKG_CHECK_MODULES + + +# PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------- +# Checks for existence of MODULES and gathers its build flags with +# static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +# and VARIABLE-PREFIX_LIBS from --libs. +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES_STATIC might not happen, you should be sure to include +# an explicit call to PKG_PROG_PKG_CONFIG in your configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +]) + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR diff --git a/tools/configure b/tools/configure index eebe745d8d..20f1aa93e5 100755 --- a/tools/configure +++ b/tools/configure @@ -3432,6 +3432,44 @@ esac # PKG_CHECK_MODULES +# PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------- +# Checks for existence of MODULES and gathers its build flags with +# static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +# and VARIABLE-PREFIX_LIBS from --libs. +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES_STATIC might not happen, you should be sure to include +# an explicit call to PKG_PROG_PKG_CONFIG in your configure.ac. + + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +# PKG_CHECK_VAR + + # We define, separately, PTHREAD_CFLAGS, _LDFLAGS and _LIBS # even though currently we don't set them very separately. @@ -7087,6 +7125,7 @@ fi + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -7215,6 +7254,7 @@ if test -n "$glib_CFLAGS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_glib_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.12" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -7231,6 +7271,7 @@ if test -n "$glib_LIBS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_glib_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.12" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -7250,9 +7291,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.12" 2>&1` + glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.12" 2>&1` else - glib_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.12" 2>&1` + glib_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.12" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$glib_PKG_ERRORS" >&5 -- 2.39.5