diff --git a/config/python.m4 b/config/python.m4 index e29f05987b5561c95eb301f70d9adece12be97d6..babf5ab1dbe898fab3a9f3698c72f24982659c34 100644 --- a/config/python.m4 +++ b/config/python.m4 @@ -88,12 +88,18 @@ then found_shlib=1 else # Otherwise, guess the base name of the shlib. - # LDVERSION was added in Python 3.2, before that use $python_version. + # LDVERSION was added in Python 3.2, before that use VERSION, + # or failing that, $python_version from _PGAC_CHECK_PYTHON_DIRS. python_ldversion=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"` if test x"${python_ldversion}" != x""; then ldlibrary="python${python_ldversion}" else - ldlibrary="python${python_version}" + python_version_var=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('VERSION'))))"` + if test x"${python_version_var}" != x""; then + ldlibrary="python${python_version_var}" + else + ldlibrary="python${python_version}" + fi fi # Search for a likely-looking file. found_shlib=0 @@ -124,6 +130,21 @@ else done done fi + # As usual, Windows has its own ideas. c:/Windows/System32 takes the + # place of /usr/lib as a possible default library location, and the + # "lib" prefix might not be there. + if test "$found_shlib" != 1 -a "$PORTNAME" = win32 ; then + for d in "${python_libdir}" "${python_configdir}" c:/Windows/System32 + do + for f in "$d/lib${ldlibrary}.dll" "$d/${ldlibrary}.dll" ; do + if test -e "$f"; then + python_libdir="$d" + found_shlib=1 + break 2 + fi + done + done + fi fi if test "$found_shlib" != 1; then AC_MSG_ERROR([could not find shared library for Python diff --git a/configure b/configure index 3d08f5a5e9514839886a23d98c9e158e951f0652..204daa056d5bceaadb8a90d5d872766453a110a0 100755 --- a/configure +++ b/configure @@ -7631,12 +7631,18 @@ then found_shlib=1 else # Otherwise, guess the base name of the shlib. - # LDVERSION was added in Python 3.2, before that use $python_version. + # LDVERSION was added in Python 3.2, before that use VERSION, + # or failing that, $python_version from _PGAC_CHECK_PYTHON_DIRS. python_ldversion=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"` if test x"${python_ldversion}" != x""; then ldlibrary="python${python_ldversion}" else - ldlibrary="python${python_version}" + python_version_var=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('VERSION'))))"` + if test x"${python_version_var}" != x""; then + ldlibrary="python${python_version_var}" + else + ldlibrary="python${python_version}" + fi fi # Search for a likely-looking file. found_shlib=0 @@ -7667,6 +7673,21 @@ else done done fi + # As usual, Windows has its own ideas. c:/Windows/System32 takes the + # place of /usr/lib as a possible default library location, and the + # "lib" prefix might not be there. + if test "$found_shlib" != 1 -a "$PORTNAME" = win32 ; then + for d in "${python_libdir}" "${python_configdir}" c:/Windows/System32 + do + for f in "$d/lib${ldlibrary}.dll" "$d/${ldlibrary}.dll" ; do + if test -e "$f"; then + python_libdir="$d" + found_shlib=1 + break 2 + fi + done + done + fi fi if test "$found_shlib" != 1; then as_fn_error $? "could not find shared library for Python