]> granicus.if.org Git - postgresql/commitdiff
Improve detection of Python 3.2 installations
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 18 Aug 2011 11:43:16 +0000 (14:43 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 18 Aug 2011 11:47:03 +0000 (14:47 +0300)
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

config/python.m4
configure

index ec357c2e48184aeb0d71b0d8336659987a69cb9f..1ef77a91ddc6fb89e5018657ffac6977efccc652 100644 (file)
@@ -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'))))"`
index 4d8e5bfb6c4b0c3f9809cfdd2cc5a3272bbef00d..ce7670a22a89d13e5b49d8573b06b155b9cb53d6 100755 (executable)
--- a/configure
+++ b/configure
@@ -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'))))"`