diff options
author | Murray Cumming <murrayc@murrayc.com> | 2015-07-10 21:26:04 +0200 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2015-09-25 12:50:10 +0200 |
commit | 35f52877a6c1c8568575c2456fb1004e92839a82 (patch) | |
tree | 61e7846faade79b8176d7610e17f2cc45e172164 /m4/ax_python_devel.m4 | |
parent | 14259db060ff3c6ecbd30e46a4363b6300bc9b66 (diff) | |
download | autoconf-archive-35f52877a6c1c8568575c2456fb1004e92839a82.tar.gz |
AX_PYTHON_DEVEL: provide PYTHON_LIBS, not PYTHON_LDFLAGS
Because -L and -l are LIBS arguments, not LDFLAGS arguments.
Calling it PYTHON_LDFLAGS suggested wrongly that they should be
used in LDFLAGS, which can cause the -L and -l arguments to
be ignored when they are not in the expected position in the list
of command line arguments. This is a problem, for instance,
with the command line generated by AC_LINK_IFELSE.
Diffstat (limited to 'm4/ax_python_devel.m4')
-rw-r--r-- | m4/ax_python_devel.m4 | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 index 59a2ff0..f18ed8a 100644 --- a/m4/ax_python_devel.m4 +++ b/m4/ax_python_devel.m4 @@ -12,8 +12,8 @@ # in your configure.ac. # # This macro checks for Python and tries to get the include path to -# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) -# output variables. It also exports $(PYTHON_EXTRA_LIBS) and +# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output +# variables. It also exports $(PYTHON_EXTRA_LIBS) and # $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code. # # You can search for some particular version of Python by passing a @@ -67,7 +67,7 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 17 +#serial 18 AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL]) AC_DEFUN([AX_PYTHON_DEVEL],[ @@ -99,7 +99,7 @@ AC_DEFUN([AX_PYTHON_DEVEL],[ This version of the AC@&t@_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_LDFLAGS, PYTHON_SITE_PKG, +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. @@ -172,7 +172,7 @@ $ac_distutils_result]) # Check for Python library path # AC_MSG_CHECKING([for Python library path]) - if test -z "$PYTHON_LDFLAGS"; then + if test -z "$PYTHON_LIBS"; then # (makes two attempts to ensure we've got a version number # from the interpreter) ac_python_version=`cat<<EOD | $PYTHON - @@ -227,25 +227,25 @@ EOD` then # use the official shared library ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"` - PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library" + PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library" else # old way: use libpython from python_configdir ac_python_libdir=`$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_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version" + PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version" fi - if test -z "PYTHON_LDFLAGS"; then + if test -z "PYTHON_LIBS"; then AC_MSG_ERROR([ Cannot determine location of your Python DSO. Please check it was installed with - dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand. + dynamic libraries enabled, or try setting PYTHON_LIBS by hand. ]) fi fi - AC_MSG_RESULT([$PYTHON_LDFLAGS]) - AC_SUBST([PYTHON_LDFLAGS]) + AC_MSG_RESULT([$PYTHON_LIBS]) + AC_SUBST([PYTHON_LIBS]) # # Check for site packages @@ -262,25 +262,25 @@ EOD` # libraries which must be linked in when embedding # AC_MSG_CHECKING(python extra libraries) - if test -z "$PYTHON_EXTRA_LIBS"; then - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ + if test -z "$PYTHON_EXTRA_LDFLAGS"; then + PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"` fi - AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) - AC_SUBST(PYTHON_EXTRA_LIBS) + AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) + AC_SUBST(PYTHON_EXTRA_LDFLAGS) # # linking flags needed when embedding # AC_MSG_CHECKING(python extra linking flags) - if test -z "$PYTHON_EXTRA_LDFLAGS"; then - PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ + if test -z "$PYTHON_EXTRA_LIBS"; then + PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ print (conf('LINKFORSHARED'))"` fi - AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) - AC_SUBST(PYTHON_EXTRA_LDFLAGS) + AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) + AC_SUBST(PYTHON_EXTRA_LIBS) # # final check to see if everything compiles alright @@ -288,8 +288,10 @@ EOD` AC_MSG_CHECKING([consistency of all components of python development environment]) # save current global flags ac_save_LIBS="$LIBS" + ac_save_LDFLAGS="$LDFLAGS" ac_save_CPPFLAGS="$CPPFLAGS" - LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS" + 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_LANG_PUSH([C]) AC_LINK_IFELSE([ @@ -300,6 +302,7 @@ EOD` # turn back to default flags CPPFLAGS="$ac_save_CPPFLAGS" LIBS="$ac_save_LIBS" + LDFLAGS="$ac_save_LDFLAGS" AC_MSG_RESULT([$pythonexists]) @@ -307,8 +310,8 @@ EOD` AC_MSG_FAILURE([ 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 LDFLAGS environment variable. - Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib" + 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 |