]> granicus.if.org Git - graphviz/commitdiff
take python-2.7 fixes from debian/ubuntu
authorellson <devnull@localhost>
Sat, 4 Dec 2010 05:22:37 +0000 (05:22 +0000)
committerellson <devnull@localhost>
Sat, 4 Dec 2010 05:22:37 +0000 (05:22 +0000)
configure.ac
tclpkg/Makefile.am
tclpkg/gv/Makefile.am

index 376f74977011a0aaf516e66bd8d93d48c9501d83..f465225c35aad684011eb6aa6e888bd16334fd18 100644 (file)
@@ -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"
index a9ce0a63817d4006f09b71ccc5124d229e5b8b3b..a8c5a180de4fd36196c977bfb26fe3d53b9e378e 100644 (file)
@@ -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;
index c70dc69e7868bc06d31c49757d044c09db12e5a2..e8bb3cf7fa4c4decc442e2c2cdb9ba03bdb81e31 100644 (file)
@@ -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