+++ /dev/null
-#include <time.h>
-
-double My_variable = 3.0;
-
-int fact(int n) {
- if (n <= 1)
- return 1;
- else
- return n*fact(n-1);
-}
-
-int my_mod(int x, int y) {
- return (x%y);
-}
-
-char *get_time() {
- time_t ltime;
- time(<ime);
- return ctime(<ime);
-}
+++ /dev/null
-package example
+++ /dev/null
-%module example
-%{
-/* Put header files here or function declarations like below */
-extern double My_variable;
-extern int fact(int n);
-extern int my_mod(int x, int y);
-extern char *get_time();
-%}
-extern double My_variable;
-extern int fact(int n);
-extern int my_mod(int x, int y);
-extern char *get_time();
-
GO=$(GOROOT)/bin/go
-LDFLAGS="-r `pwd`/gv -r `pwd`/example"
test: test.go prep
- $(GO) build -x -ldflags=$(LDFLAGS) test.go
+ $(GO) build -x -work -ldflags='-extldflags=/usr/lib64/libgvc.so' test.go
.PHONY: prep
prep:
mkdir -p gv
-# swig -c++ -go -intgosize 32 -o gv/gv_go.cpp ../../gv.i
-# sed -e 's/#include "gvc.h"/#include <graphviz\/gvc.h>/' <../../gv.cpp >gv/gv.cpp
-# sed -e 's/#include "gvc.h"/#include <graphviz\/gvc.h>/' <gv/gv_go.cpp >gv/gv_go.cpp2
-# mv gv/gv_go.cpp2 gv/gv_go.cpp
- sed -e 's/#include "gvc.h"/#include <graphviz\/gvc.h>/' <../../gv.i >gv/gv.swig
+ sed -e 's/#include "gvc.h"/#include <graphviz\/gvc.h>/' <../../gv.i >gv/gv.swigcxx
sed -e 's/#include "gvc.h"/#include <graphviz\/gvc.h>/' \
-e 's/DEMAND_LOADING/1/' <../../gv.cpp >gv/gv.cpp
echo "package gv" >gv/gv.go
clean:
- rm -rf test gv */*.so
+ rm -rf test gv
package main
-import (
- "fmt"
- "example"
- "gv"
-)
-
+import ( "gv" )
func main() {
- fmt.Printf("Hello, world. fact(2) = %v\n", example.Fact(2))
- G = gv.Digraph()
+ var g gv.Agraph_t
+ var n, m gv.Agnode_t
+// var e gv.Agedge_t
+ g = gv.Digraph("G")
+ n = gv.Node(g, "hello")
+ m = gv.Node(g, "world")
+ gv.Edge(n, m)
+ gv.Write(g, "hello.out")
}