--- gimp-2.8.10/configure.ac.orig 2014-02-25 22:03:04.931800000 +0400 +++ gimp-2.8.10/configure.ac 2014-02-25 22:20:04.452800000 +0400 @@ -1805,6 +1805,12 @@ AM_PATH_PYTHON2(python2_required_version,, [pycheck_error([Python 2 (python2_required_version or newer)], [it])]) AM_CHECK_PYTHON_HEADERS(, [pycheck_error([Python 2 headers], [them])]) + if test "x$platform_win32" = "xyes"; then + AM_CHECK_PYTHON_LIBS(, AC_MSG_ERROR([Python libs not found. Windows requires Python modules to be explicitly linked to libpython.])) + fi + + PYTHON_SO=`$PYTHON -c "import distutils.sysconfig, sys; get = distutils.sysconfig.get_config_var; sys.stdout.write(get('EXT_SUFFIX') or get('SO') or '.so');"` + AC_SUBST(PYTHON_SO) # Win32 needs all symbols resolved for linking, even for DLLs # Assume the link library is in $exec_prefix/libs @@ -1812,11 +1818,8 @@ # not documented so we won't rely on internal implementation PYLINK_LIBS= if test "x$platform_win32" = "xyes"; then - PYBIN_PATH="$py_exec_prefix\pythonw.exe" - PYTHON_INCLUDES=`echo "$PYTHON_INCLUDES" | sed -e 's/\\\\/\\//g'` - py_exec_prefix=`echo "$py_exec_prefix" | sed -e 's/\\\\/\\//g'` - pylibversion=`echo $PYTHON_VERSION | sed -e 's/\\.//'` - PYLINK_LIBS="-L${py_exec_prefix}/libs -lpython${pylibversion}" + PYBIN_PATH="$PYTHON" + PYLINK_LIBS="$PYTHON_LIBS" else PYBIN_PATH="$PYTHON" fi --- gimp-2.8.10/m4macros/pythondev.m4.orig 2014-02-25 22:10:07.300400000 +0400 +++ gimp-2.8.10/m4macros/pythondev.m4 2014-02-25 22:11:52.210400000 +0400 @@ -14,11 +14,14 @@ py_versiondir= fi dnl deduce PYTHON_INCLUDES -py_prefix=`$PYTHON -c "import sys; print(sys.prefix)"` -py_exec_prefix=`$PYTHON -c "import sys; print(sys.exec_prefix)"` -PYTHON_INCLUDES="-I${py_prefix}/include${py_versiondir}" -if test "$py_prefix" != "$py_exec_prefix"; then - PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include${py_versiondir}" +if test "x$PYTHON_INCLUDES" = x; then + PYTHON_CONFIG=`which $PYTHON`-config + if test -x "$PYTHON_CONFIG"; then + PYTHON_INCLUDES=`$PYTHON_CONFIG --includes 2>/dev/null` + else + PYTHON_INCLUDES=`$PYTHON -c "import distutils.sysconfig, sys; sys.stdout.write(distutils.sysconfig.get_python_inc(True))"` + PYTHON_INCLUDES="-I$PYTHON_INCLUDES" + fi fi AC_SUBST(PYTHON_INCLUDES) dnl check if the headers exist: @@ -31,3 +34,28 @@ $2]) CPPFLAGS="$save_CPPFLAGS" ]) + +dnl a macro to check for ability to python +dnl AM_CHECK_PYTHON_LIBS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) +dnl function also defines PYTHON_LIBS +AC_DEFUN([AM_CHECK_PYTHON_LIBS], +[AC_REQUIRE([AM_PATH_PYTHON]) +AC_MSG_CHECKING(for libraries required to python) +dnl deduce PYTHON_LIBS +py_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"` +if test "x$PYTHON_LIBS" = x; then + PYTHON_LIBS="-L${py_prefix}/lib -lpython${PYTHON_VERSION}" +fi +if test "x$PYTHON_LIB_LOC" = x; then + PYTHON_LIB_LOC="${py_prefix}/lib" +fi +AC_SUBST(PYTHON_LIBS) +AC_SUBST(PYTHON_LIB_LOC) +dnl check if the headers exist: +save_LIBS="$LIBS" +LIBS="$LIBS $PYTHON_LIBS" +AC_TRY_LINK_FUNC(Py_Initialize, dnl + [LIBS="$save_LIBS"; AC_MSG_RESULT(yes); $1], dnl + [LIBS="$save_LIBS"; AC_MSG_RESULT(no); $2]) + +])