diff options
author | George Joseph <george.joseph@fairview5.com> | 2014-06-20 21:59:08 +0000 |
---|---|---|
committer | George Joseph <george.joseph@fairview5.com> | 2014-06-20 21:59:08 +0000 |
commit | 988eb0f82f9d18a470e969f9d42e3253c4d7c2c9 (patch) | |
tree | 59072cc458760c8ef777b075682a26c6669412e2 | |
parent | a8cb4924cbbb8b2a8dce2ee7b998c50eb7442ed2 (diff) |
build: Allow autoconf/ast_ext_tool_check to handle cross-compiling better.
ast_ext_tool_check.m4 isn't handling cases where a path to a package is
provided (E.G. --with-mysqlclient=/some/sysroot) and the package has a config
tool (E.G. mysql_config) and the package has its own subdirectories in include
or lib. For example, mysql's libraries are in ${MYSQLCLIENT_DIR}/usr/lib/mysql
but ast_ext_tool_check sets MYSQLCLIENT_LIB to ${MYSQLCLIENT_DIR}/usr/lib.
libxml2 has the same problem with its includes. They're in
${LIBXML2_DIR}/usr/include/libxml2 not directly in ${LIBXML2_DIR}/usr/include.
Both cause configure to fail and there are others in the same boat.
The problem is caused by logic in ast_ext_tool_check that overrides the result
of the config tool's --cflags and --libs options if package_DIR is set.
This patch prepends package_DIR (if specified) to the -L and -I results from
the package's config tool instead of overriding them.
Tested by: George Joseph
Tested by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3550/
........
Merged revisions 416870 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 416871 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@416872 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | autoconf/ast_ext_tool_check.m4 | 62 |
1 files changed, 30 insertions, 32 deletions
diff --git a/autoconf/ast_ext_tool_check.m4 b/autoconf/ast_ext_tool_check.m4 index 16e95c49f..da256c74b 100644 --- a/autoconf/ast_ext_tool_check.m4 +++ b/autoconf/ast_ext_tool_check.m4 @@ -5,39 +5,37 @@ # AST_EXT_TOOL_CHECK([package], [tool name], [--cflags], [--libs], [includes], [expression]) AC_DEFUN([AST_EXT_TOOL_CHECK], [ - if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then - PBX_$1=0 - AC_PATH_TOOL(CONFIG_$1, $2, No, [${$1_DIR}/bin:$PATH]) - if test ! "x${CONFIG_$1}" = xNo; then - if test x"$3" = x ; then A=--cflags ; else A="$3" ; fi - $1_INCLUDE=$(${CONFIG_$1} $A) - if test x"$4" = x ; then A=--libs ; else A="$4" ; fi - $1_LIB=$(${CONFIG_$1} $A) - if test x"$5" != x ; then - saved_cppflags="${CPPFLAGS}" - if test "x${$1_DIR}" != "x"; then - $1_INCLUDE="-I${$1_DIR}/include" - fi - CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}" + if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then + PBX_$1=0 + AC_PATH_TOOL(CONFIG_$1, $2, No, [${$1_DIR}/bin:$PATH]) + if test ! "x${CONFIG_$1}" = xNo; then + if test x"$3" = x ; then A=--cflags ; else A="$3" ; fi + $1_INCLUDE=$(${CONFIG_$1} $A) + $1_INCLUDE=$(echo ${$1_INCLUDE} | $SED -e "s|-I|-I${$1_DIR}|g") + + if test x"$4" = x ; then A=--libs ; else A="$4" ; fi + $1_LIB=$(${CONFIG_$1} $A) + $1_LIB=$(echo ${$1_LIB} | $SED -e "s|-L|-L${$1_DIR}|g") - saved_libs="${LIBS}" - LIBS="${$1_LIB}" + if test x"$5" != x ; then + saved_cppflags="${CPPFLAGS}" + CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}" - AC_LINK_IFELSE( - [ AC_LANG_PROGRAM( [ $5 ], - [ $6; ] - )], - [ PBX_$1=1 - AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 headers.]) - ], - [] - ) - CPPFLAGS="${saved_cppflags}" - LIBS="${saved_libs}" - else - PBX_$1=1 - AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 libraries.]) - fi + saved_libs="${LIBS}" + LIBS=${$1_LIB} + + AC_LINK_IFELSE( + [ AC_LANG_PROGRAM( [ $5 ], [ $6; ])], + [ PBX_$1=1 AC_DEFINE([HAVE_$1], 1, + [Define if your system has the $1 headers.])], + [] + ) + CPPFLAGS="${saved_cppflags}" + LIBS="${saved_libs}" + else + PBX_$1=1 + AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 libraries.]) + fi + fi fi - fi ]) |