]> granicus.if.org Git - graphviz/commitdiff
make a start at: csharp, guile, io, ocaml, php
authorellson <devnull@localhost>
Sun, 27 Mar 2005 22:52:37 +0000 (22:52 +0000)
committerellson <devnull@localhost>
Sun, 27 Mar 2005 22:52:37 +0000 (22:52 +0000)
configure.ac
graphviz.spec.in
tclpkg/gv/Makefile.am
tclpkg/gv/gv.cpp

index f2f382b7b2424730d98906420a87bc1631f68314..045142a2252d4bdfaa5174683266c94c0cdcafc1 100644 (file)
@@ -235,6 +235,54 @@ AC_SUBST(SWIG_VERSION)
 AC_SUBST(HAVE_SWIG)
 AM_CONDITIONAL(WITH_SWIG, [test "x$HAVE_SWIG" = "x1"])
 
+dnl -----------------------------------
+dnl INCLUDES and LIBS for CSHARP
+
+AC_CHECK_PROG(CSHARP,mcs,mcs)
+AM_CONDITIONAL(WITH_CSHARP, [test "x$CSHARP" != "x"])
+if test "x$CSHARP" = "x"; then
+  HAVE_CSHARP=0
+else
+  HAVE_CSHARP=1
+  CSHARP_INCLUDES=
+  CSHARP_LIBS=
+fi
+AC_SUBST(HAVE_CSHARP)
+AC_SUBST(CSHARP_INCLUDES)
+AC_SUBST(CSHARP_LIBS)
+
+dnl -----------------------------------
+dnl INCLUDES and LIBS for GUILE
+
+AC_CHECK_PROG(GUILE,guile,guile)
+AM_CONDITIONAL(WITH_GUILE, [test "x$GUILE" != "x"])
+if test "x$GUILE" = "x"; then
+  HAVE_GUILE=0
+else
+  HAVE_GUILE=1
+  GUILE_INCLUDES=
+  GUILE_LIBS=
+fi
+AC_SUBST(HAVE_GUILE)
+AC_SUBST(GUILE_INCLUDES)
+AC_SUBST(GUILE_LIBS)
+
+dnl -----------------------------------
+dnl INCLUDES and LIBS for IO
+
+AC_CHECK_PROG(IO,io,io)
+AM_CONDITIONAL(WITH_IO, [test "x$IO" != "x"])
+if test "x$IO" = "x"; then
+  HAVE_IO=0
+else
+  HAVE_IO=1
+  IO_INCLUDES=
+  IO_LIBS=
+fi
+AC_SUBST(HAVE_IO)
+AC_SUBST(IO_INCLUDES)
+AC_SUBST(IO_LIBS)
+
 dnl -----------------------------------
 dnl INCLUDES and LIBS for JAVA
 
@@ -251,6 +299,22 @@ AC_SUBST(HAVE_JAVA)
 AC_SUBST(JAVA_INCLUDES)
 AC_SUBST(JAVA_LIBS)
 
+dnl -----------------------------------
+dnl INCLUDES and LIBS for OCAML
+
+AC_CHECK_PROG(OCAML,ocaml,ocaml)
+AM_CONDITIONAL(WITH_OCAML, [test "x$OCAML" != "x"])
+if test "x$OCAML" = "x"; then
+  HAVE_OCAML=0
+else
+  HAVE_OCAML=1
+  OCAML_INCLUDES=
+  OCAML_LIBS=
+fi
+AC_SUBST(HAVE_OCAML)
+AC_SUBST(OCAML_INCLUDES)
+AC_SUBST(OCAML_LIBS)
+
 dnl -----------------------------------
 dnl INCLUDES and LIBS for PERL
 
@@ -268,6 +332,22 @@ AC_SUBST(HAVE_PERL)
 AC_SUBST(PERL_INCLUDES)
 AC_SUBST(PERL_LIBS)
 
