From: ellson Date: Sat, 4 Dec 2010 05:22:37 +0000 (+0000) Subject: take python-2.7 fixes from debian/ubuntu X-Git-Tag: LAST_LIBGRAPH~32^2~1134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c490fdbaaa909f60a699694d7541dd3de1b5dc56;p=graphviz take python-2.7 fixes from debian/ubuntu --- diff --git a/configure.ac b/configure.ac index 376f74977..f465225c3 100644 --- a/configure.ac +++ b/configure.ac @@ -1354,6 +1354,70 @@ else fi AM_CONDITIONAL(WITH_PYTHON26, [test "x$use_python26" = "xYes"]) +dnl ----------------------------------- +dnl INCLUDES and LIBS for PYTHON27 + +AC_ARG_ENABLE(python27, + [AS_HELP_STRING([--enable-python27=no],[python27 language bindings])], + [], [enable_python27=no]) + +if test "x$enable_python27" != "xyes"; then + use_python27="No (disabled by default - for multiversion installs)" +else + if test "x$use_swig" != "xYes"; then + use_python27="No (swig not available)" + else + if test `$SWIG -help 2>&1 | $GREP -c '\-python *- Generate'` = 0; then + use_python27="No (swig does not support -python option)" + else + AC_CHECK_PROG(PYTHON27,python2.7,python2.7) + if test "x$PYTHON27" = "x"; then + use_python27="No (python27 not available)" + else + PYTHON27_VERSION=`$PYTHON27 -V 2>&1 | $GREP Python | cut -d ' ' -f 2` + if test "x$PYTHON27_VERSION" = "x"; then + PYTHON27= + else + PYTHON27_VERSION_MAJOR=`echo $PYTHON27_VERSION | cut -d '.' -f 1` + PYTHON27_VERSION_MINOR=`echo $PYTHON27_VERSION | cut -d '.' -f 2` + PYTHON27_VERSION_SHORT=$PYTHON27_VERSION_MAJOR.$PYTHON27_VERSION_MINOR + if test $PYTHON27_VERSION_MAJOR -lt 3; then + if test $PYTHON27_VERSION_MAJOR -lt 2; then + PYTHON27= + else + if test $PYTHON27_VERSION_MINOR -lt 5; then + PYTHON27= + fi + fi + fi + fi + fi + if test "x$PYTHON27" = "x"; then + use_python27="No (python2.7 is too old)" + else + PYTHON27_PREFIX=`$PYTHON27 -c "import sys; print sys.prefix"` + PYTHON27_INCLUDES=-I$PYTHON27_PREFIX/include/python$PYTHON27_VERSION_SHORT + PYTHON24_LIBS="-lpython$PYTHON_VERSION_SHORT" + PYTHON27_INSTALL_DIR="`$PYTHON27 $srcdir/config/config_python.py archsitelib`" + save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $PYTHON27_INCLUDES" + AC_CHECK_HEADER(Python.h,,[ + use_python27="No (missing header)" + PYTHON27= + ]) + CPPFLAGS=$save_CPPFLAGS + if test "x$PYTHON27" != "x"; then + use_python27="Yes" + AC_SUBST(PYTHON27_INSTALL_DIR) + AC_SUBST(PYTHON27_INCLUDES) + AC_SUBST(PYTHON27_LIBS) + fi + fi + fi + fi +fi +AM_CONDITIONAL(WITH_PYTHON27, [test "x$use_python27" = "xYes"]) + dnl ----------------------------------- dnl INCLUDES and LIBS for R @@ -3251,6 +3315,7 @@ echo " gv_python23: $use_python23" echo " gv_python24: $use_python24" echo " gv_python25: $use_python25" echo " gv_python26: $use_python26" +echo " gv_python27: $use_python27" echo " gv_R: $use_r" echo " gv_ruby: $use_ruby" echo " gv_tcl: $use_gv_tcl" diff --git a/tclpkg/Makefile.am b/tclpkg/Makefile.am index a9ce0a638..a8c5a180d 100644 --- a/tclpkg/Makefile.am +++ b/tclpkg/Makefile.am @@ -13,6 +13,8 @@ pkgpythondir = $(pkglibdir)/python pkgpython23dir = $(pkglibdir)/python23 pkgpython24dir = $(pkglibdir)/python24 pkgpython25dir = $(pkglibdir)/python25 +pkgpython26dir = $(pkglibdir)/python26 +pkgpython27dir = $(pkglibdir)/python27 pkgRdir = $(pkglibdir)/R pkgrubydir = $(pkglibdir)/ruby pkgtcldir = $(pkglibdir)/tcl @@ -117,6 +119,28 @@ if WITH_PYTHON25 echo "Skipping system installation of python25 binding."; \ fi endif +if WITH_PYTHON26 + -mkdir -p $(DESTDIR)@PYTHON26_INSTALL_DIR@; + if test -w $(DESTDIR)@PYTHON26_INSTALL_DIR@; then \ + (cd $(DESTDIR)@PYTHON26_INSTALL_DIR@; \ + $(LN_S) -f $(pkgpython26dir)/libgv_python26.so _gv.so; \ + $(LN_S) -f $(pkgpython26dir)/gv.py gv.py;) \ + else \ + echo "Warning: @PYTHON26_INSTALL_DIR@ is not writable."; \ + echo "Skipping system installation of python26 binding."; \ + fi +endif +if WITH_PYTHON27 + -mkdir -p $(DESTDIR)@PYTHON27_INSTALL_DIR@; + if test -w $(DESTDIR)@PYTHON27_INSTALL_DIR@; then \ + (cd $(DESTDIR)@PYTHON27_INSTALL_DIR@; \ + $(LN_S) -f $(pkgpython27dir)/libgv_python27.so _gv.so; \ + $(LN_S) -f $(pkgpython27dir)/gv.py gv.py;) \ + else \ + echo "Warning: @PYTHON27_INSTALL_DIR@ is not writable."; \ + echo "Skipping system installation of python27 binding."; \ + fi +endif if WITH_RUBY -mkdir -p $(DESTDIR)@RUBY_INSTALL_DIR@; if test -w $(DESTDIR)@RUBY_INSTALL_DIR@; then \ @@ -160,6 +184,10 @@ uninstall-hook: -rm -rf $(DESTDIR)@PYTHON24_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON_INSTALL_DIR@/gv.py; rm -rf $(DESTDIR)$(pkgpython25dir); -rm -rf $(DESTDIR)@PYTHON25_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON_INSTALL_DIR@/gv.py; + rm -rf $(DESTDIR)$(pkgpython26dir); + -rm -rf $(DESTDIR)@PYTHON26_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON_INSTALL_DIR@/gv.py; + rm -rf $(DESTDIR)$(pkgpython27dir); + -rm -rf $(DESTDIR)@PYTHON27_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON_INSTALL_DIR@/gv.py; rm -rf $(DESTDIR)$(pkgRdir); rm -rf $(DESTDIR)$(pkgrubydir); -rm -rf $(DESTDIR)@RUBY_INSTALL_DIR@/gv.so; diff --git a/tclpkg/gv/Makefile.am b/tclpkg/gv/Makefile.am index c70dc69e7..e8bb3cf7f 100644 --- a/tclpkg/gv/Makefile.am +++ b/tclpkg/gv/Makefile.am @@ -202,6 +202,17 @@ libgv_python26_la_CPPFLAGS = $(BASECPPFLAGS) $(PYTHON26_INCLUDES) gv_python26.cpp: gv.i $(SWIG) -c++ -python -o gv_python26.cpp $(srcdir)/gv.i +pkgpython27dir = $(pkglibdir)/python27 +PYTHON27_data = gv.py +nodist_libgv_python27_la_SOURCES = gv_python27.cpp $(PYTHON27_data) +libgv_python27_la_SOURCES = $(BASESOURCES) gv_dummy_init.c +libgv_python27_la_LIBADD = $(BASELIBS) $(PYTHON27_LIBS) +libgv_python27_la_LDFLAGS = -module -avoid-version +libgv_python27_la_CPPFLAGS = $(BASECPPFLAGS) $(PYTHON27_INCLUDES) +# $(PYTHON_data): gv_python.cpp +gv_python27.cpp: gv.i + $(SWIG) -c++ -python -o gv_python27.cpp $(srcdir)/gv.i + pkgRdir = $(pkglibdir)/R R_data = nodist_libgv_R_la_SOURCES = gv_R.cpp $(R_data) @@ -299,41 +310,48 @@ DEVTSTS += test_php endif if WITH_PYTHON pkgpython_DATA = $(PYTHON_data) -gv_3python_man = gv.3python -gv_3python_pdf = gv.3python.pdf +py_mans ?= gv.3python +py_data ?= gv.3python.pdf pkgpython_LTLIBRARIES = libgv_python.la DEVTSTS += test_python endif if WITH_PYTHON23 pkgpython23_DATA = $(PYTHON23_data) -gv_3python_man = gv.3python -gv_3python_pdf = gv.3python.pdf +py_mans ?= gv.3python +py_data ?= gv.3python.pdf pkgpython23_LTLIBRARIES = libgv_python23.la #DEVTSTS += test_python23 endif if WITH_PYTHON24 pkgpython24_DATA = $(PYTHON24_data) -gv_3python_man = gv.3python -gv_3python_pdf = gv.3python.pdf +py_mans ?= gv.3python +py_data ?= gv.3python.pdf pkgpython24_LTLIBRARIES = libgv_python24.la #DEVTSTS += test_python24 endif if WITH_PYTHON25 pkgpython25_DATA = $(PYTHON25_data) -gv_3python_man = gv.3python -gv_3python_pdf = gv.3python.pdf +py_mans ?= gv.3python +py_data ?= gv.3python.pdf pkgpython25_LTLIBRARIES = libgv_python25.la #DEVTSTS += test_python25 endif if WITH_PYTHON26 pkgpython26_DATA = $(PYTHON26_data) -gv_3python_man = gv.3python -gv_3python_pdf = gv.3python.pdf +py_mans ?= gv.3python +py_data ?= gv.3python.pdf pkgpython26_LTLIBRARIES = libgv_python26.la #DEVTSTS += test_python26 endif -man_MANS += $(gv_3python_man) -pdf_DATA += $(gv_3python_pdf) +if WITH_PYTHON27 +pkgpython27_DATA = $(PYTHON27_data) +py_mans ?= gv.3python +py_data ?= gv.3python.pdf +pkgpython27_LTLIBRARIES = libgv_python27.la +#DEVTSTS += test_python27 +endif +man_MANS += $(py_mans) +pdf_DATA += $(py_data) if WITH_R pkgR_DATA = $(R_data) man_MANS += gv.3r @@ -355,6 +373,9 @@ pdf_DATA += gv.3tcl.pdf pkgtcl_LTLIBRARIES = libgv_tcl.la DEVTSTS += test_tcl +man_MANS += $(py_mans) +pdf_DATA += $(py_data) + all-local: pkgIndex.tcl pkgIndex.tcl: libgv_tcl.la @@ -434,6 +455,9 @@ endif if WITH_PYTHON26 (cd $(DESTDIR)$(pkgpython26dir); rm -f _gv.so; $(LN_S) libgv_python26.so _gv.so;) endif +if WITH_PYTHON27 + (cd $(DESTDIR)$(pkgpython27dir); rm -f _gv.so; $(LN_S) libgv_python27.so _gv.so;) +endif if WITH_R (cd $(DESTDIR)$(pkgRdir); rm -f gv.so; $(LN_S) libgv_R.so gv.so;) endif @@ -453,6 +477,7 @@ uninstall-hook: rm -rf $(DESTDIR)$(pkgpython24dir); rm -rf $(DESTDIR)$(pkgpython25dir); rm -rf $(DESTDIR)$(pkgpython26dir); + rm -rf $(DESTDIR)$(pkgpython27dir); rm -rf $(DESTDIR)$(pkgRdir); rm -rf $(DESTDIR)$(pkgrubydir); rm -rf $(DESTDIR)$(pkgtcldir); @@ -564,6 +589,7 @@ CLEANFILES = test_*/* pkgIndex.tcl \ gv_python24.cpp $(PYTHON24_data) gv.pyc \ gv_python25.cpp $(PYTHON25_data) gv.pyc \ gv_python26.cpp $(PYTHON26_data) gv.pyc \ + gv_python27.cpp $(PYTHON27_data) gv.pyc \ gv_R.cpp $(R_data) \ gv_ruby.cpp $(RUBY_data) \ gv_tcl.cpp $(TCL_data) pkgIndex.tcl