a Single File Graph layout library in c and Java or python

mooigraph 4436e6b04b added screenshot преди 3 години
data 68992cfd1a sfg update преди 4 години
gcc ad290ade6b update readme преди 3 години
hypersfg 84da8f24e2 added qt5 gui program to see the graph layout routines преди 3 години
java d1fff930d8 The Java version of sfg runs now преди 4 години
java2 933f2d482f extra java info added преди 4 години
java3 d0e93a3114 library update преди 4 години
javascript bab0fb384c new javascript преди 4 години
qsfg 34fcee8acd added screenshot преди 3 години
wasm 47ab7436c5 md update преди 4 години
.gitignore 43e5b0cacc adding nodes/edges преди 4 години
LICENSE 0123c5a6e0 Initial commit преди 4 години
Lindent 9ac6613d17 initial преди 4 години
Makefile f8d7fe81de updated sfg.c преди 3 години
README.md 224c5f014d updated qt graph editor преди 3 години
README1 d3d429a0e3 wasm sfg.c added преди 4 години
TODO 8b828bca2f wasm support added преди 4 години
cflow-csf-c.txt daf58b3f20 generate callgraph from C using GNU cflow преди 4 години
d4dag.c ca072a83b9 added d4 files преди 3 години
d4dag.css ca072a83b9 added d4 files преди 3 години
d4dag.h ca072a83b9 added d4 files преди 3 години
d4dag.html ca072a83b9 added d4 files преди 3 години
d4dag.js ca072a83b9 added d4 files преди 3 години
d4dagdemo.js ca072a83b9 added d4 files преди 3 години
dmake 9ac6613d17 initial преди 4 години
gen-callgraph.sh c7d5b28de3 generate callgraph from Linux elf binary shell script added преди 4 години
gml4gtk-calltree-program.png 5661d39696 added screenshot преди 4 години
hypersfg-screenshot.png 84da8f24e2 added qt5 gui program to see the graph layout routines преди 3 години
mkedges.sh c7d5b28de3 generate callgraph from Linux elf binary shell script added преди 4 години
objcg.peg ad5c43d157 added new call graph and callgraph generation tool in C преди 4 години
objlibcg.peg daf58b3f20 generate callgraph from C using GNU cflow преди 4 години
qsfg.png 022d520d94 sfg works with qt5 gui in dir qsfg преди 3 години
qsfg2.png 224c5f014d updated qt graph editor преди 3 години
screenshot.png 786b8cc9f5 swig to python,perl,tcl works преди 4 години
screenshotps.png 3a01e1b767 svg drawing output from sfgdemo преди 4 години
sfg-c-callgraph-program.gv 901298435f added example callgraph using calltree program преди 4 години
sfg-callgraph-from-asm.gv 915588f7df added callgraph from sfg.c from the assembly output преди 4 години
sfg-callgraph.gv ad5c43d157 added new call graph and callgraph generation tool in C преди 4 години
sfg-cflow-callfraph.gv daf58b3f20 generate callgraph from C using GNU cflow преди 4 години
sfg.c 921df43bb8 updated sfg.c malloc/free wrappers преди 3 години
sfg.c.scallgraph.gv f8d7fe81de updated sfg.c преди 3 години
sfg.h 921df43bb8 updated sfg.c malloc/free wrappers преди 3 години
sfgdemo-callgraph.gv c7d5b28de3 generate callgraph from Linux elf binary shell script added преди 4 години
sfgdemo.c 478581351b python script runs now преди 4 години
sfgdemo.c.scallgraph.gv f8d7fe81de updated sfg.c преди 3 години
sfgdemo.ps 2c2e246814 Javascript version works преди 4 години
sfgdemo.py 1e12d7cf93 using python svg image output added преди 4 години
sfgdemo.sh 478581351b python script runs now преди 4 години
sfgdemo.svg 478581351b python script runs now преди 4 години
sfgdemo.txt b4757a5703 screenshot added преди 4 години
sfgs.c 1e12d7cf93 using python svg image output added преди 4 години
tree2dotx.sh daf58b3f20 generate callgraph from C using GNU cflow преди 4 години

README.md

sfgraph

a Single File Graph layout library in c and Java https://graphviewer.nl

See sfgdemo.c or sfg.h and the README1 file for details

In directory hypersfg is GNU GPL Free QT5 gui program using this graph library to see it.

screenshot

The directory wasm is about compiling sfg.c to wasm and run sugiyama graph layout in the browser see this test version

To make the demo program sfgdemo type make

To cleanup use make clean

To indent the source use make indent

To check for memory leaks use make valgrind

To make libsfg.a use make sfga

To make libsfg.so use make sfgaso

To make python module with swig use make swigpython

To make perl module with swig use make swigperl

To make c++ with swig use make swigcplus

To make go with swig use make swiggo

To make java with swig use make swigjava

Also javascript, php, modula3 and more interfacing to sfg.c can be generated with swig software

Using llvm compiler run scan-build-8 make

It compiles to javascript using emscripten emcc compiler

The python script sfgdemo.py runs graph layout using sfg.c

In the java directory is the Java source and a jar file

To run the Java version of sfg use: java -jar sfg.jar

screenshot

Because sfg.c only needs calloc()/free() it is usable for embedded software

To create callgraph as graphviz dot format the GNU cflow program can be used

cflow sfg.c | ./tree2x.sh >sfg-callgraph-cflow.gv

Also the calltree program can be used from schilytools at https://sourceforge.net/projects/schilytools/

Example output of calltree -dot sfg.c is in sfg-c-callgraph-program.gv

calltree

In directory gcc are patches for gcc compiler

The next iteration of sfg.c is called d4dag.c

In directory qsfg is a modified qvge qt5 graph editor running sfg.c graph layouter like this:

qsfg

qsfg