+dnl -----------------------------------
+dnl INCLUDES and LIBS for PHP
+
+AC_CHECK_PROG(PHP,php,php)
+AM_CONDITIONAL(WITH_PHP, [test "x$PHP" != "x"])
+if test "x$PHP" = "x"; then
+  HAVE_PHP=0
+else
+  HAVE_PHP=1
+  PHP_INCLUDES="-I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM"
+  PHP_LIBS=
+fi
+AC_SUBST(HAVE_PHP)
+AC_SUBST(PHP_INCLUDES)
+AC_SUBST(PHP_LIBS)
+
 dnl -----------------------------------
 dnl INCLUDES and LIBS for PYTHON
 
index 75663a661ccb57eb25c446b4b3a114e07985b1a9..7ab74932f9818048a7444cca5e5e4396dd1e1140 100644 (file)
@@ -43,8 +43,12 @@ of graphs (as in nodes and edges, not as in barcharts).
 %{_bindir}/*
 %dir %{_libdir}/%{name}
 %{_libdir}/%{name}/*.so.*
-%{_libdir}/%{name}/*.py
-%{_libdir}/%{name}/*.pm
+%{_libdir}/%{name}/gv.ml
+%{_libdir}/%{name}/gv.mli
+%{_libdir}/%{name}/gv.php
+%{_libdir}/%{name}/php_gv.h
+%{_libdir}/%{name}/gv.pm
+%{_libdir}/%{name}/gv.py
 %{_libdir}/%{name}/*.java
 %{_mandir}/man1/*.1*
 %dir %{_datadir}/%{name}
index ad98f696f07aed0f03c961f6b22c0b4e6a4ee292..c6dd76cf49430670135ded320390e2fa59d38354 100644 (file)
@@ -6,7 +6,7 @@ AM_CPPFLAGS = \
        -I$(top_srcdir)/lib/common \
        -I$(top_srcdir)/lib/graph \
        -I$(top_srcdir)/lib/cdt \
-       -I$(top_srcdir)/lib/pathplan @PERL_INCLUDES@ @PYTHON_INCLUDES@ @RUBY_INCLUDES@ @TCL_INCLUDES@ 
+       -I$(top_srcdir)/lib/pathplan $(PERL_INCLUDES) $(PHP_INCLUDES) $(PYTHON_INCLUDES) $(RUBY_INCLUDES) $(TCL_INCLUDES) 
 
 LIBS =  @LIBS@ -lc
 
@@ -28,12 +28,25 @@ endif
 noinst_HEADERS = gv.h
 
 pkglib_LTLIBRARIES = 
+if WITH_SWIG
+if WITH_CSHARP
+pkglib_LTLIBRARIES += libgv_csharp.la
+endif
+if WITH_GUILE
+pkglib_LTLIBRARIES += libgv_guile.la
+endif
+#if WITH_IO
+#pkglib_LTLIBRARIES += libgv_io.la
+#endif
 if WITH_JAVA
 pkglib_LTLIBRARIES += libgv_java.la
 endif
 if WITH_PERL
 pkglib_LTLIBRARIES += libgv_perl.la
 endif
+if WITH_PHP
+pkglib_LTLIBRARIES += libgv_php.la
+endif
 if WITH_PYTHON
 pkglib_LTLIBRARIES += libgv_python.la
 endif
@@ -43,6 +56,16 @@ endif
 if WITH_TCL
 pkglib_LTLIBRARIES += libgv_tcl.la
 endif
+endif
+
+libgv_csharp_la_SOURCES = gv.cpp gv_csharp.cpp plugins.c 
+libgv_csharp_la_LIBADD = $(BASELIBS) @CSHARP_LIBS@
+
+libgv_guile_la_SOURCES = gv.cpp gv_guile.cpp plugins.c 
+libgv_guile_la_LIBADD = $(BASELIBS) @GUILE_LIBS@
+
+#libgv_io_la_SOURCES = gv.cpp gv_io.cpp plugins.c 
+#libgv_io_la_LIBADD = $(BASELIBS) @IO_LIBS@
 
 libgv_java_la_SOURCES = gv.cpp gv_java.cpp plugins.c 
 libgv_java_la_LIBADD = $(BASELIBS) @JAVA_LIBS@
@@ -50,6 +73,9 @@ libgv_java_la_LIBADD = $(BASELIBS) @JAVA_LIBS@
 libgv_perl_la_SOURCES = gv.cpp gv_perl.cpp plugins.c 
 libgv_perl_la_LIBADD = $(BASELIBS) @PERL_LIBS@
 
+libgv_php_la_SOURCES = gv.cpp gv_php.cpp plugins.c 
+libgv_php_la_LIBADD = $(BASELIBS) @PHP_LIBS@
+
 libgv_python_la_SOURCES = gv.cpp gv_python.cpp plugins.c 
 libgv_python_la_LIBADD = $(BASELIBS) @PYTHON_LIBS@
 
@@ -59,12 +85,27 @@ libgv_ruby_la_LIBADD = $(BASELIBS) @RUBY_LIBS@
 libgv_tcl_la_SOURCES = gv.cpp gv_tcl.cpp plugins.c 
 libgv_tcl_la_LIBADD = $(BASELIBS) @TCL_LIBS@
 
+gv_csharp.cpp: gv.i
+       $(SWIG) -c++ -csharp -o gv_csharp.cpp gv.i
+
+gv_guile.cpp: gv.i
+       $(SWIG) -c++ -guile -o gv_guile.cpp gv.i
+
+#gv_io.cpp: gv.i
+#      $(SWIG) -c++ -io -o gv_io.cpp gv.i
+
 gv_java.cpp: gv.i
        $(SWIG) -c++ -java -o gv_java.cpp gv.i
 
+gv_ocaml.cpp: gv.i
+       $(SWIG) -c++ -ocaml -o gv_ocaml.cpp gv.i
+
 gv_perl.cpp: gv.i
        $(SWIG) -c++ -perl -o gv_perl.cpp gv.i
 
+gv_php.cpp: gv.i
+       $(SWIG) -c++ -php -o gv_php.cpp gv.i
+
 gv_python.cpp: gv.i
        $(SWIG) -c++ -python -o gv_python.cpp gv.i
 
@@ -76,6 +117,10 @@ gv_tcl.cpp: gv.i
 
 install-exec-hook:
        cp $(top_srcdir)/tclpkg/gv/*.java $(DESTDIR)/$(libdir)/@PACKAGE@/
+       cp $(top_srcdir)/tclpkg/gv/*.ml $(DESTDIR)/$(libdir)/@PACKAGE@/
+       cp $(top_srcdir)/tclpkg/gv/*.mli $(DESTDIR)/$(libdir)/@PACKAGE@/
+       cp $(top_srcdir)/tclpkg/gv/*.php $(DESTDIR)/$(libdir)/@PACKAGE@/
+       cp $(top_srcdir)/tclpkg/gv/php_gv.h $(DESTDIR)/$(libdir)/@PACKAGE@/
        cp $(top_srcdir)/tclpkg/gv/*.pm $(DESTDIR)/$(libdir)/@PACKAGE@/
        cp $(top_srcdir)/tclpkg/gv/*.py $(DESTDIR)/$(libdir)/@PACKAGE@/
        
@@ -86,7 +131,29 @@ pkgIndex.tcl: libgv_tcl.la
        sh $(top_srcdir)/tclpkg/mkpkgindex.sh libgv_tcl.la gv $(VERSION)
 endif
 
-test: test_java test_perl test_python test_ruby test_tcl
+test: test_csharp test_guile test_java test_ocaml \
+       test_perl test_php test_python test_ruby test_tcl
+
+test_csharp: libgv_csharp.la
+       (cd csharp; \
+               ln -fs ../.libs/libgv_csharp.so libgv.so; \
+               cp -f ../*.csharp .; \
+               $(CSHARP) *.csharp; \
+               LD_LIBRARY_PATH=. csharp test)
+
+test_guile: libgv_guile.la
+       (cd guile; \
+               ln -fs ../.libs/libgv_guile.so libgv.so; \
+               cp -f ../*.guile .; \
+               guilec *.guile; \
+               LD_LIBRARY_PATH=. guile test)
+
+#test_io: libgv_io.la
+#      (cd io; \
+#              ln -fs ../.libs/libgv_io.so libgv.so; \
+#              cp -f ../*.io .; \
+#              ioc *.io; \
+#              LD_LIBRARY_PATH=. io test)
 
 test_java: libgv_java.la
        (cd java; \
@@ -95,17 +162,31 @@ test_java: libgv_java.la
                javac *.java; \
                LD_LIBRARY_PATH=. java test)
 
+test_ocaml: libgv_ocaml.la
+       (cd ocaml; \
+               ln -fs ../.libs/libgv_ocaml.so libgv.so; \
+               cp -f ../*.ocaml .; \
+               ocamlc *.ocaml; \
+               LD_LIBRARY_PATH=. ocaml test)
+
 test_perl: libgv_perl.la
        (cd perl; \
                ln -fs ../.libs/libgv_perl.so gv.so; \
                cp -f ../*.pl ../*.pm .; \
                ./test.pl)
 
+test_php: libgv_php.la
+       (cd php; \
+               ln -fs ../.libs/libgv_php.so libgv.so; \
+               cp -f ../*.php .; \
+               $(PHP) *.php; \
+               php test)
+
 test_python: libgv_python.la
        (cd python; \
                ln -fs ../.libs/libgv_python.so _gv.so; \
                cp -f ../*.py .; \
-               PYTHONPATH=. ./test.py)
+               PYTHONPATH=. $PYTHON test.py)
 
 test_ruby: libgv_ruby.la
        (cd ruby; \
@@ -120,8 +201,11 @@ test_tcl: libgv_tcl.la
                ./test.tcl)
 
 EXTRA_DIST = gv.i \
-       SWIGTYPE_p_Agraph_t.java SWIGTYPE_p_Agnode_t.java SWIGTYPE_p_Agedge_t.java \
-       gv.java gvJNI.java gv.pm gv.py
+       SWIG*.java gv.java gvJNI.java \
+       gv.pm \
+       gv.php php_gv.h \
+       gv.py \
+       gv.ml gv.mli
        
 
 CLEANFILES = java/*.dot java/*.png java/SWIG*.java java/gv*.java java/*.class java/*.so \
@@ -130,5 +214,10 @@ CLEANFILES = java/*.dot java/*.png java/SWIG*.java java/gv*.java java/*.class ja
        ruby/gv.so ruby/*.dot ruby/*.png \
        tcl/libgv_tcl.so tcl/*.dot tcl/*.png pkgIndex.tcl
 
-DISTCLEANFILES = gv_java.cpp gv_perl.cpp gv_python.cpp gv_ruby.cpp gv_tcl.cpp \
-       SWIG*.java gv.java gvJNI.java gv.pm gv.py
+DISTCLEANFILES = gv_java.cpp SWIG*.java gv.java gvJNI.java \
+       gv_perl.cpp gv.pm \
+       gv_php.cpp gv.php php_gv.h \
+       gv_python.cpp gv.py \
+       gv.ml gv.mli \
+       gv_ruby.cpp \
+       gv_tcl.cpp
index a1ab782d7cca09436d1163a596eedb93afbae7c5..82ea050340816875ab8f7f22b2c2d6d0cc635044 100644 (file)
@@ -105,13 +105,18 @@ Agraph_t *readgraph(char *filename)
     return g;
 }
 
+/* create a subgraph of an existing graph */
 Agraph_t *graph(Agraph_t *g, char *name)
 {
+    if (!gvc)
+       return NULL;
     return agsubg(g, name);
 }
 
 Agnode_t *node(Agraph_t *g, char *name)
 {
+    if (!gvc)
+       return NULL;
     return agnode(g, name);
 }