- Overhaul ac_python_devel.m4 using extensively informations provided by the interpreter. Will try to send upstream if told to do so.

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@255 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
tchernobog 2006-01-29 15:33:32 +00:00
parent e45d40eaff
commit b2796c6c14
1 changed files with 37 additions and 33 deletions

View File

@ -5,6 +5,8 @@ dnl It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) output
dnl variables.
dnl It also exports $(PYTHON_EXTRA_LIBS) and $(PYTHON_EXTRA_LDFLAGS)
dnl for embedding Python in your code.
dnl If you want to use a particular version of Python, please set
dnl the PYTHON_VERSION variable.
dnl
dnl @category InstalledPackages
dnl @author Sebastian Huber <sebastian-huber@web.de>
@ -12,58 +14,60 @@ dnl @author Alan W. Irwin <irwin@beluga.phys.uvic.ca>
dnl @author Rafael Laboissiere <laboissiere@psy.mpg.de>
dnl @author Andrew Collier <colliera@nu.ac.za>
dnl @author Matteo Settenvini <matteo@member.fsf.org>
dnl @version 2006-01-13
dnl @version 2006-01-29
dnl @license GPLWithACException
AC_DEFUN([AC_PYTHON_DEVEL],[
#
# should allow for checking of python version here...
# Allow use of a custom python version
#
AC_REQUIRE([AM_PATH_PYTHON])
AC_ARG_VAR([PYTHON_VERSION],[The installed Python
version to link against, for example '2.3'])
AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
# Check for Python include path
AC_MSG_CHECKING([for Python include path])
python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do
python_path=`find $i -type f -name Python.h -print | sed "1q"`
if test -n "$python_path" ; then
break
fi
done
python_path=`echo $python_path | sed "s,/Python.h$,,"`
AC_MSG_RESULT([$python_path])
if test -z "$python_path" ; then
AC_MSG_ERROR([cannot find Python include path])
if test -z "$PYTHON"; then
AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
fi
#
# Check for Python include path
#
AC_MSG_CHECKING([for Python include path])
python_path=`$PYTHON -c "import distutils.sysconfig; \
print distutils.sysconfig.get_python_inc();"`
AC_MSG_RESULT([$python_path])
AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
# Check for Python library path
AC_MSG_CHECKING([for Python library path])
python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
if test -n "$python_path" ; then
break
fi
done
python_path=`echo $python_path | sed "s,/libpython.*$,,"`
AC_MSG_RESULT([$python_path])
if test -z "$python_path" ; then
AC_MSG_ERROR([cannot find Python library path])
fi
AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
#
python_site=`echo $python_path | sed "s/config/site-packages/"`
# Check for Python library path
#
AC_MSG_CHECKING([for Python library path])
python_path=`$PYTHON -c "from distutils.sysconfig import *; \
from string import join; \
print '-L' + get_python_lib(0,1), \
'-lpython' + join(get_config_vars('VERSION'));"`
AC_MSG_RESULT([$python_path])
AC_SUBST([PYTHON_LDFLAGS],[-I$python_path])
#
# Check for site packages
#
AC_MSG_CHECKING([for Python site-packages path])
python_site=`$PYTHON -c "import distutils.sysconfig; \
print distutils.sysconfig.get_python_lib(0,0);"`
AC_MSG_RESULT([$python_site])
AC_SUBST([PYTHON_SITE_PKG],[$python_site])
#
# libraries which must be linked in when embedding
#
AC_MSG_CHECKING(python extra libraries)
PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
conf = distutils.sysconfig.get_config_var; \
print conf('LOCALMODLIBS')+' '+conf('LIBS')"`
print conf('LOCALMODLIBS'), conf('LIBS')"`
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
AC_SUBST(PYTHON_EXTRA_LIBS)
#
# linking flags needed when embedding
#