- Refine python macro before sending upstream

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@289 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
tchernobog 2006-02-05 12:44:42 +00:00
parent 07d76c3554
commit 8d90b660c4
2 changed files with 72 additions and 31 deletions

View File

@ -70,7 +70,7 @@ dnl make
AC_PROG_MAKE_SET AC_PROG_MAKE_SET
dnl check for python and SWIG dnl check for python and SWIG
AC_PYTHON_DEVEL AC_PYTHON_DEVEL([>= 2.4])
AC_PROG_SWIG AC_PROG_SWIG
SWIG_ENABLE_CXX SWIG_ENABLE_CXX
SWIG_PYTHON SWIG_PYTHON

View File

@ -1,15 +1,26 @@
dnl @synopsis AC_PYTHON_DEVEL dnl @synopsis AC_PYTHON_DEVEL([version])
dnl dnl
dnl Checks for Python and tries to get the include path to 'Python.h'. dnl Checks for Python and tries to get the include path to 'Python.h'.
dnl It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) output dnl It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) output
dnl variables. dnl variables.
dnl Also exports $(PYTHON_EXTRA_LIBS) and $(PYTHON_EXTRA_LDFLAGS) dnl Also exports $(PYTHON_EXTRA_LIBS) and $(PYTHON_EXTRA_LDFLAGS)
dnl for embedding Python in your code. dnl for embedding Python in your code.
dnl
dnl You can search for some particular version of Python by passing a
dnl parameter to this macro, for example '>= 2.3.1', or '== 2.4'.
dnl Please note that you *have* to pass also an operator along
dnl with the version number.
dnl
dnl If the user wants to employ a particular version of Python, she can dnl If the user wants to employ a particular version of Python, she can
dnl now pass to configure the PYTHON_VERSION environment variable. dnl now pass to configure the PYTHON_VERSION environment variable.
dnl Should work for all versions of Python >= 2.1.0. You can disable the dnl This is only limited by the macro parameter set by the packager.
dnl check for the python version by setting the PYTHON_NOVERSIONCHECK dnl
dnl environment variable. dnl This macro should work for all versions of Python >= 2.1.0. You can
dnl disable the check for the python version by setting the
dnl PYTHON_NOVERSIONCHECK environment variable.
dnl
dnl If you need to use this macro for an older Python version, please
dnl contact the authors. We're always open for feedback.
dnl dnl
dnl @category InstalledPackages dnl @category InstalledPackages
dnl @author Sebastian Huber <sebastian-huber@web.de> dnl @author Sebastian Huber <sebastian-huber@web.de>
@ -17,17 +28,17 @@ dnl @author Alan W. Irwin <irwin@beluga.phys.uvic.ca>
dnl @author Rafael Laboissiere <laboissiere@psy.mpg.de> dnl @author Rafael Laboissiere <laboissiere@psy.mpg.de>
dnl @author Andrew Collier <colliera@nu.ac.za> dnl @author Andrew Collier <colliera@nu.ac.za>
dnl @author Matteo Settenvini <matteo@member.fsf.org> dnl @author Matteo Settenvini <matteo@member.fsf.org>
dnl @version 2006-01-29 dnl @version 2006-02-05
dnl @license GPLWithACException dnl @license GPLWithACException
AC_DEFUN([AC_PYTHON_DEVEL],[ AC_DEFUN([AC_PYTHON_DEVEL],[
# #
# Allow use of a custom python version # Allow the use of a (user set) custom python version
# #
AC_ARG_VAR([PYTHON_VERSION],[The installed Python AC_ARG_VAR([PYTHON_VERSION],[The installed Python
version to link against, for example '2.3']) version to use, for example '2.3'])
AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
if test -z "$PYTHON"; then if test -z "$PYTHON"; then
AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path]) AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
fi fi
@ -37,7 +48,8 @@ AC_DEFUN([AC_PYTHON_DEVEL],[
# #
AC_MSG_CHECKING([for a version of Python >= 2.1.0]) AC_MSG_CHECKING([for a version of Python >= 2.1.0])
ac_supports_python_ver=`$PYTHON -c "import sys, string; \ ac_supports_python_ver=`$PYTHON -c "import sys, string; \
print string.split(sys.version)[[0]] >= '2.1.0'"` ver = string.split(sys.version)[[0]]; \
print ver >= '2.1.0'"`
if test "$ac_supports_python_ver" != "True"; then if test "$ac_supports_python_ver" != "True"; then
if test -z "$PYTHON_NOVERSIONCHECK"; then if test -z "$PYTHON_NOVERSIONCHECK"; then
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
@ -57,47 +69,74 @@ to something else than an empty string.
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
fi fi
#
# if the macro parameter ``version'' is set, honour it
#
if test -n "$1"; then
AC_MSG_CHECKING([for a version of Python $1])
ac_supports_python_ver=`$PYTHON -c "import sys, string; \
ver = string.split(sys.version)[[0]]; \
print ver $1"`
if test "$ac_supports_python_ver" = "True"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([this package requires Python $1.
If you have it installed, but it isn't the default Python
interpreter in your system path, please pass the PYTHON_VERSION
variable to configure. See ``configure --help'' for reference.
])dnl
fi
fi
# #
# Check for Python include path # Check for Python include path
# #
AC_MSG_CHECKING([for Python include path]) AC_MSG_CHECKING([for Python include path])
if test -z "$PYTHON_CPPFLAGS"; then
python_path=`$PYTHON -c "import distutils.sysconfig; \ python_path=`$PYTHON -c "import distutils.sysconfig; \
print distutils.sysconfig.get_python_inc();"` print distutils.sysconfig.get_python_inc();"`
AC_MSG_RESULT([$python_path]) if test -n "${python_path}"; then
if test -z "${python_path}"; then
AC_MSG_WARN([none. Please set PYTHON_CPPFLAGS by hand.])
else
python_path="-I$python_path" python_path="-I$python_path"
fi fi
AC_SUBST([PYTHON_CPPFLAGS],[$python_path]) PYTHON_CPPFLAGS=$python_path
fi
AC_MSG_RESULT([$PYTHON_CPPFLAGS])
AC_SUBST([PYTHON_CPPFLAGS])
# #
# Check for Python library path # Check for Python library path
# #
AC_MSG_CHECKING([for Python library path]) AC_MSG_CHECKING([for Python library path])
python_path=`$PYTHON -c "from distutils.sysconfig import *; \ if test -z "$PYTHON_LDFLAGS"; then
PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \
from string import join; \ from string import join; \
print '-L' + get_python_lib(0,1), \ print '-L' + get_python_lib(0,1), \
'-lpython' + join(get_config_vars('VERSION'));"` '-lpython' + join(get_config_vars('VERSION'));"`
AC_MSG_RESULT([$python_path]) fi
AC_SUBST([PYTHON_LDFLAGS],[-I$python_path]) AC_MSG_RESULT([$PYTHON_LDFLAGS])
AC_SUBST([PYTHON_LDFLAGS])
# #
# Check for site packages # Check for site packages
# #
AC_MSG_CHECKING([for Python site-packages path]) AC_MSG_CHECKING([for Python site-packages path])
python_site=`$PYTHON -c "import distutils.sysconfig; \ if test -z "$PYTHON_SITE_PKG"; then
PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
print distutils.sysconfig.get_python_lib(0,0);"` print distutils.sysconfig.get_python_lib(0,0);"`
AC_MSG_RESULT([$python_site]) fi
AC_SUBST([PYTHON_SITE_PKG],[$python_site]) AC_MSG_RESULT([$PYTHON_SITE_PKG])
AC_SUBST([PYTHON_SITE_PKG])
# #
# libraries which must be linked in when embedding # libraries which must be linked in when embedding
# #
AC_MSG_CHECKING(python extra libraries) AC_MSG_CHECKING(python extra libraries)
if test -z "$PYTHON_EXTRA_LIBS"; then
PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
conf = distutils.sysconfig.get_config_var; \ conf = distutils.sysconfig.get_config_var; \
print conf('LOCALMODLIBS'), conf('LIBS')"` print conf('LOCALMODLIBS'), conf('LIBS')"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
AC_SUBST(PYTHON_EXTRA_LIBS) AC_SUBST(PYTHON_EXTRA_LIBS)
@ -105,9 +144,11 @@ to something else than an empty string.
# linking flags needed when embedding # linking flags needed when embedding
# #
AC_MSG_CHECKING(python extra linking flags) AC_MSG_CHECKING(python extra linking flags)
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
conf = distutils.sysconfig.get_config_var; \ conf = distutils.sysconfig.get_config_var; \
print conf('LINKFORSHARED')"` print conf('LINKFORSHARED')"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
AC_SUBST(PYTHON_EXTRA_LDFLAGS) AC_SUBST(PYTHON_EXTRA_LDFLAGS)
]) ])