blob: f6f8884badf7926c16e756612547805fcf2f99e5 [file] [log] [blame]
dnl check to see if SWIG is current enough.
dnl
dnl if it is, then check to see if we have the correct version of python.
dnl
dnl if we do, then set up the appropriate SWIG_ variables to build the
dnl python bindings.
AC_DEFUN(SVN_CHECK_SWIG,
[
AC_ARG_WITH(swig,
AC_HELP_STRING([--with-swig=PATH],
[Try to use 'PATH/bin/swig' to build the
swig bindings. If PATH is not specified,
look for a 'swig' binary in your PATH.]),
[
case "$withval" in
"no")
SWIG_SUITABLE=no
;;
"yes")
SVN_FIND_SWIG(check)
;;
*)
SVN_FIND_SWIG($withval)
;;
esac
],
[
SVN_FIND_SWIG(check)
])
])
AC_DEFUN(SVN_FIND_SWIG,
[
where=$1
if test $where = check; then
AC_PATH_PROG(SWIG, swig, none)
else
SWIG=$where/bin/swig
fi
if test "$SWIG" != "none"; then
AC_MSG_CHECKING([swig version])
SWIG_VERSION="`$SWIG -version 2>&1 | sed -ne 's/^.*Version \(.*\)$/\1/p'`"
AC_MSG_RESULT([$SWIG_VERSION])
# If you change the required swig version number, don't forget to update:
# subversion/bindings/swig/INSTALL
# subversion/bindings/swig/README
# packages/rpm/mandrake-9.0/subversion.spec
# packages/rpm/redhat-7.x/subversion.spec
# packages/rpm/redhat-8.x/subversion.spec
case $SWIG_VERSION in
[1.3.1[67]*])
SWIG_SUITABLE=yes
;;
*)
SWIG_SUITABLE=no
AC_MSG_WARN([swig bindings require 1.3.16.])
;;
esac
if test "$PYTHON" != "none" -a "$SWIG_SUITABLE" = "yes"; then
### TODO: When it's ready, add the swig-java-lib rule here.
SWIG_BUILD_RULES="$SWIG_BUILD_RULES swig-py-lib"
SWIG_INSTALL_RULES="$SWIG_INSTALL_RULES install-swig-py-lib"
AC_CACHE_CHECK([for swig library directory], [ac_cv_swig_swiglib_dir],[
ac_cv_swig_swiglib_dir="`$SWIG -swiglib`"
])
SWIG_LIBSWIG_DIR="$ac_cv_swig_swiglib_dir"
AC_CACHE_CHECK([if swig needs -L for its libraries],
[ac_cv_swig_ldflags],[
# The swig libraries are one directory above the
# `swig -swiglib` directory.
ac_cv_swig_ldflags=""
swig_lib_dir="`dirname $ac_cv_swig_swiglib_dir`"
if test "$swig_lib_dir" &&
test "$swig_lib_dir" != "/lib" &&
test "$swig_lib_dir" != "/usr/lib"; then
ac_cv_swig_ldflags="-L$swig_lib_dir"
fi
])
SWIG_LDFLAGS="$ac_cv_swig_ldflags"
AC_CACHE_CHECK([for swig python setup.py link time flags],
[ac_cv_setup_py_ldflags],[
# Take LDFLAGS and SWIG_LDFLAGS create flags appropriate for
# passing to setup.py.
flags=""
if test "$SWIG_LDFLAGS" || test "$LDFLAGS"; then
for flag in $SWIG_LDFLAGS $LDFLAGS; do
case "$flag" in
-L*)
flags="$flags $flag"
;;
*)
flags="$flags -R $flag"
;;
esac
done
fi
ac_cv_setup_py_ldflags="$flags"
])
SWIG_PY_SETUP_LDFLAGS="$ac_cv_setup_py_ldflags"
AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
ac_cv_python_includes="`$PYTHON ${abs_srcdir}/ac-helpers/get-py-info.py --includes`"
])
SWIG_PY_INCLUDES="$ac_cv_python_includes"
AC_CACHE_CHECK([for compiling Python extensions], [ac_cv_python_compile],[
ac_cv_python_compile="`$PYTHON ${abs_srcdir}/ac-helpers/get-py-info.py --compile`"
])
SWIG_PY_COMPILE="$ac_cv_python_compile"
AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[
ac_cv_python_link="`$PYTHON ${abs_srcdir}/ac-helpers/get-py-info.py --link`"
])
SWIG_PY_LINK="$ac_cv_python_link"
fi
if test "$JDK" != "none" -a "$SWIG_SUITABLE" = "yes"; then
list="`find "$JDK/include" -type d -print`"
for dir in $list; do
SWIG_JAVA_INCLUDES="$SWIG_JAVA_INCLUDES -I$dir"
done
fi
fi
AC_SUBST(SWIG_BUILD_RULES)
AC_SUBST(SWIG_INSTALL_RULES)
AC_SUBST(SWIG_PY_INCLUDES)
AC_SUBST(SWIG_PY_COMPILE)
AC_SUBST(SWIG_PY_LINK)
AC_SUBST(SWIG_PY_SETUP_LDFLAGS)
AC_SUBST(SWIG_JAVA_INCLUDES)
AC_SUBST(SWIG_LIBSWIG_DIR)
AC_SUBST(SWIG_LDFLAGS)
])