Permalink
Browse files

Improve detection of Python 3.2 installations

Because of ABI tagging, the library version number might no longer be
exactly the Python version number, so do extra lookups.  This affects
installations without a shared library, such as ActiveState's
installer.

Also update the way to detect the location of the 'config' directory,
which can also be versioned.

Ashesh Vashi
  • Loading branch information...
1 parent e1f9aa4 commit f8c2029ef0bf83ceb2bb10ee28362305cfa9cdf2 @petere petere committed Aug 18, 2011
Showing with 14 additions and 4 deletions.
  1. +7 −2 config/python.m4
  2. +7 −2 configure
View
@@ -32,7 +32,7 @@ fi
AC_MSG_CHECKING([Python configuration directory])
python_majorversion=`${PYTHON} -c "import sys; print(sys.version[[0]])"`
python_version=`${PYTHON} -c "import sys; print(sys.version[[:3]])"`
-python_configdir=`${PYTHON} -c "from distutils.sysconfig import get_python_lib as f; import os; print(os.path.join(f(plat_specific=1,standard_lib=1),'config'))"`
+python_configdir=`${PYTHON} -c "import distutils.sysconfig,string; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBPL'))))"`
python_includespec=`${PYTHON} -c "import distutils.sysconfig; print('-I'+distutils.sysconfig.get_python_inc())"`
AC_SUBST(python_majorversion)[]dnl
@@ -69,7 +69,12 @@ then
else
# Old way: use libpython from python_configdir
python_libdir="${python_configdir}"
- python_libspec="-L${python_libdir} -lpython${python_version}"
+ # LDVERSION was introduced in Python 3.2.
+ python_ldversion=`${PYTHON} -c "import distutils.sysconfig,string; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"`
+ if test x"${python_ldversion}" = x""; then
+ python_ldversion=$python_version
+ fi
+ python_libspec="-L${python_libdir} -lpython${python_ldversion}"
fi
python_additional_libs=`${PYTHON} -c "import distutils.sysconfig,string; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"`
View
@@ -7242,7 +7242,7 @@ fi
$as_echo_n "checking Python configuration directory... " >&6; }
python_majorversion=`${PYTHON} -c "import sys; print(sys.version[0])"`
python_version=`${PYTHON} -c "import sys; print(sys.version[:3])"`
-python_configdir=`${PYTHON} -c "from distutils.sysconfig import get_python_lib as f; import os; print(os.path.join(f(plat_specific=1,standard_lib=1),'config'))"`
+python_configdir=`${PYTHON} -c "import distutils.sysconfig,string; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBPL'))))"`
python_includespec=`${PYTHON} -c "import distutils.sysconfig; print('-I'+distutils.sysconfig.get_python_inc())"`
# This should be enough of a message.
@@ -7266,7 +7266,12 @@ then
else
# Old way: use libpython from python_configdir
python_libdir="${python_configdir}"
- python_libspec="-L${python_libdir} -lpython${python_version}"
+ # LDVERSION was introduced in Python 3.2.
+ python_ldversion=`${PYTHON} -c "import distutils.sysconfig,string; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"`
+ if test x"${python_ldversion}" = x""; then
+ python_ldversion=$python_version
+ fi
+ python_libspec="-L${python_libdir} -lpython${python_ldversion}"
fi
python_additional_libs=`${PYTHON} -c "import distutils.sysconfig,string; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"`

0 comments on commit f8c2029

Please sign in to comment.