from distutils import sysconfig
if sys.argv[1] == "archlib":
- print sysconfig.get_python_lib(1,1)
+ print(sysconfig.get_python_lib(1,1))
elif sys.argv[1] == "lib":
- print sysconfig.get_python_lib(0,1)
+ print(sysconfig.get_python_lib(0,1))
elif sys.argv[1] == "archsitelib":
- print sysconfig.get_python_lib(1,0)
+ print(sysconfig.get_python_lib(1,0))
elif sys.argv[1] == "sitelib":
- print sysconfig.get_python_lib(0,0)
+ print(sysconfig.get_python_lib(0,0))
fi
if test "x$LUA_INCLUDES" = "x" -a "x$LUA_LIBS" = "x" ; then
- PKGCONFIG=""
- AC_CHECK_PROGS(PKGCONFIG, pkg-config)
- if test "x$PKGCONFIG" != "x"; then
+ if test "x$PKG_CONFIG" != "x"; then
AC_MSG_CHECKING(for Lua headers and libraries with pkg-config)
echo
for l in "$lua_suffix" "" "52" "5.2" "51" "5.1" "50" "5.0" ; do
- pkgconfig_lua_found=`$PKGCONFIG --exists lua$l 2>/dev/null`
+ pkgconfig_lua_found=`$PKG_CONFIG --exists lua$l 2>/dev/null`
if test "x$?" = "x0" ; then
- LUA_VERSION=`$PKGCONFIG --modversion lua$l`
- LUA_INCLUDES="$LUA_CFLAGS "`$PKGCONFIG --cflags lua$l`
- LUA_LIBS="$LUA_LFLAGS "`$PKGCONFIG --libs lua$l`
- LUA_INSTALL_DIR="/usr/lib$LIBPOSTFIX/lua/`$PKGCONFIG --variable=V lua`"
+ LUA_VERSION=`$PKG_CONFIG --modversion lua$l`
+ LUA_INCLUDES="$LUA_CFLAGS "`$PKG_CONFIG --cflags lua$l`
+ LUA_LIBS="$LUA_LFLAGS "`$PKG_CONFIG --libs lua$l`
+ LUA_INSTALL_DIR="/usr/lib$LIBPOSTFIX/lua/`$PKG_CONFIG --variable=V lua`"
- pkgconfig_lualib_found=`$PKGCONFIG --exists lualib$l 2>/dev/null`
+ pkgconfig_lualib_found=`$PKG_CONFIG --exists lualib$l 2>/dev/null`
if test "x$?" = "x0"; then
- LUA_INCLUDES="$LUA_CFLAGS "`$PKGCONFIG --cflags lualib$l`
- LUA_LIBS="$LUA_LFLAGS "`$PKGCONFIG --libs lualib$l`
+ LUA_INCLUDES="$LUA_CFLAGS "`$PKG_CONFIG --cflags lualib$l`
+ LUA_LIBS="$LUA_LFLAGS "`$PKG_CONFIG --libs lualib$l`
fi
break
fi
dnl INCLUDES and LIBS for PYTHON
AC_ARG_ENABLE(python,
- [AS_HELP_STRING([--enable-python=yes],[python language bindings])],
- [], [enable_python=yes])
+ [AS_HELP_STRING([--enable-python=no],[python language bindings])],
+ [], [enable_python=no])
if test "x$enable_python" != "xyes"; then
- use_python="No (disabled)"
+ use_python="No (disabled by default - use explicit python2 or python3)"
else
if test "x$use_swig" != "xYes"; then
use_python="No (swig not available)"
fi
AM_CONDITIONAL(WITH_PYTHON, [test "x$use_python" = "xYes"])
+dnl -----------------------------------
+dnl INCLUDES and LIBS for PYTHON2
+
+AC_ARG_ENABLE(python2,
+ [AS_HELP_STRING([--enable-python2=yes],[python2 language bindings])],
+ [], [enable_python2=yes])
+
+if test "x$enable_python2" != "xyes"; then
+ use_python2="No (disabled)"
+else
+ if test "x$use_swig" != "xYes"; then
+ use_python2="No (swig not available)"
+ else
+ if test `$SWIG -help 2>&1 | $EGREP -c '\-python *- Generate'` = 0; then
+ use_python="No (swig does not support -python option)"
+ else
+ AC_CHECK_PROG(PYTHON2,python2,python2)
+ if test "x$PYTHON2" = "x"; then
+ use_python2="No (python2 not available)"
+ else
+ PYTHON2_VERSION=`$PYTHON2 -c "import sys; print('%d.%d' % sys.version_info[[0:2]])"`
+ if test "x$PYTHON2_VERSION" = "x"; then
+ PYTHON2=
+ else
+ PYTHON2_VERSION_MAJOR=`echo $PYTHON2_VERSION | cut -d '.' -f 1`
+ PYTHON2_VERSION_MINOR=`echo $PYTHON2_VERSION | cut -d '.' -f 2`
+ PYTHON2_VERSION_SHORT=$PYTHON2_VERSION_MAJOR.$PYTHON2_VERSION_MINOR
+ if test $PYTHON2_VERSION_MAJOR -lt 3; then
+ if test $PYTHON2_VERSION_MAJOR -lt 2; then
+ PYTHON2=
+ else
+ if test $PYTHON2_VERSION_MINOR -lt 3; then
+ PYTHON2=
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "x$PYTHON2" = "x"; then
+ use_python2="No (python2 is too old)"
+ else
+ if test "x$PKG_CONFIG" != "x"; then
+ AC_MSG_CHECKING(for Python2 headers and libraries with pkg-config)
+ pkgconfig_python2_found=`$PKG_CONFIG --exists python-$PYTHON2_VERSION 2>/dev/null`
+ if test "x$?" = "x0" ; then
+ PYTHON2_INCLUDES="$PYTHON2_CFLAGS "`$PKG_CONFIG --cflags python-$PYTHON2_VERSION`
+ PYTHON2_LIBS="$PYTHON2_LFLAGS "`$PKG_CONFIG --libs python-$PYTHON2_VERSION`
+ fi
+ fi
+ PYTHON2_PREFIX=`$PYTHON2 -c "import sys; print(sys.prefix)"`
+ PYTHON2_INSTALL_DIR="`$PYTHON2 $srcdir/config/config_python.py archsitelib`"
+ save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS=$save_CPPFLAGS
+ if test "x$PYTHON2" != "x"; then
+ use_python2="Yes"
+ AC_SUBST([PYTHON2_INSTALL_DIR])
+ AC_SUBST([PYTHON2_INCLUDES])
+ AC_SUBST([PYTHON2_LIBS])
+ fi
+ fi
+ fi
+ fi
+fi
+AM_CONDITIONAL(WITH_PYTHON2, [test "x$use_python2" = "xYes"])
+
+dnl -----------------------------------
+dnl INCLUDES and LIBS for PYTHON3
+
+AC_ARG_ENABLE(python3,
+ [AS_HELP_STRING([--enable-python3=yes],[python3 language bindings])],
+ [], [enable_python3=yes])
+
+if test "x$enable_python3" != "xyes"; then
+ use_python3="No (disabled)"
+else
+ if test "x$use_swig" != "xYes"; then
+ use_python3="No (swig not available)"
+ else
+ if test `$SWIG -help 2>&1 | $EGREP -c '\-python *- Generate'` = 0; then
+ use_python="No (swig does not support -python option)"
+ else
+ AC_CHECK_PROG(PYTHON3,python3,python3)
+ if test "x$PYTHON3" = "x"; then
+ use_python3="No (python3 not available)"
+ else
+ PYTHON3_VERSION=`$PYTHON3 -c "import sys; print('%d.%d' % sys.version_info[[0:2]])"`
+ if test "x$PYTHON3_VERSION" = "x"; then
+ PYTHON3=
+ else
+ PYTHON3_VERSION_MAJOR=`echo $PYTHON3_VERSION | cut -d '.' -f 1`
+ PYTHON3_VERSION_MINOR=`echo $PYTHON3_VERSION | cut -d '.' -f 2`
+ PYTHON3_VERSION_SHORT=$PYTHON3_VERSION_MAJOR.$PYTHON3_VERSION_MINOR
+ if test $PYTHON3_VERSION_MAJOR -lt 3; then
+ if test $PYTHON3_VERSION_MAJOR -lt 2; then
+ PYTHON3=
+ else
+ if test $PYTHON3_VERSION_MINOR -lt 3; then
+ PYTHON3=
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test "x$PYTHON3" = "x"; then
+ use_python3="No (python3 is too old)"
+ else
+ if test "x$PKG_CONFIG" != "x"; then
+ AC_MSG_CHECKING(for Python3 headers and libraries with pkg-config)
+ pkgconfig_python3_found=`$PKG_CONFIG --exists python-$PYTHON3_VERSION 2>/dev/null`
+ if test "x$?" = "x0" ; then
+ PYTHON3_INCLUDES="$PYTHON3_CFLAGS "`$PKG_CONFIG --cflags python-$PYTHON3_VERSION`
+ PYTHON3_LIBS="$PYTHON3_LFLAGS "`$PKG_CONFIG --libs python-$PYTHON3_VERSION`
+ fi
+ fi
+ PYTHON3_PREFIX=`$PYTHON3 -c "import sys; print(sys.prefix)"`
+ PYTHON3_INSTALL_DIR="`$PYTHON3 $srcdir/config/config_python.py archsitelib`"
+ save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $PYTHON3_INCLUDES"
+ AC_CHECK_HEADER(Python.h,,[
+ use_python3="No (missing header)"
+ PYTHON3=
+ ])
+ CPPFLAGS=$save_CPPFLAGS
+ if test "x$PYTHON3" != "x"; then
+ use_python3="Yes"
+ AC_SUBST([PYTHON3_INSTALL_DIR])
+ AC_SUBST([PYTHON3_INCLUDES])
+ AC_SUBST([PYTHON3_LIBS])
+ fi
+ fi
+ fi
+ fi
+fi
+AM_CONDITIONAL(WITH_PYTHON3, [test "x$use_python3" = "xYes"])
+
dnl -----------------------------------
dnl INCLUDES and LIBS for PYTHON23
echo " gv_perl: $use_perl"
echo " gv_php: $use_php"
echo " gv_python: $use_python"
+echo " gv_python2: $use_python2"
+echo " gv_python3: $use_python3"
echo " gv_python23: $use_python23"
echo " gv_python24: $use_python24"
echo " gv_python25: $use_python25"
BuildRequires: ruby ruby-devel
%define GUILE 1
BuildRequires: guile-devel
-%define PYTHON 1
-BuildRequires: python python-devel
%define JAVA 1
BuildRequires: java-devel
%define _QT 1
%define R_LANG 1
BuildRequires: R-devel swig >= 1.3.33 perl-libs
%endif
+
%if %fedora >= 16
%define WEBP 1
BuildRequires: libwebp-devel
%endif
+
%if %fedora >= 19
%define SEPARATE_LICENSE 1
%endif
+
%if %fedora >= 21
%define _GO 1
BuildRequires: golang >= 1.2 gcc-go swig >= 3.0.2
%endif
+
%define PHP 1
-BuildRequires: php-devel
-# disable PHP7 in fc25 until swig supports it - requires swig-3.0.11
+BuildRequires: php-devel swig >= 3.0.11
+
+%if %fedora < 23
+%define PYTHON 1
+BuildRequires: python python-devel
+%endif
+%if %fedora >= 23
+%define PYTHON2 1
+BuildRequires: python2 python2-devel
+%define PYTHON3 1
+BuildRequires: python3 python3-devel
+%endif
+
%endif
# What a meal PHP makes of versioning !!!
%defattr(-,root,root,-)
%{_libdir}/python*/*
%{_datadir}/graphviz/demo/*.py*
-%{_mandir}/man3/*.3python.*
+%{_mandir}/man3/gv.3python
%exclude %{_libdir}/graphviz/python/*.so
%exclude %{_libdir}/graphviz/python/*.py*
%endif
+#-- graphviz-lang-python2 rpm -------------------------------------------
+%if 0%{?PYTHON2}
+%package lang-python2
+Group: Applications/Multimedia
+Summary: Python extension for graphviz
+Requires: %{name} = %{version}-%{release}, python2
+Obsoletes: %{name}-python
+Obsoletes: %{name}-lang-python
+
+%description lang-python2
+Python extension for graphviz.
+
+%files lang-python2
+%defattr(-,root,root,-)
+%{_libdir}/python2*/*
+# %{_datadir}/graphviz/demo/*.py*
+%{_mandir}/man3/gv.3python2
+%exclude %{_libdir}/graphviz/python2/*.so
+%exclude %{_libdir}/graphviz/python2/*.py*
+%endif
+
+#-- graphviz-lang-python3 rpm -------------------------------------------
+%if 0%{?PYTHON3}
+%package lang-python3
+Group: Applications/Multimedia
+Summary: Python extension for graphviz
+Requires: %{name} = %{version}-%{release}, python3
+Obsoletes: %{name}-python
+Obsoletes: %{name}-lang-python
+
+%description lang-python3
+Python extension for graphviz.
+
+%files lang-python3
+%defattr(-,root,root,-)
+%{_libdir}/python3*/*
+# %{_datadir}/graphviz/demo/*.py*
+%{_mandir}/man3/gv.3python3
+%exclude %{_libdir}/graphviz/python3/*.so
+%exclude %{_libdir}/graphviz/python3/*.py*
+%endif
+
#-- graphviz-lang-R rpm ---------------------------------------------
%if 0%{?R_LANG}
%package lang-R
--enable-perl%{!?PERL:=no} \
--enable-php%{!?PHP:=no} \
--enable-python%{!?PYTHON:=no} \
+ --enable-python2%{!?PYTHON2:=no} \
+ --enable-python3%{!?PYTHON3:=no} \
--enable-r%{!?R_LANG:=no} \
--enable-ruby%{!?RUBY:=no} \
--enable-tcl%{!?TCL:=no} \
pkgperldir = $(pkglibdir)/perl
pkgphpdir = $(pkglibdir)/php
pkgpythondir = $(pkglibdir)/python
+pkgpython2dir = $(pkglibdir)/python2
+pkgpython3dir = $(pkglibdir)/python3
pkgpython23dir = $(pkglibdir)/python23
pkgpython24dir = $(pkglibdir)/python24
pkgpython25dir = $(pkglibdir)/python25
echo "Skipping system installation of python binding."; \
fi
endif
+if WITH_PYTHON2
+ -mkdir -p $(DESTDIR)@PYTHON2_INSTALL_DIR@;
+ if test -w $(DESTDIR)@PYTHON2_INSTALL_DIR@; then \
+ (cd $(DESTDIR)@PYTHON2_INSTALL_DIR@; \
+ cp -f $(DESTDIR)$(pkgpython2dir)/libgv_python2.so _gv.so; \
+ cp -f $(DESTDIR)$(pkgpython2dir)/gv.py gv.py;) \
+ else \
+ echo "Warning: @PYTHON3_INSTALL_DIR@ is not writable."; \
+ echo "Skipping system installation of python2 binding."; \
+ fi
+endif
+if WITH_PYTHON3
+ -mkdir -p $(DESTDIR)@PYTHON3_INSTALL_DIR@;
+ if test -w $(DESTDIR)@PYTHON3_INSTALL_DIR@; then \
+ (cd $(DESTDIR)@PYTHON3_INSTALL_DIR@; \
+ cp -f $(DESTDIR)$(pkgpython3dir)/libgv_python3.so _gv.so; \
+ cp -f $(DESTDIR)$(pkgpython3dir)/gv.py gv.py;) \
+ else \
+ echo "Warning: @PYTHON3_INSTALL_DIR@ is not writable."; \
+ echo "Skipping system installation of python3 binding."; \
+ fi
+endif
if WITH_PYTHON23
-mkdir -p $(DESTDIR)@PYTHON23_INSTALL_DIR@;
if test -w $(DESTDIR)@PYTHON23_INSTALL_DIR@; then \
-rm -rf $(DESTDIR)@PHP_INSTALL_DIR@/gv.so $(DESTDIR)@PHP_INSTALL_DATADIR@/gv.php;
-rm -rf $(DESTDIR)$(pkgpythondir);
-rm -rf $(DESTDIR)@PYTHON_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON_INSTALL_DIR@/gv.py;
+ -rm -rf $(DESTDIR)$(pkgpython2dir);
+ -rm -rf $(DESTDIR)@PYTHON2_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON2_INSTALL_DIR@/gv.py;
+ -rm -rf $(DESTDIR)$(pkgpython3dir);
+ -rm -rf $(DESTDIR)@PYTHON3_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON3_INSTALL_DIR@/gv.py;
-rm -rf $(DESTDIR)$(pkgpython23dir);
-rm -rf $(DESTDIR)@PYTHON23_INSTALL_DIR@/_gv.so $(DESTDIR)@PYTHON_INSTALL_DIR@/gv.py;
-rm -rf $(DESTDIR)$(pkgpython24dir);
gv_python.cpp: gv.i
$(SWIG) -c++ -python -o gv_python.cpp $(srcdir)/gv.i
+pkgpython2dir = $(pkglibdir)/python2
+PYTHON2_data = gv.py
+nodist_libgv_python2_la_SOURCES = gv_python2.cpp $(PYTHON2_data)
+libgv_python2_la_SOURCES = $(BASESOURCES) gv_dummy_init.c
+libgv_python2_la_LIBADD = $(BASELIBS) $(PYTHON2_LIBS)
+libgv_python2_la_LDFLAGS = -module -avoid-version
+libgv_python2_la_CPPFLAGS = $(BASECPPFLAGS) $(PYTHON2_INCLUDES)
+$(PYTHON2_data): gv_python2.cpp
+gv_python2.cpp: gv.i
+ $(SWIG) -c++ -python -o gv_python2.cpp $(srcdir)/gv.i
+
+pkgpython3dir = $(pkglibdir)/python3
+PYTHON3_data = gv.py
+nodist_libgv_python3_la_SOURCES = gv_python3.cpp $(PYTHON3_data)
+libgv_python3_la_SOURCES = $(BASESOURCES) gv_dummy_init.c
+libgv_python3_la_LIBADD = $(BASELIBS) $(PYTHON3_LIBS)
+libgv_python3_la_LDFLAGS = -module -avoid-version
+libgv_python3_la_CPPFLAGS = $(BASECPPFLAGS) $(PYTHON3_INCLUDES)
+$(PYTHON3_data): gv_python3.cpp
+gv_python3.cpp: gv.i
+ $(SWIG) -c++ -python -o gv_python3.cpp $(srcdir)/gv.i
+
pkgpython23dir = $(pkglibdir)/python23
PYTHON23_data = gv.py
nodist_libgv_python23_la_SOURCES = gv_python23.cpp $(PYTHON23_data)
endif
if WITH_PYTHON
pkgpython_DATA = $(PYTHON_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython_LTLIBRARIES = libgv_python.la
DEVTSTS += test_python
endif
+if WITH_PYTHON2
+pkgpython2_DATA = $(PYTHON2_data)
+man_MANS += gv.3python2
+pdf_DATA += gv.3python2.pdf
+pkgpython2_LTLIBRARIES = libgv_python2.la
+DEVTSTS += test_python2
+endif
+if WITH_PYTHON3
+pkgpython3_DATA = $(PYTHON3_data)
+man_MANS += gv.3python3
+pdf_DATA += gv.3python3.pdf
+pkgpython3_LTLIBRARIES = libgv_python3.la
+DEVTSTS += test_python3
+endif
if WITH_PYTHON23
pkgpython23_DATA = $(PYTHON23_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython23_LTLIBRARIES = libgv_python23.la
#DEVTSTS += test_python23
endif
if WITH_PYTHON24
pkgpython24_DATA = $(PYTHON24_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython24_LTLIBRARIES = libgv_python24.la
#DEVTSTS += test_python24
endif
if WITH_PYTHON25
pkgpython25_DATA = $(PYTHON25_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython25_LTLIBRARIES = libgv_python25.la
#DEVTSTS += test_python25
endif
if WITH_PYTHON26
pkgpython26_DATA = $(PYTHON26_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython26_LTLIBRARIES = libgv_python26.la
#DEVTSTS += test_python26
endif
if WITH_PYTHON27
pkgpython27_DATA = $(PYTHON27_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython27_LTLIBRARIES = libgv_python27.la
#DEVTSTS += test_python27
endif
if WITH_PYTHON34
pkgpython34_DATA = $(PYTHON34_data)
-py_mans = gv.3python
-py_data = gv.3python.pdf
+man_MANS += gv.3python
+pdf_DATA += gv.3python.pdf
pkgpython34_LTLIBRARIES = libgv_python34.la
#DEVTSTS += test_python34
endif
-man_MANS += $(py_mans)
-pdf_DATA += $(py_data)
if WITH_R
pkgR_DATA = $(R_data)
man_MANS += gv.3r
endif
man = gv.3sharp gv.3go gv.3guile gv.3io gv.3java gv.3lua gv.3ocaml \
- gv.3perl gv.3php gv.3python gv.3r gv.3ruby gv.3tcl
+ gv.3perl gv.3php gv.3python gv.3python2 gv.3python3 gv.3r gv.3ruby gv.3tcl
pdf = gv.3sharp.pdf gv.3go.pdf gv.3guile.pdf gv.3io.pdf gv.3java.pdf gv.3lua.pdf \
- gv.3ocaml.pdf gv.3perl.pdf gv.3php.pdf gv.3python.pdf gv.3r.pdf \
- gv.3ruby.pdf gv.3tcl.pdf
+ gv.3ocaml.pdf gv.3perl.pdf gv.3php.pdf gv.3python.pdf gv.3python2.pdf \
+ gv.3python3.pdf gv.3r.pdf gv.3ruby.pdf gv.3tcl.pdf
$(man): gv.i gv_doc_writer.tcl gv_doc_template.tcl gv_doc_langs.tcl
gv.3python.pdf: gv.3python
- $(GROFF) -Tps -man gv.3python | $(PS2PDF) - - >gv.3python.pdf
+gv.3python2.pdf: gv.3python2
+ - $(GROFF) -Tps -man gv.3python2 | $(PS2PDF) - - >gv.3python2.pdf
+
+gv.3python3.pdf: gv.3python3
+ - $(GROFF) -Tps -man gv.3python3 | $(PS2PDF) - - >gv.3python3.pdf
+
gv.3r.pdf: gv.3r
- $(GROFF) -Tps -man gv.3r | $(PS2PDF) - - >gv.3r.pdf
if WITH_PYTHON
(cd $(DESTDIR)$(pkgpythondir); rm -f _gv.so; $(LN_S) libgv_python.so _gv.so;)
endif
+if WITH_PYTHON2
+ (cd $(DESTDIR)$(pkgpython2dir); rm -f _gv.so; $(LN_S) libgv_python.so _gv.so;)
+endif
+if WITH_PYTHON3
+ (cd $(DESTDIR)$(pkgpython3dir); rm -f _gv.so; $(LN_S) libgv_python.so _gv.so;)
+endif
if WITH_PYTHON23
(cd $(DESTDIR)$(pkgpython23dir); rm -f _gv.so; $(LN_S) libgv_python23.so _gv.so;)
endif
ln -fs ../$(srcdir)/*.gv ../$(srcdir)/*.py .; \
PYTHONPATH=. $(PYTHON) test.py)
+.PHONY: test_python2
+test_python2: libgv_python2.la
+ -(mkdir -p test_python2; cd test_python2; \
+ ln -fs ../.libs/libgv_python2.so _gv.so; \
+ ln -fs ../$(srcdir)/*.gv ../$(srcdir)/*.py .; \
+ PYTHONPATH=. $(PYTHON2) test.py)
+
+.PHONY: test_python3
+test_python3: libgv_python3.la
+ -(mkdir -p test_python3; cd test_python3; \
+ ln -fs ../.libs/libgv_python3.so _gv.so; \
+ ln -fs ../$(srcdir)/*.gv ../$(srcdir)/*.py .; \
+ PYTHONPATH=. $(PYTHON3) test.py)
+
.PHONY: test_R
test_R: libgv_R.la
-(mkdir -p test_R; cd test_R; \
gv_perl.cpp $(PERL_data) \
gv_php.cpp $(PHP_data) \
gv_python.cpp $(PYTHON_data) gv.pyc \
+ gv_python2.cpp $(PYTHON2_data) gv.pyc \
+ gv_python3.cpp $(PYTHON3_data) gv.pyc \
gv_python23.cpp $(PYTHON23_data) gv.pyc \
gv_python24.cpp $(PYTHON24_data) gv.pyc \
gv_python25.cpp $(PYTHON25_data) gv.pyc \
USAGE {
}
}
+ python2 {
+ TYPES {
+ {Agraph_t* g} graph_handle
+ {Agraph_t* sg} subgraph_handle
+ {Agnode_t* n} node_handle
+ {Agnode_t* t} tail_node_handle
+ {Agnode_t* h} head_node_handle
+ {Agedge_t* e} edge_handle
+ {Agsym_t* a} attr_handle
+ {char* gne} type
+ {char* name} name
+ {char* tname} tail_name
+ {char* hname} head_name
+ {char* attr} attr_name
+ {char* val} attr_value
+ {const char* filename} filename
+ {char* engine} engine
+ {char* string} string
+ {char** outdata} outdata
+ {char* format} format
+ {FILE* f} channel
+ {void** data} data_handle
+ Agraph_t* graph_handle
+ Agnode_t* node_handle
+ Agedge_t* edge_handle
+ Agsym_t* attribute_handle
+ char* string
+ {const char*} string
+ char** outdata
+ FILE* channel
+ bool bool
+ int int
+ void** data_handle
+ void {}
+ }
+ SYNTAX {
+ gv. ( {, } {);}
+ }
+ SYNOPSIS {
+ {#!/usr/bin/python2}
+ {import sys}
+ {import gv}
+ }
+ USAGE {
+ }
+ }
+ python3 {
+ TYPES {
+ {Agraph_t* g} graph_handle
+ {Agraph_t* sg} subgraph_handle
+ {Agnode_t* n} node_handle
+ {Agnode_t* t} tail_node_handle
+ {Agnode_t* h} head_node_handle
+ {Agedge_t* e} edge_handle
+ {Agsym_t* a} attr_handle
+ {char* gne} type
+ {char* name} name
+ {char* tname} tail_name
+ {char* hname} head_name
+ {char* attr} attr_name
+ {char* val} attr_value
+ {const char* filename} filename
+ {char* engine} engine
+ {char* string} string
+ {char** outdata} outdata
+ {char* format} format
+ {FILE* f} channel
+ {void** data} data_handle
+ Agraph_t* graph_handle
+ Agnode_t* node_handle
+ Agedge_t* edge_handle
+ Agsym_t* attribute_handle
+ char* string
+ {const char*} string
+ char** outdata
+ FILE* channel
+ bool bool
+ int int
+ void** data_handle
+ void {}
+ }
+ SYNTAX {
+ gv. ( {, } {);}
+ }
+ SYNOPSIS {
+ {#!/usr/bin/python3}
+ {import sys}
+ {import gv}
+ }
+ USAGE {
+ }
+ }
R {
TYPES {
Agraph_t* SWIGTYPE_p_Agraph_t