mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-09 11:28:25 +00:00
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/1.8@416869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -11,25 +11,23 @@ AC_DEFUN([AST_EXT_TOOL_CHECK],
|
|||||||
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)
|
||||||
|
$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
|
if test x"$4" = x ; then A=--libs ; else A="$4" ; fi
|
||||||
$1_LIB=$(${CONFIG_$1} $A)
|
$1_LIB=$(${CONFIG_$1} $A)
|
||||||
|
$1_LIB=$(echo ${$1_LIB} | $SED -e "s|-L|-L${$1_DIR}|g")
|
||||||
|
|
||||||
if test x"$5" != x ; then
|
if test x"$5" != x ; then
|
||||||
saved_cppflags="${CPPFLAGS}"
|
saved_cppflags="${CPPFLAGS}"
|
||||||
if test "x${$1_DIR}" != "x"; then
|
|
||||||
$1_INCLUDE="-I${$1_DIR}/include"
|
|
||||||
fi
|
|
||||||
CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
|
CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
|
||||||
|
|
||||||
saved_libs="${LIBS}"
|
saved_libs="${LIBS}"
|
||||||
LIBS="${$1_LIB}"
|
LIBS=${$1_LIB}
|
||||||
|
|
||||||
AC_LINK_IFELSE(
|
AC_LINK_IFELSE(
|
||||||
[ AC_LANG_PROGRAM( [ $5 ],
|
[ AC_LANG_PROGRAM( [ $5 ], [ $6; ])],
|
||||||
[ $6; ]
|
[ PBX_$1=1 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}"
|
||||||
|
|||||||
Reference in New Issue
Block a user