624 lines
21 KiB
Diff
624 lines
21 KiB
Diff
From 42bb64ba966082b440cb68cbdadf317f44710017 Mon Sep 17 00:00:00 2001
|
|
From: Nikias Bassen <nikias@gmx.li>
|
|
Date: Thu, 4 Apr 2019 01:51:02 +0300
|
|
Subject: [PATCH] Updated ac_python_devel.m4 to newer ax_python_devel.m4
|
|
|
|
---
|
|
m4/ac_python_devel.m4 | 269 -----------------------------------------
|
|
m4/ax_python_devel.m4 | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2 files changed, 327 insertions(+), 269 deletions(-)
|
|
delete mode 100644 m4/ac_python_devel.m4
|
|
create mode 100644 m4/ax_python_devel.m4
|
|
|
|
diff --git a/m4/ac_python_devel.m4 b/m4/ac_python_devel.m4
|
|
deleted file mode 100644
|
|
index 545c607..0000000
|
|
--- a/m4/ac_python_devel.m4
|
|
+++ /dev/null
|
|
@@ -1,269 +0,0 @@
|
|
-# ===========================================================================
|
|
-# http://autoconf-archive.cryp.to/ac_python_devel.html
|
|
-# ===========================================================================
|
|
-#
|
|
-# SYNOPSIS
|
|
-#
|
|
-# AC_PYTHON_DEVEL([version])
|
|
-#
|
|
-# DESCRIPTION
|
|
-#
|
|
-# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it
|
|
-# 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_EXTRA_LDFLAGS) for embedding Python in your code.
|
|
-#
|
|
-# You can search for some particular version of Python by passing a
|
|
-# parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please
|
|
-# note that you *have* to pass also an operator along with the version to
|
|
-# match, and pay special attention to the single quotes surrounding the
|
|
-# version number. Don't use "PYTHON_VERSION" for this: that environment
|
|
-# variable is declared as precious and thus reserved for the end-user.
|
|
-#
|
|
-# This macro should work for all versions of Python >= 2.1.0. As an end
|
|
-# user, you can disable the check for the python version by setting the
|
|
-# PYTHON_NOVERSIONCHECK environment variable to something else than the
|
|
-# empty string.
|
|
-#
|
|
-# If you need to use this macro for an older Python version, please
|
|
-# contact the authors. We're always open for feedback.
|
|
-#
|
|
-# LAST MODIFICATION
|
|
-#
|
|
-# 2008-04-12
|
|
-#
|
|
-# COPYLEFT
|
|
-#
|
|
-# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de>
|
|
-# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
|
|
-# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net>
|
|
-# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
|
|
-# Copyright (c) 2008 Matteo Settenvini <matteo@member.fsf.org>
|
|
-# Copyright (c) 2008 Horst Knorr <hk_classes@knoda.org>
|
|
-#
|
|
-# This program is free software: you can redistribute it and/or modify it
|
|
-# under the terms of the GNU General Public License as published by the
|
|
-# Free Software Foundation, either version 3 of the License, or (at your
|
|
-# option) any later version.
|
|
-#
|
|
-# This program is distributed in the hope that it will be useful, but
|
|
-# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
-# Public License for more details.
|
|
-#
|
|
-# You should have received a copy of the GNU General Public License along
|
|
-# with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
-#
|
|
-# As a special exception, the respective Autoconf Macro's copyright owner
|
|
-# gives unlimited permission to copy, distribute and modify the configure
|
|
-# scripts that are the output of Autoconf when processing the Macro. You
|
|
-# need not follow the terms of the GNU General Public License when using
|
|
-# or distributing such scripts, even though portions of the text of the
|
|
-# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
-# all other use of the material that constitutes the Autoconf Macro.
|
|
-#
|
|
-# This special exception to the GPL applies to versions of the Autoconf
|
|
-# Macro released by the Autoconf Macro Archive. When you make and
|
|
-# distribute a modified version of the Autoconf Macro, you may extend this
|
|
-# special exception to the GPL to apply to your modified version as well.
|
|
-
|
|
-AC_DEFUN([AC_PYTHON_DEVEL],[
|
|
- #
|
|
- # Allow the use of a (user set) custom python version
|
|
- #
|
|
- AC_ARG_VAR([PYTHON_VERSION],[The installed Python
|
|
- version to use, for example '2.3'. This string
|
|
- will be appended to the Python interpreter
|
|
- canonical name.])
|
|
-
|
|
- AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
|
|
- if test -z "$PYTHON"; then
|
|
- AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
|
|
- PYTHON_VERSION=""
|
|
- fi
|
|
-
|
|
- #
|
|
- # Check for a version of Python >= 2.1.0
|
|
- #
|
|
- AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
|
|
- 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
|
|
- AC_MSG_RESULT([no])
|
|
- AC_MSG_FAILURE([
|
|
-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,
|
|
-PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
|
|
-Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
|
|
-to something else than an empty string.
|
|
-])
|
|
- else
|
|
- AC_MSG_RESULT([skip at user request])
|
|
- fi
|
|
- else
|
|
- AC_MSG_RESULT([yes])
|
|
- fi
|
|
-
|
|
- #
|
|
- # if the macro parameter ``version'' is set, honour it
|
|
- #
|
|
- if test -n "$1"; then
|
|
- AC_MSG_CHECKING([for a version of Python $1])
|
|
- 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
|
|
- AC_MSG_RESULT([yes])
|
|
- else
|
|
- AC_MSG_RESULT([no])
|
|
- AC_MSG_ERROR([this package requires Python $1.
|
|
-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.
|
|
-])
|
|
- PYTHON_VERSION=""
|
|
- fi
|
|
- fi
|
|
-
|
|
- #
|
|
- # Check if you have distutils, else fail
|
|
- #
|
|
- AC_MSG_CHECKING([for the distutils Python package])
|
|
- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
|
|
- if test -z "$ac_distutils_result"; then
|
|
- AC_MSG_RESULT([yes])
|
|
- else
|
|
- AC_MSG_RESULT([no])
|
|
- AC_MSG_ERROR([cannot import Python module "distutils".
|
|
-Please check your Python installation. The error was:
|
|
-$ac_distutils_result])
|
|
- PYTHON_VERSION=""
|
|
- fi
|
|
-
|
|
- #
|
|
- # Check for Python include path
|
|
- #
|
|
- AC_MSG_CHECKING([for Python include path])
|
|
- if type $PYTHON-config; then
|
|
- PYTHON_CPPFLAGS=`$PYTHON-config --includes`
|
|
- fi
|
|
- if test -z "$PYTHON_CPPFLAGS"; then
|
|
- python_path=`$PYTHON -c "import distutils.sysconfig; \
|
|
- print(distutils.sysconfig.get_python_inc());"`
|
|
- if test -n "${python_path}"; then
|
|
- python_path="-I$python_path"
|
|
- fi
|
|
- PYTHON_CPPFLAGS=$python_path
|
|
- fi
|
|
- AC_MSG_RESULT([$PYTHON_CPPFLAGS])
|
|
- AC_SUBST([PYTHON_CPPFLAGS])
|
|
-
|
|
- #
|
|
- # Check for Python library path
|
|
- #
|
|
- AC_MSG_CHECKING([for Python library path])
|
|
- if type $PYTHON-config; then
|
|
- PYTHON_LDFLAGS=`$PYTHON-config --ldflags`
|
|
- fi
|
|
- if test -z "$PYTHON_LDFLAGS"; then
|
|
- # (makes two attempts to ensure we've got a version number
|
|
- # from the interpreter)
|
|
- py_version=`$PYTHON -c "from distutils.sysconfig import *; \
|
|
- print(' '.join(get_config_vars('VERSION')))"`
|
|
- if test "$py_version" = "[None]"; then
|
|
- if test -n "$PYTHON_VERSION"; then
|
|
- py_version=$PYTHON_VERSION
|
|
- else
|
|
- py_version=`$PYTHON -c "import sys; \
|
|
- print(sys.version[[:3]]")`
|
|
- fi
|
|
- fi
|
|
-
|
|
- PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \
|
|
- print('-L' + get_python_lib(0,1) + \
|
|
- ' -lpython');"`$py_version
|
|
- fi
|
|
- AC_MSG_RESULT([$PYTHON_LDFLAGS])
|
|
- AC_SUBST([PYTHON_LDFLAGS])
|
|
-
|
|
- #
|
|
- # Check for site packages
|
|
- #
|
|
- AC_MSG_CHECKING([for Python site-packages path])
|
|
- if test -z "$PYTHON_SITE_PKG"; then
|
|
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
|
|
- print(distutils.sysconfig.get_python_lib(0,0))"`
|
|
- fi
|
|
- AC_MSG_RESULT([$PYTHON_SITE_PKG])
|
|
- AC_SUBST([PYTHON_SITE_PKG])
|
|
-
|
|
- #
|
|
- # 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; \
|
|
- conf = distutils.sysconfig.get_config_var; \
|
|
- print(conf('LOCALMODLIBS'), conf('LIBS'))"`
|
|
- fi
|
|
- AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
|
|
- AC_SUBST(PYTHON_EXTRA_LIBS)
|
|
-
|
|
- #
|
|
- # 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; \
|
|
- conf = distutils.sysconfig.get_config_var; \
|
|
- print(conf('LINKFORSHARED'))"`
|
|
- fi
|
|
- AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
|
|
- AC_SUBST(PYTHON_EXTRA_LDFLAGS)
|
|
-
|
|
- #
|
|
- # final check to see if everything compiles alright
|
|
- #
|
|
- AC_MSG_CHECKING([consistency of all components of python development environment])
|
|
- AC_LANG_PUSH([C])
|
|
- # save current global flags
|
|
- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS"
|
|
- CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
|
|
- AC_TRY_LINK([
|
|
- #include <Python.h>
|
|
- ],[
|
|
- Py_Initialize();
|
|
- ],[pythonexists=yes],[pythonexists=no])
|
|
-
|
|
- AC_MSG_RESULT([$pythonexists])
|
|
-
|
|
- if test ! "$pythonexists" = "yes"; then
|
|
- AC_MSG_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 LDFLAGS environment variable.
|
|
- Example: ./configure LDFLAGS="-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.
|
|
- ============================================================================
|
|
- ])
|
|
- PYTHON_VERSION=""
|
|
- fi
|
|
- AC_LANG_POP
|
|
- # turn back to default flags
|
|
- CPPFLAGS="$ac_save_CPPFLAGS"
|
|
- LIBS="$ac_save_LIBS"
|
|
-
|
|
- #
|
|
- # all done!
|
|
- #
|
|
-])
|
|
diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
|
|
new file mode 100644
|
|
index 0000000..44dbd83
|
|
--- /dev/null
|
|
+++ b/m4/ax_python_devel.m4
|
|
@@ -0,0 +1,327 @@
|
|
+# ===========================================================================
|
|
+# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
|
|
+# ===========================================================================
|
|
+#
|
|
+# SYNOPSIS
|
|
+#
|
|
+# AX_PYTHON_DEVEL([version])
|
|
+#
|
|
+# DESCRIPTION
|
|
+#
|
|
+# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it
|
|
+# 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_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
|
|
+# parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please
|
|
+# note that you *have* to pass also an operator along with the version to
|
|
+# match, and pay special attention to the single quotes surrounding the
|
|
+# version number. Don't use "PYTHON_VERSION" for this: that environment
|
|
+# variable is declared as precious and thus reserved for the end-user.
|
|
+#
|
|
+# This macro should work for all versions of Python >= 2.1.0. As an end
|
|
+# user, you can disable the check for the python version by setting the
|
|
+# PYTHON_NOVERSIONCHECK environment variable to something else than the
|
|
+# empty string.
|
|
+#
|
|
+# If you need to use this macro for an older Python version, please
|
|
+# contact the authors. We're always open for feedback.
|
|
+#
|
|
+# LICENSE
|
|
+#
|
|
+# Copyright (c) 2009 Sebastian Huber <sebastian-huber@web.de>
|
|
+# Copyright (c) 2009 Alan W. Irwin
|
|
+# Copyright (c) 2009 Rafael Laboissiere <rafael@laboissiere.net>
|
|
+# Copyright (c) 2009 Andrew Collier
|
|
+# Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org>
|
|
+# Copyright (c) 2009 Horst Knorr <hk_classes@knoda.org>
|
|
+# Copyright (c) 2013 Daniel Mullner <muellner@math.stanford.edu>
|
|
+#
|
|
+# This program is free software: you can redistribute it and/or modify it
|
|
+# under the terms of the GNU General Public License as published by the
|
|
+# Free Software Foundation, either version 3 of the License, or (at your
|
|
+# option) any later version.
|
|
+#
|
|
+# This program is distributed in the hope that it will be useful, but
|
|
+# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
+# Public License for more details.
|
|
+#
|
|
+# You should have received a copy of the GNU General Public License along
|
|
+# with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
+#
|
|
+# As a special exception, the respective Autoconf Macro's copyright owner
|
|
+# gives unlimited permission to copy, distribute and modify the configure
|
|
+# scripts that are the output of Autoconf when processing the Macro. You
|
|
+# need not follow the terms of the GNU General Public License when using
|
|
+# or distributing such scripts, even though portions of the text of the
|
|
+# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
+# all other use of the material that constitutes the Autoconf Macro.
|
|
+#
|
|
+# This special exception to the GPL applies to versions of the Autoconf
|
|
+# Macro released by the Autoconf Archive. When you make and distribute a
|
|
+# modified version of the Autoconf Macro, you may extend this special
|
|
+# exception to the GPL to apply to your modified version as well.
|
|
+
|
|
+#serial 21
|
|
+
|
|
+AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
|
|
+AC_DEFUN([AX_PYTHON_DEVEL],[
|
|
+ #
|
|
+ # Allow the use of a (user set) custom python version
|
|
+ #
|
|
+ AC_ARG_VAR([PYTHON_VERSION],[The installed Python
|
|
+ version to use, for example '2.3'. This string
|
|
+ will be appended to the Python interpreter
|
|
+ canonical name.])
|
|
+
|
|
+ AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
|
|
+ if test -z "$PYTHON"; then
|
|
+ AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
|
|
+ PYTHON_VERSION=""
|
|
+ fi
|
|
+
|
|
+ #
|
|
+ # Check for a version of Python >= 2.1.0
|
|
+ #
|
|
+ AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
|
|
+ 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
|
|
+ AC_MSG_RESULT([no])
|
|
+ AC_MSG_FAILURE([
|
|
+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_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.
|
|
+])
|
|
+ else
|
|
+ AC_MSG_RESULT([skip at user request])
|
|
+ fi
|
|
+ else
|
|
+ AC_MSG_RESULT([yes])
|
|
+ fi
|
|
+
|
|
+ #
|
|
+ # if the macro parameter ``version'' is set, honour it
|
|
+ #
|
|
+ if test -n "$1"; then
|
|
+ AC_MSG_CHECKING([for a version of Python $1])
|
|
+ ac_supports_python_ver=`$PYTHON -c "import sys; \
|
|
+ ver = sys.version.split ()[[0]]; \
|
|
+ print (ver $1)"`
|
|
+ if test "$ac_supports_python_ver" = "True"; then
|
|
+ AC_MSG_RESULT([yes])
|
|
+ else
|
|
+ AC_MSG_RESULT([no])
|
|
+ AC_MSG_ERROR([this package requires Python $1.
|
|
+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.
|
|
+])
|
|
+ PYTHON_VERSION=""
|
|
+ fi
|
|
+ fi
|
|
+
|
|
+ #
|
|
+ # Check if you have distutils, else fail
|
|
+ #
|
|
+ AC_MSG_CHECKING([for the distutils Python package])
|
|
+ ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
|
|
+ if test $? -eq 0; then
|
|
+ AC_MSG_RESULT([yes])
|
|
+ else
|
|
+ AC_MSG_RESULT([no])
|
|
+ AC_MSG_ERROR([cannot import Python module "distutils".
|
|
+Please check your Python installation. The error was:
|
|
+$ac_distutils_result])
|
|
+ PYTHON_VERSION=""
|
|
+ fi
|
|
+
|
|
+ #
|
|
+ # Check for Python include path
|
|
+ #
|
|
+ AC_MSG_CHECKING([for Python include path])
|
|
+ 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
|
|
+ AC_MSG_RESULT([$PYTHON_CPPFLAGS])
|
|
+ AC_SUBST([PYTHON_CPPFLAGS])
|
|
+
|
|
+ #
|
|
+ # Check for Python library path
|
|
+ #
|
|
+ AC_MSG_CHECKING([for Python library path])
|
|
+ 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 -
|
|
+
|
|
+# join all versioning strings, on some systems
|
|
+# major/minor numbers could be in different list elements
|
|
+from distutils.sysconfig import *
|
|
+e = get_config_var('VERSION')
|
|
+if e is not None:
|
|
+ print(e)
|
|
+EOD`
|
|
+
|
|
+ if test -z "$ac_python_version"; then
|
|
+ if test -n "$PYTHON_VERSION"; then
|
|
+ ac_python_version=$PYTHON_VERSION
|
|
+ else
|
|
+ ac_python_version=`$PYTHON -c "import sys; \
|
|
+ print (sys.version[[:3]])"`
|
|
+ fi
|
|
+ fi
|
|
+
|
|
+ # Make the versioning information available to the compiler
|
|
+ AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
|
|
+ [If available, contains the Python version number currently in use.])
|
|
+
|
|
+ # First, the library directory:
|
|
+ ac_python_libdir=`cat<<EOD | $PYTHON -
|
|
+
|
|
+# There should be only one
|
|
+import distutils.sysconfig
|
|
+e = distutils.sysconfig.get_config_var('LIBDIR')
|
|
+if e is not None:
|
|
+ print (e)
|
|
+EOD`
|
|
+
|
|
+ # Now, for the library:
|
|
+ ac_python_library=`cat<<EOD | $PYTHON -
|
|
+
|
|
+import distutils.sysconfig
|
|
+c = distutils.sysconfig.get_config_vars()
|
|
+if 'LDVERSION' in c:
|
|
+ print ('python'+c[['LDVERSION']])
|
|
+else:
|
|
+ print ('python'+c[['VERSION']])
|
|
+EOD`
|
|
+
|
|
+ # This small piece shamelessly adapted from PostgreSQL python macro;
|
|
+ # credits goes to momjian, I think. I'd like to put the right name
|
|
+ # in the credits, if someone can point me in the right direction... ?
|
|
+ #
|
|
+ if test -n "$ac_python_libdir" -a -n "$ac_python_library"
|
|
+ then
|
|
+ # use the official shared library
|
|
+ ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
|
|
+ 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_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
|
|
+ fi
|
|
+
|
|
+ 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_LIBS by hand.
|
|
+ ])
|
|
+ fi
|
|
+ fi
|
|
+ AC_MSG_RESULT([$PYTHON_LIBS])
|
|
+ AC_SUBST([PYTHON_LIBS])
|
|
+
|
|
+ #
|
|
+ # Check for site packages
|
|
+ #
|
|
+ AC_MSG_CHECKING([for Python site-packages path])
|
|
+ if test -z "$PYTHON_SITE_PKG"; then
|
|
+ PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
|
|
+ print (distutils.sysconfig.get_python_lib(0,0));"`
|
|
+ fi
|
|
+ AC_MSG_RESULT([$PYTHON_SITE_PKG])
|
|
+ AC_SUBST([PYTHON_SITE_PKG])
|
|
+
|
|
+ #
|
|
+ # 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; \
|
|
+ conf = distutils.sysconfig.get_config_var; \
|
|
+ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
|
|
+ fi
|
|
+ AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
|
|
+ AC_SUBST(PYTHON_EXTRA_LIBS)
|
|
+
|
|
+ #
|
|
+ # 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; \
|
|
+ conf = distutils.sysconfig.get_config_var; \
|
|
+ print (conf('LINKFORSHARED'))"`
|
|
+ fi
|
|
+ AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
|
|
+ AC_SUBST(PYTHON_EXTRA_LDFLAGS)
|
|
+
|
|
+ #
|
|
+ # final check to see if everything compiles alright
|
|
+ #
|
|
+ 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_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([
|
|
+ AC_LANG_PROGRAM([[#include <Python.h>]],
|
|
+ [[Py_Initialize();]])
|
|
+ ],[pythonexists=yes],[pythonexists=no])
|
|
+ AC_LANG_POP([C])
|
|
+ # turn back to default flags
|
|
+ CPPFLAGS="$ac_save_CPPFLAGS"
|
|
+ LIBS="$ac_save_LIBS"
|
|
+ LDFLAGS="$ac_save_LDFLAGS"
|
|
+
|
|
+ AC_MSG_RESULT([$pythonexists])
|
|
+
|
|
+ if test ! "x$pythonexists" = "xyes"; then
|
|
+ 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 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.
|
|
+ ============================================================================
|
|
+ ])
|
|
+ PYTHON_VERSION=""
|
|
+ fi
|
|
+
|
|
+ #
|
|
+ # all done!
|
|
+ #
|
|
+])
|
|
--
|
|
1.8.3.1
|
|
|