| From aa0f7a8d59a9bbd646203d3f14e39e217961f725 Mon Sep 17 00:00:00 2001 |
| From: Gilles Dartiguelongue <eva@gentoo.org> |
| Date: Wed, 11 Nov 2015 17:49:07 +0100 |
| Subject: [PATCH] Simplify python setup in autoconf |
| |
| AM_PATH_PYTHON does most of the job without using pkg-config as expected |
| from the rest of the autoconf script. |
| --- |
| Makefile.am | 14 +++++-- |
| configure.ac | 119 ++++++++++++++--------------------------------------- |
| python/Makefile.am | 28 ++++--------- |
| 3 files changed, 49 insertions(+), 112 deletions(-) |
| |
| diff --git a/Makefile.am b/Makefile.am |
| index ff10f574..65decb3c 100644 |
| --- a/Makefile.am |
| +++ b/Makefile.am |
| @@ -2,9 +2,13 @@ SUBDIRS = \ |
| libxslt \ |
| libexslt \ |
| xsltproc \ |
| - doc \ |
| - $(PYTHON_SUBDIR) \ |
| - tests |
| + doc |
| + |
| +if WITH_PYTHON |
| +SUBDIRS += python |
| +endif |
| + |
| +SUBDIRS += tests |
| |
| DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests |
| |
| @@ -51,7 +55,9 @@ tests: dummy |
| @echo '## Running the regression test suite' |
| @(cd tests ; $(MAKE) -s tests) |
| @(cd xsltproc ; $(MAKE) -s tests) |
| - @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) -s tests ; fi) |
| +if WITH_PYTHON |
| + @(cd python ; $(MAKE) -s tests) |
| +endif |
| |
| valgrind: |
| @echo '## Running the regression tests under Valgrind' |
| diff --git a/configure.ac b/configure.ac |
| index d6aa3664..0a538944 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -293,90 +293,37 @@ dnl |
| dnl check for python |
| dnl |
| |
| -PYTHON_VERSION= |
| -PYTHON_INCLUDES= |
| -PYTHON_SITE_PACKAGES= |
| -pythondir= |
| -AC_ARG_WITH(python, [ --with-python[=DIR] Build Python bindings if found]) |
| -if test "$with_python" != "no" ; then |
| - if test -x "$with_python/bin/python" |
| - then |
| - echo Found python in $with_python/bin/python |
| - PYTHON="$with_python/bin/python" |
| - else |
| - if test -x "$with_python" |
| - then |
| - echo Found python in $with_python |
| - PYTHON="$with_python" |
| - else |
| - if test -x "$PYTHON" |
| - then |
| - echo Found python in environment PYTHON=$PYTHON |
| - with_python=`$PYTHON -c "import sys; print sys.exec_prefix"` |
| - else |
| - AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5) |
| - fi |
| - fi |
| - fi |
| - if test "$PYTHON" != "" |
| - then |
| - echo "PYTHON is pointing at $PYTHON" |
| - PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"` |
| - echo Found Python version $PYTHON_VERSION |
| - LIBXML2_PYTHON=`$PYTHON -c "try : import libxml2 ; print 1 |
| -except: print 0"` |
| - if test "$LIBXML2_PYTHON" = "1" |
| - then |
| - echo Found libxml2-python module |
| - else |
| - echo Warning: Missing libxml2-python |
| - fi |
| - fi |
| - if test "$PYTHON_VERSION" != "" |
| - then |
| - if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \ |
| - -d $with_python/lib/python$PYTHON_VERSION/site-packages |
| - then |
| - PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION |
| - PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages' |
| - else |
| - if test -r $prefix/include/python$PYTHON_VERSION/Python.h |
| - then |
| - PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION |
| - PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages' |
| - else |
| - if test -r /usr/include/python$PYTHON_VERSION/Python.h |
| - then |
| - PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION |
| - PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages' |
| - else |
| - echo could not find python$PYTHON_VERSION/Python.h |
| - fi |
| - fi |
| - if test ! -d "$PYTHON_SITE_PACKAGES" |
| - then |
| - PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"` |
| - fi |
| - fi |
| - PYTHON_LIBS=`python$PYTHON_VERSION-config --libs` |
| - fi |
| - if test "$with_python" != "" |
| - then |
| - pythondir='$(PYTHON_SITE_PACKAGES)' |
| - else |
| - pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages' |
| - fi |
| -fi |
| -AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "") |
| -if test "$PYTHON_INCLUDES" != "" |
| -then |
| - PYTHON_SUBDIR=python |
| -else |
| - PYTHON_SUBDIR= |
| -fi |
| -AC_SUBST(pythondir) |
| -AC_SUBST(PYTHON_SUBDIR) |
| -AC_SUBST(PYTHON_LIBS) |
| +AC_ARG_WITH([python], |
| + AS_HELP_STRING([--with-python], [Build Python bindings if found]) |
| +) |
| + |
| +AS_IF([test "$with_python" = "yes"], |
| + [AM_PATH_PYTHON |
| + AC_PATH_TOOL([PYTHON_CONFIG], [python$PYTHON_VERSION-config], [no]) |
| + AS_IF([test "$PYTHON_CONFIG" = "no"], |
| + [AC_PATH_TOOL([PYTHON_CONFIG], [python-config], [no])]) |
| + AS_IF([test "$PYTHON_CONFIG" != "no"], |
| + [PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags` |
| + PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags` |
| + PYTHON_LIBS=`$PYTHON_CONFIG --libs`], |
| + [AC_MSG_ERROR([Missing python development files.])]) |
| + AC_MSG_CHECKING([libxml2 module in $PYTHON]) |
| + LIBXML2_PYTHON=`$PYTHON -c "import sys; |
| +try: |
| + import libxml2 |
| + sys.stdout.write('1') |
| +except: |
| + sys.stdout.write('0')"` |
| + AS_IF([test "$LIBXML2_PYTHON" = "1"], |
| + [AC_MSG_RESULT([yes])], |
| + [AC_MSG_RESULT([no]) |
| + AC_MSG_WARN([libxml2 python module not found, expect runtime errors])]) |
| + ]) |
| + |
| +AM_CONDITIONAL([WITH_PYTHON], [test "$with_python" = "yes"]) |
| +AC_SUBST([PYTHON_CFLAGS]) |
| +AC_SUBST([PYTHON_LDFLAGS]) |
| +AC_SUBST([PYTHON_LIBS]) |
| |
| AC_ARG_WITH(crypto, [ --with-crypto Add crypto support to exslt (on)]) |
| WITH_CRYPTO=0 |
| @@ -678,10 +625,6 @@ AC_SUBST(PYTHONSODV) |
| AC_SUBST(XML_CONFIG) |
| AC_SUBST(LIBXML_LIBS) |
| AC_SUBST(LIBXML_CFLAGS) |
| -AC_SUBST(PYTHON) |
| -AC_SUBST(PYTHON_VERSION) |
| -AC_SUBST(PYTHON_INCLUDES) |
| -AC_SUBST(PYTHON_SITE_PACKAGES) |
| |
| XSLT_LIBDIR='-L${libdir}' |
| XSLT_INCLUDEDIR='-I${includedir}' |
| diff --git a/python/Makefile.am b/python/Makefile.am |
| index fa58b78f..3a5ecd6a 100644 |
| --- a/python/Makefile.am |
| +++ b/python/Makefile.am |
| @@ -5,9 +5,9 @@ SUBDIRS= . tests |
| |
| AM_CFLAGS = $(LIBXML_CFLAGS) |
| |
| -DOCS_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION) |
| +docsdir = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION) |
| # libxsltclass.txt is generated |
| -DOCS = TODO |
| +dist_docs_DATA = TODO |
| |
| EXTRA_DIST = \ |
| libxslt.c \ |
| @@ -16,10 +16,7 @@ EXTRA_DIST = \ |
| libxml_wrap.h \ |
| libxslt_wrap.h \ |
| libxsl.py \ |
| - libxslt-python-api.xml \ |
| - $(DOCS) |
| - |
| -libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -module -avoid-version |
| + libxslt-python-api.xml |
| |
| if WITH_PYTHON |
| mylibs = \ |
| @@ -28,31 +25,22 @@ mylibs = \ |
| |
| all-local: libxslt.py |
| |
| -python_LTLIBRARIES = libxsltmod.la |
| +python_PYTHON = libxslt.py |
| +pyexec_LTLIBRARIES = libxsltmod.la |
| |
| libxsltmod_la_CPPFLAGS = \ |
| - -I$(PYTHON_INCLUDES) \ |
| -I$(top_srcdir)/libxslt \ |
| -I$(top_srcdir) \ |
| - -I../libexslt |
| + -I$(top_srcdir)/libexslt \ |
| + $(PYTHON_CFLAGS) |
| libxsltmod_la_SOURCES = libxslt.c types.c |
| nodist_libxsltmod_la_SOURCES = libxslt-py.c |
| libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS) |
| +libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version |
| |
| libxslt.py: $(srcdir)/libxsl.py libxsltclass.py |
| cat $(srcdir)/libxsl.py libxsltclass.py > $@ |
| |
| -install-data-local: |
| - $(MKDIR_P) $(DESTDIR)$(pythondir) |
| - $(INSTALL) -m 0644 libxslt.py $(DESTDIR)$(pythondir) |
| - $(MKDIR_P) $(DESTDIR)$(DOCS_DIR) |
| - @(for doc in $(DOCS) ; \ |
| - do $(INSTALL) -m 0644 $(srcdir)/$$doc $(DESTDIR)$(DOCS_DIR) ; done) |
| - |
| -uninstall-local: |
| - rm -f $(DESTDIR)$(pythondir)/libxslt.py |
| - rm -rf $(DESTDIR)$(DOCS_DIR) |
| - |
| GENERATE = generator.py |
| API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml |
| GENERATED= libxsltclass.py \ |
| -- |
| 2.14.1 |
| |