From 119b60d7c593fbe8ef2918cb9a0ce13858d8fd5f Mon Sep 17 00:00:00 2001 From: Scott Fennell Date: Sat, 25 Apr 2020 18:49:21 -0500 Subject: [PATCH] Ubuntu 20.04, Python 3.8, and improved python configuration in configure.ac (#994) closes #991 closes #992 closes #993 see #991, #992, and #993. To support Ubuntu 20.04 we must support new versions of python and gtest. Python has changed the way it provided libraries using python-config, so adjustments had to be made. I've completely ditched the built in autoconf function for finding python, because it adds a bunch of extra flags we don't need for Trick. Now when we look for python with configure, it will search for python in this order: python${PYTHON_VERSION} python python3 For python-config, it will search in this order: python-config python-config python${PYTHON_VERSION}-config python-config python3-config Instead of python-config --ldflags, we are using python-config --libs This only gets the flags we need. For python >= 3.8 we use python-config --libs --embed this way it will add -lpython to the flags --- autoconf/configure.ac | 73 ++--- configure | 649 +++++++++--------------------------------- 2 files changed, 167 insertions(+), 555 deletions(-) diff --git a/autoconf/configure.ac b/autoconf/configure.ac index b0686c60..5fa9571b 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -368,54 +368,55 @@ AC_ARG_WITH( ), [ PYTHON_HOME="$withval" - AC_PATH_PROG(PYTHON, python${PYTHON_VERSION}, nopython, "$PYTHON_HOME") + AC_PATH_PROGS(PYTHON, python${PYTHON_VERSION} python python3, nopython, "$PYTHON_HOME") AS_IF( [test "$ac_cv_path_PYTHON" = "nopython"], - [ - AC_PATH_PROG(PYTHON, python, nopython, "$PYTHON_HOME") - AS_IF( - [test "$ac_cv_path_PYTHON" = "nopython"], - AC_MSG_ERROR([could not find python or python in specified path]), - [] - ) - ], + AC_MSG_ERROR([could not find python python or python3 in the specefied path. Please install the python development package]), [] ) - AC_PATH_PROG(PYTHON_CONFIG, python${PYTHON_VERSION}-config, nopython-config, "$PYTHON_HOME") + PYTHON_MAJORMINOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]])+"."+str(sys.version_info[[1]]))'` + PYTHON_MAJOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]]))'` + AC_PATH_PROGS(PYTHON_CONFIG, python${PYTHON_MAJORMINOR}-config python${PYTHON_MAJOR}-config python${PYTHON_VERSION}-config python-config, nopython-config, "$PYTHON_HOME") AS_IF( [test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"], - [ - AC_PATH_PROG(PYTHON_CONFIG, python-config, nopython-config, "$PYTHON_HOME") - AS_IF( - [test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"], - AC_MSG_ERROR([could not find python-config or python-config in specified path please install python${PYTHON_VERSION}-dev]), - [] - ) - ], + AC_MSG_ERROR([could not find python-config python-config or python-config in the specified path. Please install the python development package]), [] - ) - PYTHON_CPPFLAGS=`${PYTHON_CONFIG} --includes` - PYTHON_LIBS=`${PYTHON_CONFIG} --ldflags` + ) ], [ - AC_PATH_PROG(PYTHON, python${PYTHON_VERSION}, nopython) - AS_IF([test "$ac_cv_path_PYTHON" = "nopython"], - [ - AC_PATH_PROG(PYTHON3, python3, nopython3) - AS_IF([test "$ac_cv_path_PYTHON3" = "nopython3"], - AC_MSG_ERROR([could not find python or python3]), - [ - PYTHON_CPPFLAGS=`${PYTHON3}-config --includes` - PYTHON_LIBS=`${PYTHON3}-config --ldflags` - PYTHON=$PYTHON3 - ] - ) - ], - [AX_PYTHON_DEVEL([>='2.5'])] + AC_PATH_PROGS(PYTHON, python${PYTHON_VERSION} python python3, nopython) + AS_IF( + [test "$ac_cv_path_PYTHON" = "nopython"], + AC_MSG_ERROR([could not find python python or python3. Please install the python development package]), + [] ) - ] + PYTHON_MAJORMINOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]])+"."+str(sys.version_info[[1]]))'` + PYTHON_MAJOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]]))'` + AC_PATH_PROGS(PYTHON_CONFIG, python${PYTHON_MAJORMINOR}-config python${PYTHON_MAJOR}-config python${PYTHON_VERSION}-config python-config, nopython-config) + AS_IF( + [test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"], + AC_MSG_ERROR([could not find python-config python-config or python-config. Please install the python development package]), + [] + ) + ] ) +PYTHON_LIBS_COMMAND="${PYTHON_CONFIG} --libs" + +AX_COMPARE_VERSION( + [${PYTHON_MAJORMINOR}], + [ge], + [3.8], + [PYTHON_LIBS_COMMAND="${PYTHON_LIBS_COMMAND} --embed"] +) + +PYTHON_CPPFLAGS=`${PYTHON_CONFIG} --includes` +PYTHON_LIBS=`${PYTHON_LIBS_COMMAND}` + +AC_SUBST([PYTHON_CPPFLAGS]) +AC_SUBST([PYTHON_LIBS]) +AC_SUBST([PYTHON_EXTRA_LIBS]) + AC_PATH_PROG(GNUPLOT, gnuplot, nognuplot) AS_IF([test "$ac_cv_path_GNUPLOT" = "nognuplot"],AC_MSG_NOTICE([could not find gnuplot]),[]) AX_SWIG_BIN([]) diff --git a/configure b/configure index 73c33c2c..8b2e35fb 100755 --- a/configure +++ b/configure @@ -651,13 +651,9 @@ SWIG_LIB SWIG SWIG_BIN GNUPLOT -PYTHON_EXTRA_LDFLAGS PYTHON_EXTRA_LIBS -PYTHON_SITE_PKG PYTHON_LIBS PYTHON_CPPFLAGS -PYTHON_VERSION -PYTHON3 PYTHON_CONFIG PYTHON PERL_VERSION @@ -775,7 +771,6 @@ CCC CXXCPP CC CFLAGS -PYTHON_VERSION JAVA_CC JAVA_CC_FLAGS CPP' @@ -1445,10 +1440,6 @@ Some influential environment variables: CXXCPP C++ preprocessor CC C compiler command CFLAGS C compiler flags - PYTHON_VERSION - The installed Python version to use, for example '2.3'. This - string will be appended to the Python interpreter canonical - name. JAVA_CC java compiler command JAVA_CC_FLAGS java compiler flags @@ -5368,13 +5359,14 @@ fi - # Check whether --with-python was given. if test "${with_python+set}" = set; then : withval=$with_python; PYTHON_HOME="$withval" - # Extract the first word of "python${PYTHON_VERSION}", so it can be a program name with args. -set dummy python${PYTHON_VERSION}; ac_word=$2 + for ac_prog in python${PYTHON_VERSION} python python3 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : @@ -5400,7 +5392,6 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="nopython" ;; esac fi @@ -5414,56 +5405,19 @@ $as_echo "no" >&6; } fi + test -n "$PYTHON" && break +done +test -n "$PYTHON" || PYTHON="nopython" + if test "$ac_cv_path_PYTHON" = "nopython"; then : - - # Extract the first word of "python", so it can be a program name with args. -set dummy python; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PYTHON+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PYTHON in - [\\/]* | ?:[\\/]*) - ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in "$PYTHON_HOME" + as_fn_error $? "could not find python python or python3 in the specefied path. Please install the python development package" "$LINENO" 5 +fi + PYTHON_MAJORMINOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))'` + PYTHON_MAJOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[0]))'` + for ac_prog in python${PYTHON_MAJORMINOR}-config python${PYTHON_MAJOR}-config python${PYTHON_VERSION}-config python-config do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="nopython" - ;; -esac -fi -PYTHON=$ac_cv_path_PYTHON -if test -n "$PYTHON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 -$as_echo "$PYTHON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$ac_cv_path_PYTHON" = "nopython"; then : - as_fn_error $? "could not find python or python in specified path" "$LINENO" 5 -fi - -fi - # Extract the first word of "python${PYTHON_VERSION}-config", so it can be a program name with args. -set dummy python${PYTHON_VERSION}-config; ac_word=$2 + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON_CONFIG+:} false; then : @@ -5489,7 +5443,6 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_path_PYTHON_CONFIG" && ac_cv_path_PYTHON_CONFIG="nopython-config" ;; esac fi @@ -5503,10 +5456,71 @@ $as_echo "no" >&6; } fi + test -n "$PYTHON_CONFIG" && break +done +test -n "$PYTHON_CONFIG" || PYTHON_CONFIG="nopython-config" + if test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"; then : + as_fn_error $? "could not find python-config python-config or python-config in the specified path. Please install the python development package" "$LINENO" 5 +fi - # Extract the first word of "python-config", so it can be a program name with args. -set dummy python-config; ac_word=$2 +else + + for ac_prog in python${PYTHON_VERSION} python python3 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PYTHON+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PYTHON" && break +done +test -n "$PYTHON" || PYTHON="nopython" + + if test "$ac_cv_path_PYTHON" = "nopython"; then : + as_fn_error $? "could not find python python or python3. Please install the python development package" "$LINENO" 5 +fi + PYTHON_MAJORMINOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))'` + PYTHON_MAJOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[0]))'` + for ac_prog in python${PYTHON_MAJORMINOR}-config python${PYTHON_MAJOR}-config python${PYTHON_VERSION}-config python-config +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON_CONFIG+:} false; then : @@ -5518,7 +5532,7 @@ else ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in "$PYTHON_HOME" +for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -5532,7 +5546,6 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_path_PYTHON_CONFIG" && ac_cv_path_PYTHON_CONFIG="nopython-config" ;; esac fi @@ -5546,467 +5559,64 @@ $as_echo "no" >&6; } fi - if test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"; then : - as_fn_error $? "could not find python-config or python-config in specified path please install python${PYTHON_VERSION}-dev" "$LINENO" 5 -fi - -fi - PYTHON_CPPFLAGS=`${PYTHON_CONFIG} --includes` - PYTHON_LIBS=`${PYTHON_CONFIG} --ldflags` - -else - - # Extract the first word of "python${PYTHON_VERSION}", so it can be a program name with args. -set dummy python${PYTHON_VERSION}; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PYTHON+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PYTHON in - [\\/]* | ?:[\\/]*) - ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi + test -n "$PYTHON_CONFIG" && break done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="nopython" - ;; -esac -fi -PYTHON=$ac_cv_path_PYTHON -if test -n "$PYTHON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 -$as_echo "$PYTHON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$ac_cv_path_PYTHON" = "nopython"; then : - - # Extract the first word of "python3", so it can be a program name with args. -set dummy python3; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PYTHON3+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PYTHON3 in - [\\/]* | ?:[\\/]*) - ac_cv_path_PYTHON3="$PYTHON3" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PYTHON3="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PYTHON3" && ac_cv_path_PYTHON3="nopython3" - ;; -esac -fi -PYTHON3=$ac_cv_path_PYTHON3 -if test -n "$PYTHON3"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON3" >&5 -$as_echo "$PYTHON3" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$ac_cv_path_PYTHON3" = "nopython3"; then : - as_fn_error $? "could not find python or python3" "$LINENO" 5 -else - - PYTHON_CPPFLAGS=`${PYTHON3}-config --includes` - PYTHON_LIBS=`${PYTHON3}-config --ldflags` - PYTHON=$PYTHON3 - - -fi - -else - - # - # Allow the use of a (user set) custom python version - # - - - # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args. -set dummy python$PYTHON_VERSION; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PYTHON+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PYTHON in - [\\/]* | ?:[\\/]*) - ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PYTHON=$ac_cv_path_PYTHON -if test -n "$PYTHON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 -$as_echo "$PYTHON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -z "$PYTHON"; then - as_fn_error $? "Cannot find python$PYTHON_VERSION in your system path" "$LINENO" 5 - PYTHON_VERSION="" - fi - - # - # Check for a version of Python >= 2.1.0 - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.1.0'" >&5 -$as_echo_n "checking for a version of Python >= '2.1.0'... " >&6; } - ac_supports_python_ver=`$PYTHON -c "import sys; \ - ver = sys.version.split ()[0]; \ - print (ver >= '2.1.0')"` - if test "$ac_supports_python_ver" != "True"; then - if test -z "$PYTHON_NOVERSIONCHECK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " -This version of the AC_PYTHON_DEVEL macro -doesn't work properly with versions of Python before -2.1.0. You may need to re-run configure, setting the -variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG, -PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. -Moreover, to disable this check, set PYTHON_NOVERSIONCHECK -to something else than an empty string. - -See \`config.log' for more details" "$LINENO" 5; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skip at user request" >&5 -$as_echo "skip at user request" >&6; } - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - # - # if the macro parameter ``version'' is set, honour it - # - if test -n ">='2.5'"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >='2.5'" >&5 -$as_echo_n "checking for a version of Python >='2.5'... " >&6; } - ac_supports_python_ver=`$PYTHON -c "import sys; \ - ver = sys.version.split ()[0]; \ - print (ver >='2.5')"` - if test "$ac_supports_python_ver" = "True"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "this package requires Python >='2.5'. -If you have it installed, but it isn't the default Python -interpreter in your system path, please pass the PYTHON_VERSION -variable to configure. See \`\`configure --help'' for reference. -" "$LINENO" 5 - PYTHON_VERSION="" - fi - fi - - # - # Check if you have distutils, else fail - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5 -$as_echo_n "checking for the distutils Python package... " >&6; } - ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` - if test $? -eq 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "cannot import Python module \"distutils\". -Please check your Python installation. The error was: -$ac_distutils_result" "$LINENO" 5 - PYTHON_VERSION="" - fi - - # - # Check for Python include path - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 -$as_echo_n "checking for Python include path... " >&6; } - if test -z "$PYTHON_CPPFLAGS"; then - python_path=`$PYTHON -c "import distutils.sysconfig; \ - print (distutils.sysconfig.get_python_inc ());"` - plat_python_path=`$PYTHON -c "import distutils.sysconfig; \ - print (distutils.sysconfig.get_python_inc (plat_specific=1));"` - if test -n "${python_path}"; then - if test "${plat_python_path}" != "${python_path}"; then - python_path="-I$python_path -I$plat_python_path" - else - python_path="-I$python_path" - fi - fi - PYTHON_CPPFLAGS=$python_path - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5 -$as_echo "$PYTHON_CPPFLAGS" >&6; } - - - # - # Check for Python library path - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5 -$as_echo_n "checking for Python library path... " >&6; } - if test -z "$PYTHON_LIBS"; then - # (makes two attempts to ensure we've got a version number - # from the interpreter) - ac_python_version=`cat<>confdefs.h <<_ACEOF -#define HAVE_PYTHON "$ac_python_version" -_ACEOF - - - # First, the library directory: - ac_python_libdir=`cat<&5 -$as_echo "$PYTHON_LIBS" >&6; } - - - # - # Check for site packages - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5 -$as_echo_n "checking for Python site-packages path... " >&6; } - if test -z "$PYTHON_SITE_PKG"; then - PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ - print (distutils.sysconfig.get_python_lib(0,0));"` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5 -$as_echo "$PYTHON_SITE_PKG" >&6; } - - - # - # libraries which must be linked in when embedding - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5 -$as_echo_n "checking python extra libraries... " >&6; } - if test -z "$PYTHON_EXTRA_LIBS"; then - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ - print (conf('LIBS') + ' ' + conf('SYSLIBS'))"` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5 -$as_echo "$PYTHON_EXTRA_LIBS" >&6; } - - - # - # linking flags needed when embedding - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5 -$as_echo_n "checking python extra linking flags... " >&6; } - if test -z "$PYTHON_EXTRA_LDFLAGS"; then - PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ - print (conf('LINKFORSHARED'))"` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5 -$as_echo "$PYTHON_EXTRA_LDFLAGS" >&6; } - - - # - # final check to see if everything compiles alright - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5 -$as_echo_n "checking consistency of all components of python development environment... " >&6; } - # save current global flags - ac_save_LIBS="$LIBS" - ac_save_LDFLAGS="$LDFLAGS" - ac_save_CPPFLAGS="$CPPFLAGS" - LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS" - LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS" - CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include -int -main () -{ -Py_Initialize(); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pythonexists=yes -else - pythonexists=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - # turn back to default flags - CPPFLAGS="$ac_save_CPPFLAGS" - LIBS="$ac_save_LIBS" - LDFLAGS="$ac_save_LDFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5 -$as_echo "$pythonexists" >&6; } - - if test ! "x$pythonexists" = "xyes"; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - Could not link test program to Python. Maybe the main Python library has been - installed in some non-standard library path. If so, pass it to configure, - via the LIBS environment variable. - Example: ./configure LIBS=\"-L/usr/non-standard-path/python/lib\" - ============================================================================ - ERROR! - You probably have to install the development version of the Python package - for your distribution. The exact name of this package varies among them. - ============================================================================ - -See \`config.log' for more details" "$LINENO" 5; } - PYTHON_VERSION="" - fi - - # - # all done! - # - +test -n "$PYTHON_CONFIG" || PYTHON_CONFIG="nopython-config" + if test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"; then : + as_fn_error $? "could not find python-config python-config or python-config. Please install the python development package" "$LINENO" 5 fi fi +PYTHON_LIBS_COMMAND="${PYTHON_CONFIG} --libs" + + + + + # Used to indicate true or false condition + ax_compare_version=false + + # Convert the two version strings to be compared into a format that + # allows a simple string comparison. The end result is that a version + # string of the form 1.12.5-r617 will be converted to the form + # 0001001200050617. In other words, each number is zero padded to four + # digits, and non digits are removed. + + ax_compare_version_A=`echo "${PYTHON_MAJORMINOR}" | sed -e 's/\([0-9]*\)/Z\1Z/g' \ + -e 's/Z\([0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/[^0-9]//g'` + + + ax_compare_version_B=`echo "3.8" | sed -e 's/\([0-9]*\)/Z\1Z/g' \ + -e 's/Z\([0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/[^0-9]//g'` + + + ax_compare_version=`echo "x$ax_compare_version_A +x$ax_compare_version_B" | sed 's/^ *//' | sort -r | sed "s/x${ax_compare_version_A}/true/;s/x${ax_compare_version_B}/false/;1q"` + + + + if test "$ax_compare_version" = "true" ; then + PYTHON_LIBS_COMMAND="${PYTHON_LIBS_COMMAND} --embed" + + fi + + +PYTHON_CPPFLAGS=`${PYTHON_CONFIG} --includes` +PYTHON_LIBS=`${PYTHON_LIBS_COMMAND}` + + + + + # Extract the first word of "gnuplot", so it can be a program name with args. set dummy gnuplot; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -6444,6 +6054,7 @@ fi fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'