[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-next RFC 1/4] build/m4: make python_devel.m4 work with both python 2 and 3
Do the following: 1. Change the form of "print". 2. Check for ABI flags -- this is complicated because it is only introduced in 3.2. 3. Fix library name in AC_CHECK_LIB. 4. Remove other-libs in AC_CHECK_LIB. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- I doubt the non python-pkg branch works, because the paths generated seem rather off. It definitely doesn't work on my machine, but I don't know how other systems could possibly be configured before the existence of python-config. --- m4/python_devel.m4 | 27 ++++++++++++++++----------- tools/configure | 34 ++++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/m4/python_devel.m4 b/m4/python_devel.m4 index 05ea4ef7e2..1e2f41b6aa 100644 --- a/m4/python_devel.m4 +++ b/m4/python_devel.m4 @@ -2,37 +2,42 @@ AC_DEFUN([AX_CHECK_PYTHON_DEVEL], [ ac_previous_cppflags=$CPPFLAGS ac_previous_ldflags=$LDFLAGS ac_python_version=`$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("VERSION")'` + print(distutils.sysconfig.get_config_var("VERSION"))'` +ac_python_abiflags= AC_PATH_PROG([pyconfig], [$PYTHON-config], [no]) AS_IF([test x"$pyconfig" = x"no"], [ dnl For those that don't have python-config CPPFLAGS="$CFLAGS `$PYTHON -c 'import distutils.sysconfig; \ print "-I" + distutils.sysconfig.get_config_var("INCLUDEPY")'`" CPPFLAGS="$CPPFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("CFLAGS")'`" + print(distutils.sysconfig.get_config_var("CFLAGS"))'`" PYTHON_LIBS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("LIBS")'`" + print(distutils.sysconfig.get_config_var("LIBS"))'`" PYTHON_LIBS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("SYSLIBS")'`" + print(distutils.sysconfig.get_config_var("SYSLIBS"))'`" LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print "-L" + distutils.sysconfig.get_python_lib(plat_specific=1,\ - standard_lib=1) + "/config"'`" + print("-L" + distutils.sysconfig.get_python_lib(plat_specific=1,\ + standard_lib=1) + "/config")'`" LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("LINKFORSHARED")'`" + print(distutils.sysconfig.get_config_var("LINKFORSHARED"))'`" LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("LDFLAGS")'`" + print(distutils.sysconfig.get_config_var("LDFLAGS"))'`" ], [ dnl If python-config is found use it CPPFLAGS="$CFLAGS `$PYTHON-config --cflags`" LDFLAGS="$LDFLAGS `$PYTHON-config --ldflags`" PYTHON_LIBS="$LIBS `$PYTHON-config --libs`" + abiflags="`$PYTHON-config --abiflags`" + if test "$?" == "0" + then + ac_python_abiflags="$abiflags" + fi ]) AC_CHECK_HEADER([Python.h], [], [AC_MSG_ERROR([Unable to find Python development headers])],) -AC_CHECK_LIB(python$ac_python_version, PyArg_ParseTuple, [], - [AC_MSG_ERROR([Unable to find a suitable python development library])], - [$PYTHON_LIBS]) +AC_CHECK_LIB(python$ac_python_version$ac_python_abiflags, PyArg_ParseTuple, [], + [AC_MSG_ERROR([Unable to find a suitable python development library])]) CPPFLAGS=$ac_previous_cppflags LDFLAGS=$ac_previous_ldflags ]) diff --git a/tools/configure b/tools/configure index acc857510e..8cc216b669 100755 --- a/tools/configure +++ b/tools/configure @@ -7419,7 +7419,8 @@ if test "$cross_compiling" != yes; then : ac_previous_cppflags=$CPPFLAGS ac_previous_ldflags=$LDFLAGS ac_python_version=`$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("VERSION")'` + print(distutils.sysconfig.get_config_var("VERSION"))'` +ac_python_abiflags= # Extract the first word of "$PYTHON-config", so it can be a program name with args. set dummy $PYTHON-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -7466,24 +7467,29 @@ if test x"$pyconfig" = x"no"; then : CPPFLAGS="$CFLAGS `$PYTHON -c 'import distutils.sysconfig; \ print "-I" + distutils.sysconfig.get_config_var("INCLUDEPY")'`" CPPFLAGS="$CPPFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("CFLAGS")'`" + print(distutils.sysconfig.get_config_var("CFLAGS"))'`" PYTHON_LIBS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("LIBS")'`" + print(distutils.sysconfig.get_config_var("LIBS"))'`" PYTHON_LIBS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("SYSLIBS")'`" + print(distutils.sysconfig.get_config_var("SYSLIBS"))'`" LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print "-L" + distutils.sysconfig.get_python_lib(plat_specific=1,\ - standard_lib=1) + "/config"'`" + print("-L" + distutils.sysconfig.get_python_lib(plat_specific=1,\ + standard_lib=1) + "/config")'`" LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("LINKFORSHARED")'`" + print(distutils.sysconfig.get_config_var("LINKFORSHARED"))'`" LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \ - print distutils.sysconfig.get_config_var("LDFLAGS")'`" + print(distutils.sysconfig.get_config_var("LDFLAGS"))'`" else CPPFLAGS="$CFLAGS `$PYTHON-config --cflags`" LDFLAGS="$LDFLAGS `$PYTHON-config --ldflags`" PYTHON_LIBS="$LIBS `$PYTHON-config --libs`" + abiflags="`$PYTHON-config --abiflags`" + if test "$?" == "0" + then + ac_python_abiflags="$abiflags" + fi fi @@ -7495,14 +7501,14 @@ else fi -as_ac_Lib=`$as_echo "ac_cv_lib_python$ac_python_version''_PyArg_ParseTuple" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PyArg_ParseTuple in -lpython$ac_python_version" >&5 -$as_echo_n "checking for PyArg_ParseTuple in -lpython$ac_python_version... " >&6; } +as_ac_Lib=`$as_echo "ac_cv_lib_python$ac_python_version$ac_python_abiflags''_PyArg_ParseTuple" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PyArg_ParseTuple in -lpython$ac_python_version$ac_python_abiflags" >&5 +$as_echo_n "checking for PyArg_ParseTuple in -lpython$ac_python_version$ac_python_abiflags... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lpython$ac_python_version $PYTHON_LIBS $LIBS" +LIBS="-lpython$ac_python_version$ac_python_abiflags $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7535,10 +7541,10 @@ eval ac_res=\$$as_ac_Lib $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_LIBpython$ac_python_version" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_LIBpython$ac_python_version$ac_python_abiflags" | $as_tr_cpp` 1 _ACEOF - LIBS="-lpython$ac_python_version $LIBS" + LIBS="-lpython$ac_python_version$ac_python_abiflags $LIBS" else as_fn_error $? "Unable to find a suitable python development library" "$LINENO" 5 -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |