diff options
author | Reinhard Tartler <siretart@tauware.de> | 2010-02-28 21:45:42 +0100 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2010-02-28 21:45:42 +0100 |
commit | e7ad9c5caca8d2985d94bedeef5cfb06265d329a (patch) | |
tree | 44c9c589d29172a9603eb495775ca2bdf0b736da | |
parent | 5833839b8ecfb7c8ca13347bed65b625a29c9804 (diff) | |
download | lcd4linux-e7ad9c5caca8d2985d94bedeef5cfb06265d329a.tar.gz |
update ac_python_devel.m4 from autoconf-archive package. This allows
to build with python2.6. Closes: #571493
-rw-r--r-- | ac_python_devel.m4 | 263 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 199 insertions, 66 deletions
diff --git a/ac_python_devel.m4 b/ac_python_devel.m4 index f68af7d..5183450 100644 --- a/ac_python_devel.m4 +++ b/ac_python_devel.m4 @@ -1,62 +1,93 @@ -dnl $Id: ac_python_devel.m4 729 2007-01-14 13:44:38Z michael $ -dnl $URL: https://ssl.bulix.org/svn/lcd4linux/branches/0.10.1/ac_python_devel.m4 $ - - -dnl @synopsis AC_PYTHON_DEVEL([version]) -dnl -dnl Checks for Python and tries to get the include path to 'Python.h'. -dnl It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) output -dnl variables. Also exports $(PYTHON_EXTRA_LIBS) and -dnl $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code. -dnl -dnl You can search for some particular version of Python by passing a -dnl parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". -dnl Please note that you *have* to pass also an operator along with the -dnl version to match, and pay special attention to the single quotes -dnl surrounding the version number. -dnl -dnl If the user wants to employ a particular version of Python, she can -dnl now pass to configure the PYTHON_VERSION environment variable. This -dnl is only limited by the macro parameter set by the packager. -dnl -dnl This macro should work for all versions of Python >= 2.1.0. You can -dnl disable the check for the python version by setting the -dnl PYTHON_NOVERSIONCHECK environment variable to something else than -dnl the empty string. -dnl -dnl If you need to use this macro for an older Python version, please -dnl contact the authors. We're always open for feedback. -dnl -dnl @category InstalledPackages -dnl @author Sebastian Huber <sebastian-huber@web.de> -dnl @author Alan W. Irwin <irwin@beluga.phys.uvic.ca> -dnl @author Rafael Laboissiere <laboissiere@psy.mpg.de> -dnl @author Andrew Collier <colliera@nu.ac.za> -dnl @author Matteo Settenvini <matteo@member.fsf.org> -dnl @version 2006-02-05 -dnl @license GPLWithACException +# =========================================================================== +# 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. +# +# LICENSE +# +# Copyright (c) 2009 Sebastian Huber <sebastian-huber@web.de> +# Copyright (c) 2009 Alan W. Irwin <irwin@beluga.phys.uvic.ca> +# Copyright (c) 2009 Rafael Laboissiere <rafael@laboissiere.net> +# Copyright (c) 2009 Andrew Collier <colliera@ukzn.ac.za> +# Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org> +# Copyright (c) 2009 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 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 + 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, string; \ - ver = string.split(sys.version)[[0]]; \ - print ver >= '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]) @@ -68,31 +99,32 @@ 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. -])dnl +]) else AC_MSG_RESULT([skip at user request]) fi - else + 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, string; \ - ver = string.split(sys.version)[[0]]; \ - print ver $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. + 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 +interpreter in your system path, please pass the PYTHON_VERSION variable to configure. See ``configure --help'' for reference. -])dnl +]) + PYTHON_VERSION="" fi fi @@ -108,6 +140,7 @@ variable to configure. See ``configure --help'' for reference. AC_MSG_ERROR([cannot import Python module "distutils". Please check your Python installation. The error was: $ac_distutils_result]) + PYTHON_VERSION="" fi # @@ -116,7 +149,7 @@ $ac_distutils_result]) 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();"` + print (distutils.sysconfig.get_python_inc ());"` if test -n "${python_path}"; then python_path="-I$python_path" fi @@ -132,23 +165,83 @@ $ac_distutils_result]) 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 *; \ - from string import join; \ - print join(get_config_vars('VERSION'))"` - if test "$py_version" == "[None]"; then + 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 * +ret = '' +for e in get_config_vars ('VERSION'): + if (e != None): + ret += e +print (ret) +EOD` + + if test -z "$ac_python_version"; then if test -n "$PYTHON_VERSION"; then - py_version=$PYTHON_VERSION + ac_python_version=$PYTHON_VERSION else - py_version=`$PYTHON -c "import sys; \ - print sys.version[[:3]]"` + ac_python_version=`$PYTHON -c "import sys; \ + print (sys.version[[:3]])"` fi fi - PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \ - from string import join; \ - print '-L' + get_python_lib(0,1), \ - '-lpython';"`$py_version - 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 +for e in distutils.sysconfig.get_config_vars ('LIBDIR'): + if e != None: + print (e) + break +EOD` + + # Before checking for libpythonX.Y, we need to know + # the extension the OS we're on uses for libraries + # (we take the first one, if there's more than one fix me!): + ac_python_soext=`$PYTHON -c \ + "import distutils.sysconfig; \ + print (distutils.sysconfig.get_config_vars('SO')[[0]])"` + + # Now, for the library: + ac_python_soname=`$PYTHON -c \ + "import distutils.sysconfig; \ + print (distutils.sysconfig.get_config_vars('LDLIBRARY')[[0]])"` + + # Strip away extension from the end to canonicalize its name: + ac_python_library=`echo "$ac_python_soname" | sed "s/${ac_python_soext}$//"` + + # 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" \ + -a x"$ac_python_library" != x"$ac_python_soname" + 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" + 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" + fi + + if test -z "PYTHON_LDFLAGS"; 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. + ]) + fi + fi AC_MSG_RESULT([$PYTHON_LDFLAGS]) AC_SUBST([PYTHON_LDFLAGS]) @@ -158,7 +251,7 @@ $ac_distutils_result]) 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);"` + print (distutils.sysconfig.get_python_lib(0,0));"` fi AC_MSG_RESULT([$PYTHON_SITE_PKG]) AC_SUBST([PYTHON_SITE_PKG]) @@ -170,7 +263,7 @@ $ac_distutils_result]) 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')"` + print (conf('LOCALMODLIBS') + ' ' + conf('LIBS'))"` fi AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) AC_SUBST(PYTHON_EXTRA_LIBS) @@ -182,8 +275,46 @@ $ac_distutils_result]) if test -z "$PYTHON_EXTRA_LDFLAGS"; then PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ - print conf('LINKFORSHARED')"` + 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 + LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS" + 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" + + 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 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 + + # + # all done! + # ]) diff --git a/debian/changelog b/debian/changelog index 01f0c9c..71c461b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ lcd4linux (0.10.1~rc2-3) unstable; urgency=low * Add $remote-fs dependencies to init script. Reported by lintian. + * update ac_python_devel.m4 from autoconf-archive package. This allows + to build with python2.6. Closes: #571493 -- Reinhard Tartler <siretart@tauware.de> Sun, 28 Feb 2010 21:11:54 +0100 |