Skip to content
Snippets Groups Projects
Commit a6ba838f authored by George Joseph's avatar George Joseph
Browse files

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/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@416870 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent b583f708
No related branches found
No related tags found
No related merge requests found
...@@ -5,39 +5,37 @@ ...@@ -5,39 +5,37 @@
# AST_EXT_TOOL_CHECK([package], [tool name], [--cflags], [--libs], [includes], [expression]) # AST_EXT_TOOL_CHECK([package], [tool name], [--cflags], [--libs], [includes], [expression])
AC_DEFUN([AST_EXT_TOOL_CHECK], AC_DEFUN([AST_EXT_TOOL_CHECK],
[ [
if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then if test "x${PBX_$1}" != "x1" -a "${USE_$1}" != "no"; then
PBX_$1=0 PBX_$1=0
AC_PATH_TOOL(CONFIG_$1, $2, No, [${$1_DIR}/bin:$PATH]) AC_PATH_TOOL(CONFIG_$1, $2, No, [${$1_DIR}/bin:$PATH])
if test ! "x${CONFIG_$1}" = xNo; then if test ! "x${CONFIG_$1}" = xNo; then
if test x"$3" = x ; then A=--cflags ; else A="$3" ; fi if test x"$3" = x ; then A=--cflags ; else A="$3" ; fi
$1_INCLUDE=$(${CONFIG_$1} $A) $1_INCLUDE=$(${CONFIG_$1} $A)
if test x"$4" = x ; then A=--libs ; else A="$4" ; fi $1_INCLUDE=$(echo ${$1_INCLUDE} | $SED -e "s|-I|-I${$1_DIR}|g")
$1_LIB=$(${CONFIG_$1} $A)
if test x"$5" != x ; then if test x"$4" = x ; then A=--libs ; else A="$4" ; fi
saved_cppflags="${CPPFLAGS}" $1_LIB=$(${CONFIG_$1} $A)
if test "x${$1_DIR}" != "x"; then $1_LIB=$(echo ${$1_LIB} | $SED -e "s|-L|-L${$1_DIR}|g")
$1_INCLUDE="-I${$1_DIR}/include"
fi
CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
saved_libs="${LIBS}" if test x"$5" != x ; then
LIBS="${$1_LIB}" saved_cppflags="${CPPFLAGS}"
CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
AC_LINK_IFELSE( saved_libs="${LIBS}"
[ AC_LANG_PROGRAM( [ $5 ], LIBS=${$1_LIB}
[ $6; ]
)], AC_LINK_IFELSE(
[ PBX_$1=1 [ AC_LANG_PROGRAM( [ $5 ], [ $6; ])],
AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 headers.]) [ PBX_$1=1 AC_DEFINE([HAVE_$1], 1,
], [Define if your system has the $1 headers.])],
[] []
) )
CPPFLAGS="${saved_cppflags}" CPPFLAGS="${saved_cppflags}"
LIBS="${saved_libs}" LIBS="${saved_libs}"
else else
PBX_$1=1 PBX_$1=1
AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 libraries.]) AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 libraries.])
fi fi
fi
fi fi
fi
]) ])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment