From 3df7b2193145a7913345a0cf0534ddaacd7f4ce3 Mon Sep 17 00:00:00 2001 From: Jeffrey Hsu Date: Sun, 19 Feb 1995 09:25:45 +0000 Subject: [PATCH] vcg - a visualization tool for compiler graphs Submitted by: Philippe Charnier --- graphics/vcg/Makefile | 15 + graphics/vcg/distinfo | 1 + graphics/vcg/files/conf | 38 + graphics/vcg/files/demo.csh | 1453 ++++++++++++++++++++++++++++++++++ graphics/vcg/files/globals.h | 417 ++++++++++ graphics/vcg/files/patch-aa | 11 + graphics/vcg/files/patch-ab | 20 + graphics/vcg/files/patch-ac | 20 + graphics/vcg/files/patch-ad | 20 + graphics/vcg/files/patch-ae | 11 + graphics/vcg/files/patch-af | 11 + graphics/vcg/files/patch-ag | 11 + graphics/vcg/files/patch-ah | 11 + graphics/vcg/files/patch-ai | 11 + graphics/vcg/files/patch-aj | 20 + graphics/vcg/files/patch-ak | 11 + graphics/vcg/files/patch-al | 11 + graphics/vcg/files/patch-am | 11 + graphics/vcg/files/patch-an | 11 + graphics/vcg/files/patch-ao | 11 + graphics/vcg/files/patch-ap | 20 + graphics/vcg/files/tMakefile | 372 +++++++++ graphics/vcg/pkg-comment | 1 + graphics/vcg/pkg-descr | 10 + graphics/vcg/pkg-plist | 12 + 25 files changed, 2540 insertions(+) create mode 100644 graphics/vcg/Makefile create mode 100644 graphics/vcg/distinfo create mode 100644 graphics/vcg/files/conf create mode 100644 graphics/vcg/files/demo.csh create mode 100644 graphics/vcg/files/globals.h create mode 100644 graphics/vcg/files/patch-aa create mode 100644 graphics/vcg/files/patch-ab create mode 100644 graphics/vcg/files/patch-ac create mode 100644 graphics/vcg/files/patch-ad create mode 100644 graphics/vcg/files/patch-ae create mode 100644 graphics/vcg/files/patch-af create mode 100644 graphics/vcg/files/patch-ag create mode 100644 graphics/vcg/files/patch-ah create mode 100644 graphics/vcg/files/patch-ai create mode 100644 graphics/vcg/files/patch-aj create mode 100644 graphics/vcg/files/patch-ak create mode 100644 graphics/vcg/files/patch-al create mode 100644 graphics/vcg/files/patch-am create mode 100644 graphics/vcg/files/patch-an create mode 100644 graphics/vcg/files/patch-ao create mode 100644 graphics/vcg/files/patch-ap create mode 100644 graphics/vcg/files/tMakefile create mode 100644 graphics/vcg/pkg-comment create mode 100644 graphics/vcg/pkg-descr create mode 100644 graphics/vcg/pkg-plist diff --git a/graphics/vcg/Makefile b/graphics/vcg/Makefile new file mode 100644 index 000000000000..422251b05a4c --- /dev/null +++ b/graphics/vcg/Makefile @@ -0,0 +1,15 @@ +# New ports collection makefile for: vcg +# Version required: 1.30.r3.17 + +DISTNAME= vcg.1.30 +DISTFILES= vcg.1.30.r3.17.tgz +MASTER_SITES= ftp://ftp.cs.uni-sb.de/pub/graphics/vcg/ + +pre-patch: + @mkdir -p ${WRKSRC}/preconf/X11ccFreeBSD + @cp ${FILESDIR}/conf ${WRKSRC}/preconf/X11ccFreeBSD + @cp ${FILESDIR}/demo.csh ${WRKSRC}/preconf/X11ccFreeBSD + @cp ${FILESDIR}/globals.h ${WRKSRC}/preconf/X11ccFreeBSD + @cp ${FILESDIR}/tMakefile ${WRKSRC}/preconf/X11ccFreeBSD + +.include diff --git a/graphics/vcg/distinfo b/graphics/vcg/distinfo new file mode 100644 index 000000000000..eff610c0d422 --- /dev/null +++ b/graphics/vcg/distinfo @@ -0,0 +1 @@ +MD5 (vcg.1.30.r3.17.tgz) = 283faf1a2cc163d5c0e4977b8ec1f658 diff --git a/graphics/vcg/files/conf b/graphics/vcg/files/conf new file mode 100644 index 000000000000..e49ee2b3eef8 --- /dev/null +++ b/graphics/vcg/files/conf @@ -0,0 +1,38 @@ +ADDINCLUDEPATHNAME|-I/usr/X11R6/include/ +ADDLIBPATHNAME|-L/usr/X11R6/lib/ +ADDLIBSNAME|-lXext -lX11 -lm +ALIGNMENTNAME|8 +ANSINAME|#undef ANSI_C +BIGLTEXNAME|not_available +BINPATHNAME|/usr/X11R6/bin +BISONNAME|not_available +BLOCKSIZENAME|1048576 +CATNAME|/bin/cat +CCLINKNAME|cc +CCNAME|cc +CFLAGSNAME|-c -O2 +CLEARNAME|/usr/bin/clear +CLINKFLAGSNAME|-o +FGREPNAME|/usr/bin/fgrep +FIGTODEVNAME|fig2dev +FIGTOPSTOTEXNAME|fig2ps2tex +FLEXNAME|not_needed +FONTALIASNAME|-*-courier-*-*-*--14-*-*-*-*-*-*-* +INPUTFOCUSNAME|#define NOINPUTFOCUS +INSTALLBINNAME|/bin/install -c -s -m 755 dummy $(BINDIR)/dummy +INSTALLDIRNAME|/bin/mkdir -p +INSTALLMANNAME|/bin/install -c -m 644 dummy $(MANDIR)/dummy +LATEXNAME|latex +LNNAME|/bin/ln +MAKEDEPENDNAME|makedepend +MAKENAME|make +MANEXTNAME|l +MANPATHNAME|/usr/X11R6/man/manl +MVNAME|/bin/mv +RMNAME|/bin/rm +SEDNAME|/usr/bin/sed +SLEEPNAME|/bin/sleep +TOUCHNAME|/usr/bin/touch +VCGNAME|xvcg +WCNAME|/usr/bin/wc +WINDOWSYSTEMNAME|#define X11 diff --git a/graphics/vcg/files/demo.csh b/graphics/vcg/files/demo.csh new file mode 100644 index 000000000000..443ea5a943e3 --- /dev/null +++ b/graphics/vcg/files/demo.csh @@ -0,0 +1,1453 @@ +#!/bin/csh +# +# SCCS-info %W% %E% +# $Id: demo.csh.tpl,v 1.9 1994/08/09 09:17:11 sander Exp sander $ +# +# ====================== Change area ============================ + +alias OUTP /bin/echo + +# ================== End of Change area ========================= + +OUTP "Configuring ..." + +set mvcgn = "../src/xvcg" + +if (! -x $mvcgn) then + set mvcgn = "`echo $BINDIR`xvcg" +endif +if (! -x $mvcgn) then + set mvcgn = "/usr/local/bin/xvcg" +endif +if (! -x $mvcgn) then + set mvcgn = "xvcg" +endif +if (! -x $mvcgn) then + OUTP "Sorry, I cannot find a " $mvcgn + exit 1 +endif + +OUTP "Vcg is" $mvcgn + +OUTP "" +loop: + OUTP "Please select the window system." + OUTP "If the VCG tool has problems with colors on " + OUTP "your display installation, please select a " + OUTP "monochromatic version even on a color screen." + OUTP "1 : X11 with colors 2 : Sunview with colors " + OUTP "3 : X11 monochromatic 4 : Sunview monochromatic" + set wsys = $< + switch ($wsys) + case 1: + alias MYVCG $mvcgn -geometry 700x700+20-20 + breaksw + case 2: + alias MYVCG $mvcgn + breaksw + case 3: + alias MYVCG $mvcgn -geometry 700x700+20-20 -nocolors + breaksw + case 4: + alias MYVCG $mvcgn -nocolors + breaksw + default: + OUTP "" + OUTP "*** invalid input ***" + goto loop + endsw + +set mycat = "/bin/cat" +set myrm = "/bin/rm" +set mysleep = "/bin/sleep" +set mysed = "/usr/bin/sed" +set mywc = "/usr/bin/wc" +set mygrep = "/usr/bin/fgrep" +set myclear = "/usr/bin/clear" + +alias CAT $mycat +alias RM $myrm +alias SLEEP $mysleep +alias SED $mysed +alias WCNT $mywc +alias GREP $mygrep +alias CLEAR $myclear + + +OUTP +OUTP "Cleanup ..." +OUTP "Test" > demoaaa.vcg +OUTP "Test" > animaaa.vcg +OUTP "Test" > rbtreeaaa.vcg +RM demo*.vcg anim*.vcg rbtree*.vcg + +OUTP "" +OUTP "Press Carriage Return key to start the demonstration ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +CLEAR +OUTP "DEMONSTRATION OF THE VCG TOOL" +OUTP "=============================" +OUTP "" +OUTP "Welcome to a tour around the VCG tool ..." +OUTP "" +OUTP "NOTE: you can leave the tour at any point by answering" +OUTP " QUIT (uppercase) on a request of input." + +OUTP "" +OUTP "In the following, we will show several visualizations" +OUTP "from different applications. Not all features of the " +OUTP "VCG tool can be demonstrated, but the important once." +OUTP "Some of the demonstrations are generated by the program" +OUTP "vcgdemomaker, others are from the directory expl, others" +OUTP "are animations." +OUTP "" +OUTP "To go from one demonstration to the next demonstration," +OUTP "you should finish the VCG tool by pressing the key q " +OUTP "or selecting the menu item Quit." +OUTP "The menu is shown when pressing the (left) mouse button" +OUTP "in the VCG window." +OUTP "Press Carriage Return key to continue ..." + +set f = $< +if ("$f" == "QUIT") goto finishup + +OUTP "The keyboard commands of the VCG tool are:" +OUTP "" +OUTP " q - quit the VCG tool" +OUTP " r - show or hide the ruler" +OUTP " f - load another file" +OUTP " g - reload the same file" +OUTP " l - display/hide labels of edges" +OUTP " 1..9 - hide/expose corresponding edge class" +OUTP " i or I or J - show info fields of nodes" +OUTP "" +OUTP "Press Carriage Return key to continue ..." +set f = $< +if ("$f" == "QUIT") goto finishup +OUTP "" +OUTP "Scrolling commands:" +OUTP "" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " o - go to the origin (0,0) " +OUTP " p - pick position with the mouse" +OUTP " P - enter position by co-ordinates" +OUTP " n - position such that a node is centered" +OUTP " e - follow an edge (center target/source)" +OUTP "" +OUTP "Scaling commands" +OUTP "" +OUTP " + or = - stretch " +OUTP " - or _ - shrink " +OUTP " 0 - (null) set scale factor to normal" +OUTP "" +OUTP "" +OUTP "Press Carriage Return key to start ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +CLEAR +OUTP "Example from the sociology: Theory of civilisation" +OUTP "--------------------------------------------------" +OUTP "This graph shows the dependencies between the " +OUTP "invention of wheels, the modern comunism and the " +OUTP "computer science, etc." +OUTP "The following graph is scaled by a factor 0.5 and" +OUTP "uses the layoutalgorithm MINBACKWARD (-D0)." +OUTP "Other possible layoutalgorithms are MINDEPTH, MAXDEPTH" +OUTP "and TREE (-D-, -D+ and -Dtree) and many more." +OUTP "" +./vcgcount < ../expl/civ.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/civ.vcg + +CLEAR +OUTP "Example: Color test" +OUTP "-------------------" +OUTP "This examples shows the default colors that are available." +OUTP "If your X11 installation has problems with colors, " +OUTP "use -nocolors. In this case, or if the display is " +OUTP "monochrom, you will not see the colors." +OUTP "" +./vcgcount < ../expl/colors.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/colors.vcg + +CLEAR +OUTP "Example: More Colors" +OUTP "--------------------" +OUTP "This examples show how to access to the color map." +OUTP "Up to 256 colors can be used at the same time." +OUTP "It is even possible to replace the default colors by" +OUTP "other red/green/blue values." +OUTP "" +./vcgcount < ../expl/morecol.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/morecol.vcg + + +CLEAR +OUTP "Example: Character set" +OUTP "----------------------" +OUTP "The VCG tool uses a fully scalable character set. This character" +OUTP "set is compatible to the ISO Latin 1 PostScript Encoding Vector" +OUTP "and contains the special national characters for the most" +OUTP "European and North American countrys." +OUTP "If the computer system does not support 8 Bit character codes," +OUTP "the special characters can be accessed by ISO code escapes." +OUTP "For instance, \\fi252 is the german umlaut ue." +OUTP "Next, we will see the character set." +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/charset.vcg + + +CLEAR +OUTP "Example: Form test" +OUTP "------------------" +OUTP "This examples shows the different forms of nodes and" +OUTP "edges that are available." +OUTP "Nodes can be stretched and shrinked individually," +OUTP "width, height, textmode and border can be set to " +OUTP "many values. Edges can be dashed or dotted, at " +OUTP "different sizes with different arrow sizes." +OUTP "" +./vcgcount < ../expl/forms.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/forms.vcg + +CLEAR +OUTP "Example: More forms" +OUTP "-------------------" +OUTP "This examples shows further forms of nodes and" +OUTP "edges that are available: boxes, ellipses, rhombs" +OUTP "and triangles." +OUTP "" +./vcgcount < ../expl/forms2.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/forms2.vcg + + +CLEAR +OUTP "Example: Ports and Arrow Modes" +OUTP "------------------------------" +OUTP "Edge arrows appear at the port of nodes. Port sharing" +OUTP "means that multiple edges may be adjacent to one port." +OUTP "This occurs, if the arrows of all these edges have the" +OUTP "same visual appearance (size, color, ...)." +OUTP "If we use port sharing, it is recommended to use only" +OUTP "a fixed set of rotated arrows. Otherwise, the port looks" +OUTP "like a thick spot since all arrows are differently rotated" +OUTP "and overlap. This is the arrow mode 'fixed'." +OUTP "If we don't use port sharing, arrows can be rotated individually." +OUTP "This is the arrow mode 'free'." +OUTP "" +OUTP "Next, we see four times the same graph. At the left examples," +OUTP "we use port sharing, but at the right examples, there is no" +OUTP "port sharing. At the upper examples, we use arrow mode fixed," +OUTP "and at the lower examples, we use arrow mode free." +OUTP "" +./vcgcount < ../expl/pshar1.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG windows at the left sides." +OUTP "Then, press q into the right VCG windows to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent ../expl/pshar1.vcg & +SLEEP 2 +MYVCG -silent ../expl/pshar3.vcg & +SLEEP 2 +MYVCG -silent ../expl/pshar2.vcg & +SLEEP 2 +MYVCG ../expl/pshar4.vcg +SLEEP 1 + + + +CLEAR +OUTP "Example: A diagram" +OUTP "------------------" +OUTP "This examples shows the influences of different computer" +OUTP "systems in the context of the development of the computer" +OUTP "Xerox Star (see Johnson, Roberts, e.a.: The Xerox Star," +OUTP "a Retrospective, IEEE Computer; 11-29, Sept. 1989)." +OUTP "We did some changes in the diagram in order to show the " +OUTP "possibilities of visualization, but not in order to " +OUTP "clarify information in the diagram." +OUTP "" +./vcgcount < ../expl/xerox.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/xerox.vcg + +CLEAR +OUTP "Example: A flow diagram" +OUTP "-----------------------" +OUTP "This examples shows a funny flow diagram about the actions" +OUTP "of a software maintainer if something does not work." +OUTP "The text is in german. If I tried to translate it, the gags" +OUTP "would probably disappear." +OUTP "One speciality here: the centers of the nodes are aligned onto" +OUTP "a raster by using the attributes xraster and yraster." +OUTP "Thus, we have many rectangular edges." +OUTP "" +./vcgcount < ../expl/softmain.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/softmain.vcg + + +CLEAR +OUTP "Example: Orthogonal layout" +OUTP "--------------------------" +OUTP "Flowcharts look much better if all edges consist of" +OUTP "orthogonal line segments. This is the orthogonal layout" +OUTP "or manhatten layout." +OUTP "For the manhatten layout, we use a special method to" +OUTP "place the nodes: the priority method with the straight" +OUTP "line detection. It is recommended to use these methods" +OUTP "when manhatten layout is switched on." +OUTP "" +OUTP "Next, we see the previous flow diagram at the left side" +OUTP "and the same diagram with manhatten layout at the right side." +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent ../expl/softmain.vcg & +SLEEP 2 +MYVCG ../expl/softmain2.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: A control flow graph of a program" +OUTP "------------------------------------------" +OUTP "This example shows the control flow graph of a program." +OUTP "The decision branches are formed by rhombs and bent nearedges." +OUTP "Nearedges are horizontal edges that constain the two adjacent" +OUTP "nodes to be placed directly neighbored at the same level." +OUTP "Bent nearedges are edges that are bent at the label, and" +OUTP "the source node and the edge label form a near edge. This gives" +OUTP "the typical appearance of decision branches." +OUTP "" +./vcgcount < ../expl/cfg.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/cfg.vcg + + +CLEAR +OUTP "Example: Another control flow graph" +OUTP "-----------------------------------" +OUTP "The next example shows another control flow graph." +OUTP "Here, the bent nearedges are simulated by some nearedges and" +OUTP "auxiliary nodes. Again, we use manhatten layout with the" +OUTP "priority method and the straight line detection." +OUTP "" +./vcgcount < ../expl/flchrt.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/flchrt.vcg + + +CLEAR +OUTP "Example: Anchorpoint test" +OUTP "-------------------------" +OUTP "This example shows how to use anchorpoints." +OUTP "It is possible to anchor an edge at each labelline" +OUTP "of a node. Nodes representing structs look nice" +OUTP "in this mode. Note but this restricts of course" +OUTP "the usage of nearedges." +OUTP "If you select one of the submenus of the menu item" +OUTP "Node Information and then pick into the large node" +OUTP "you can see how to use background text." +OUTP "" +./vcgcount < ../expl/anchors.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/anchors.vcg + + +CLEAR +OUTP "Example: More anchorpoints" +OUTP "--------------------------" +OUTP "This example shows a list of C structs. It demonstrates" +OUTP "the usage of anchorpoints for visualized debugging" +OUTP "of data structures." +OUTP "" +./vcgcount < ../expl/structs.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/structs.vcg + +CLEAR +OUTP "Example: Level test" +OUTP "-------------------" +OUTP "This examples shows how to use level specifications." +OUTP "It is possible to give the nodes arbitrary levels" +OUTP "for instance to place a node artificially on the top" +OUTP "of the graph. Normally, the following would be layouted" +OUTP "as a tree with the root at level 0. But we have specified" +OUTP "which nodes are at level 0, 1 and 2, such that the root" +OUTP "is in the center." +OUTP "" +./vcgcount < ../expl/levels.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/levels.vcg + + +CLEAR +OUTP "Example: Horizantal layer sorting" +OUTP "---------------------------------" + +OUTP "The VCG tool reorders the nodes in the levels to avoid" +OUTP "crossings. But sometimes, the writer of a graph specification" +OUTP "knows a better order of the nodes into the levels." +OUTP "He can specify this by the attribute horizontal_order at" +OUTP "the nodes. If all nodes of a level have this attribute," +OUTP "the reordering of this level is suppressed." +OUTP "" +OUTP "Warning: this feature works only for connected graphs." +OUTP "Nonconnected parts are layouted separately, such that" +OUTP "the order of the nodes of a connected component is predictable", +OUTP "at a level, but not the order of all nodes at a level." +OUTP "Is is recommended to use this feature only together with" +OUTP "level specifications, or at trees, where it is clear at" +OUTP "which level a node apprears." +OUTP "" +OUTP "Next, we see a graph where we want to have the nodes" +OUTP "sorted at the levels in alphabethic order." +OUTP "Left, we see the original graph by the standard layout" +OUTP "algorithm. Here, the ordering at the levels is arbitrary." +OUTP "At the right side, we use the attribute horizontal_order" +OUTP "on the same graph to yield an alphabethic ordering at the" +OUTP "Levels." + +OUTP "" +./vcgcount < ../expl/hsort.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent ../expl/hunsort.vcg & +SLEEP 2 +MYVCG ../expl/hsort.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: Unary tree of depth 100" +OUTP "--------------------------------" + +vcgdemomaker demo001.vcg -unarytree 100 + +OUTP "This graph is very simple. All edges have class 2." +OUTP "You can try to hide the edges, expose them or to" +OUTP "fold regions." +OUTP "" +./vcgcount < demo001.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo001.vcg + +CLEAR +OUTP "Example: Binary tree of depth 5" +OUTP "-------------------------------" + +vcgdemomaker demo002.vcg -binarytree 5 +CAT demo002.vcg | SED -e "s/xmax/shrink: 2 &/" > demo003.vcg + +OUTP "This graph is very simple. All edges have class 2." +OUTP "Ary-trees look very nice if we use a layout_downfactor." +OUTP "Here, we used layout_downfactor: 8." +OUTP "" +./vcgcount < demo003.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo003.vcg + +CLEAR +OUTP "Example: Binary tree of depth 5" +OUTP "-------------------------------" + +CAT demo003.vcg | SED -e "s/layout_downfactor: 8/layout_downfactor: 1/" > demo004.vcg + +OUTP "To compare with, we show the same binary tree with" +OUTP "layout_downfactor: 1." +OUTP "" +./vcgcount < demo004.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo004.vcg + + +CLEAR +OUTP "Example: Layout of trees" +OUTP "-------------------------" + +OUTP "Beside the normal layout algorithm, there is a specialized" +OUTP "algorithm TREE, that lays out trees even without specifying" +OUTP "a layout_downfactor." +OUTP "This specialized algorithm can be used for all graphs that" +OUTP "can be layouted like downward trees, i.e. their edges form" +OUTP "unshared branches." +OUTP "This specialized algorithm is often faster than then normal." +OUTP "algorithm with layout_downfactor." + +OUTP "Left, we see a syntax tree by the standard layout algorithm." +OUTP "At the right side, we see the same tree with the specialized" +OUTP "algorithm for trees." + +OUTP "" +./vcgcount < ../expl/tree1.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent ../expl/tree1.vcg & +SLEEP 2 +MYVCG ../expl/tree2.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: More trees" +OUTP "-------------------" + +OUTP "Trees look very nice, if a special version of the manhatten" +OUTP "layout method is used: the single line manhatten layout." +OUTP "Here, all horizontal edge segments share the same" +OUTP "horizontal line. If the graph is not a tree, then this" +OUTP "will confuse the user, since it might be not anymore clear," +OUTP "which vertical lines are connected by the horizontal" +OUTP "line. But for trees, it looks nice." + +OUTP "We see the same syntax tree as before, but now, we use the" +OUTP "single line manhatten tree layout for the left graph." + +OUTP "" +./vcgcount < ../expl/tree2.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent -dtree -smanhatten ../expl/tree1.vcg & +SLEEP 2 +MYVCG ../expl/tree2.vcg +SLEEP 1 + + + + +CLEAR +OUTP "Example: Edge priorities" +OUTP "------------------------" + +OUTP "Sometimes, we have a graph consisting of two intermixed" +OUTP "graphs. Or we have one basic graph and additionally, we have" +OUTP "edges as annotations. In these cases, we want to recognize " +OUTP "the structure of the basic graph, but the structure is" +OUTP "interwoven with the additional edges. But the layout is based" +OUTP "on all edges, which may result in visualizations where " +OUTP "the structure of the basic graph is not recognizable anymore." +OUTP "" +OUTP "In this case, edge priority comes in. We give the edges of" +OUTP "the basic graph a higher priority. Then, the additional " +OUTP "annotation edges are neglected during the layout and are" +OUTP "drawn rather ugly, but the basic graph is visualized nicely." +OUTP "" +OUTP "Next, we will see a tree (thick edges) interwoven with some" +OUTP "additional edges. Left, we show this graph by the standard" +OUTP "layout algorithm, where the tree is not recognizable." +OUTP "At the right side, we use priorities, and then we will recognize" +OUTP "the tree structure." + +OUTP "" +./vcgcount < ../expl/annot1.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent ../expl/annot1.vcg & +SLEEP 2 +MYVCG -silent ../expl/annot2.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: Fisheyes" +OUTP "-----------------" + +OUTP "Large graphs have normally the disadvantage that we either" +OUTP "see the whole graph but no details, because the graph is" +OUTP "shrinked very much, or we see some details at the point of" +OUTP "interest but lose the overview of the entire graph structure," +OUTP "because the window is too small. A good solution of this" +OUTP "conflict is the fisheye view that distorts the graph such" +OUTP "that the focus point is magnified while the remaining parts" +OUTP "of the graph are demagnified smoothly such that the whole" +OUTP "graph is visible." +OUTP "A fisheye view is a coordinate transformation and has" +OUTP "similiarities with the corresponding photo camera lenses." +OUTP "" +OUTP "Next, we will see a large graph. Left, we show the graph" +OUTP "by the standard view. Right, we see the same graph by the" +OUTP "cartesian fisheye view. The focus point can be selected" +OUTP "interactively by the operation Pick Position." + +OUTP "" +./vcgcount < ../expl/fishex3c.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent -ypos 170 ../expl/fishex3c.vcg & +SLEEP 2 +MYVCG -silent -xpos 518 -ypos 1790 -view cfish ../expl/fishex3b.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: Cartesian fisheyes and polar fisheyes" +OUTP "----------------------------------------------" + +OUTP "Cartesian fisheyes transform the cartesian coordinate system" +OUTP "while polar fisheyes transform the polar coordinate system." +OUTP "A polar fisheye can be seen as a mapping of the space onto a" +OUTP "spheric ball. The polar fisheye does not preserve horizontal" +OUTP "and vertical lines, while the cartesian fisheye does." +OUTP "Note that fisheyes may introduce additional bendings of lines" +OUTP "and crossings that do not appear in the plane view." +OUTP "However, these effects are seldom and occur due to efficiency" +OUTP "reasons." +OUTP "" +OUTP "Next, we will see the same graph as before. Left, we show the" +OUTP "graph by the polar fisheye view. Right, we see the graph again" +OUTP "by the carthesian fisheye view." + +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent -xpos 518 -ypos 1790 -view pfish ../expl/fishex3a.vcg & +SLEEP 2 +MYVCG -silent -xpos 518 -ypos 1790 -view cfish ../expl/fishex3b.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: Fisheyes with fixed radius" +OUTP "-----------------------------------" + +OUTP "If not the whole graph but only a fixed area around the focus" +OUTP "point is of interest, we use the fisheyes with fixed radius." +OUTP "Then, not the whole graph is visible but only the region around" +OUTP "the focus point." +OUTP "While for normal (self adaptable) fisheyes, the location of the" +OUTP "focus point moves in the window relatively to its movement in" +OUTP "the graph, the focus point of the fisheyes with fixed radius is" +OUTP "always centered in the window." +OUTP "" +OUTP "Next, we will see a graph with fisheyes of fixed radius. Left," +OUTP "we show the graph by the cartesian fisheye view. Right, we see" +OUTP "the graph again by the polar fisheye view." + +OUTP "" +./vcgcount < ../expl/fishex2a.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After visualization of this, first, press q into" +OUTP "the VCG window at the left side." +OUTP "Then, press q into the right VCG window to go to " +OUTP "the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -silent -xpos 2300 -ypos 253 -view fcfish ../expl/fishex2a.vcg & +SLEEP 2 +MYVCG -silent -xpos 2300 -ypos 253 -view fpfish ../expl/fishex2b.vcg +SLEEP 1 + + +CLEAR +OUTP "Example: Another diagram" +OUTP "-------------------------" + +OUTP "This diagram (Gansner, Koutsofios, e.a.: A Technique" +OUTP "for Drawing Graphs; IEEE Trans. Soft. Eng. 19, 3, March 93)" +OUTP "shows the dependencies of different shells." +OUTP "Here we see a combination of features of the VCG tool." +OUTP "First, the graph is made connected by 3 invisible edges." +OUTP "The priority of these edges is set to zero such that" +OUTP "they do not influence the layout too much. As contrast," +OUTP "the layout_downfactor and layout_upfactor is set to 100." +OUTP "The attribute level is used to set the nodes at the" +OUTP "appropriate time axis. The attribute horizontal_order" +OUTP "is used to get the time axis at the left side of the" +OUTP "graph. Further, we have used splines for the edges." + +OUTP "" +./vcgcount < ../expl/shells.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/shells.vcg + + +CLEAR +OUTP "Example: Ternary tree of depth 7" +OUTP "---------------------------------" +OUTP "Wait half a minute ..." + +vcgdemomaker demo005.vcg -ternarytree 7 +CAT demo005.vcg | SED -e "s/xmax/shrink: 2 &/" > demo006.vcg + +OUTP "Now a first torture test. This graph is a ternary tree" +OUTP "with about 3000 nodes and 3000 edges." +OUTP "We use the normal algorithm with downfactor: 8." +OUTP "We need about 20 seconds (on a Sparc ELC) to layout it." +OUTP "WARNING: the visualization may fail on small computers" +OUTP " because of memory exhausted." +OUTP "" +./vcgcount < demo006.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo006.vcg + + +CLEAR +OUTP "Example: Two level cross graph" +OUTP "------------------------------" + +vcgdemomaker demo007.vcg -twolevelcross 1000 + +OUTP "This is a torture test for bary centering." +OUTP "This graph is specified in an ugly format with a lot" +OUTP "of unnecessary crossings. The tool removes these " +OUTP "crossings." +OUTP "" +./vcgcount < demo007.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo007.vcg + +CLEAR +OUTP "Example: Nearedge test" +OUTP "----------------------" + +vcgdemomaker demo008.vcg -leveltree 4 +CAT demo008.vcg | SED -e "s/xmax/shrink: 4 &/" > demo009.vcg + +OUTP "This is a torture test for near edge layout." +OUTP "This tree is has a lot of near edges, i.e. " +OUTP "edges between nodes at the same level." +OUTP "The nodes of a near edge should be neighboured." +OUTP "" +./vcgcount < demo009.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo009.vcg + +CLEAR +OUTP "Example: Complete graphs" +OUTP "------------------------" + +vcgdemomaker demo010.vcg -allconnect 5 + +OUTP "The complete graph has edges between all nodes." +OUTP "If we have n nodes, then we have about n*n/2 edges." +OUTP "Here we test the speed of the VCG tool, because " +OUTP "such graphs are very difficult to layout." +OUTP "An complete graph of 5 nodes is layouted very fast." +OUTP "" +./vcgcount < demo010.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo010.vcg + +CLEAR +OUTP "Example: Complete graphs" +OUTP "------------------------" + +vcgdemomaker demo011.vcg -allconnect 10 +CAT demo011.vcg | SED -e "s/xmax/shrink: 10 stretch: 7 &/" > demo012.vcg + +OUTP "An complete graph of 10 nodes needs a few seconds." +OUTP "" +./vcgcount < demo012.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo012.vcg + +CLEAR +OUTP "Example: Complete graphs" +OUTP "------------------------" + +vcgdemomaker demo013.vcg -allconnect 20 +CAT demo013.vcg | SED -e "s/xmax/shrink: 100 stretch: 32 &/" > demo014.vcg + +OUTP "An complete graph of 20 nodes needs about 25 seconds" +OUTP "on a Sparc ELC." +OUTP "" +./vcgcount < demo014.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo014.vcg + +CLEAR +OUTP "Example: Complete graphs" +OUTP "------------------------" + +vcgdemomaker demo015.vcg -allconnect 30 +CAT demo015.vcg | SED -e "s/xmax/shrink: 10 stretch: 2 &/" > demo016.vcg + +OUTP "An complete graph of 30 nodes needs about 110 seconds" +OUTP "on a Sparc ELC." +OUTP "" +./vcgcount < demo016.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG demo016.vcg + +CLEAR +OUTP "Example: Complete graphs" +OUTP "------------------------" + +OUTP "If we have such complex graphs, it is often not necessary" +OUTP "to have a nice layout, because the graphs are to large " +OUTP "to see all details at the same time." +OUTP "In this case, we set the fast flag (option -f) that reduces" +OUTP "the number of iterations of various layout steps." +OUTP "Next, we see the same complete graph of 30 nodes as before, however" +OUTP "now the fast flag is set." +OUTP "Then, we need only 15 seconds (compared to 100 seconds before)," +OUTP "but the layout is very ugly." + +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG -f demo016.vcg + + +CLEAR +OUTP "Example: Intermediate representation of a compiler (HIR)" +OUTP "--------------------------------------------------------" + +OUTP "The next example comes from the REAL WORLD." +OUTP "It shows the High Intermediate Representation (HIR)" +OUTP "of a CLaX program. It is a syntax tree annotated by" +OUTP "types." +OUTP "You see the procedure declarations. The main module is" +OUTP "actually folded (see the green triangle)." +OUTP "If you select the menu point Hide edges, you will recognize" +OUTP "that the edge classes are named in this example." +OUTP "We use the layout algorithm TREE." +OUTP "" +./vcgcount < ../expl/tstree.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "We need a few seconds to visualize this. Please wait." +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/tstree.vcg + +CLEAR +OUTP "Example: Intermediate representation of a compiler (CCMIR)" +OUTP "----------------------------------------------------------" + +OUTP "The next example again comes from the REAL WORLD." +OUTP "It shows the Common Compare Medium Intermediate" +OUTP "Representation (CCMIR) of a very simple C program." +OUTP "This graph was generated by the ACE C frontend and a trivial" +OUTP "additional visualization engine. The edge classes 1-5" +OUTP "are hidden, otherwise the layout would be to ugly." +OUTP "They can be exposed by menu selections." +OUTP "" +./vcgcount < ../expl/ccmir.vcg +OUTP "" +OUTP "Remind: most important keybord commands of vcg" +OUTP " q - quit the VCG tool" +OUTP " a " +OUTP " d c (arrow keys) - scroll to the left/right/up/down" +OUTP " b " +OUTP " + - stretch " +OUTP " - - shrink " +OUTP "" +OUTP "After the visualization of this, press q into " +OUTP "the VCG window to go to the next demonstration." + +OUTP "Press Carriage Return key to start visualization ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +MYVCG ../expl/ccmir.vcg + + +CLEAR +OUTP "Example: Animation demo 1 (communication by touching)" +OUTP "-----------------------------------------------------" +OUTP "We show a small animation that demonstrate the " +OUTP "communication between the VCG tool and a controller " +OUTP "program called animation3." +OUTP "The controller program sends signals to the VCG tool." +OUTP "The VCG tool indicates the completion of vizualization" +OUTP "by touching its input file." +OUTP "This demonstration shows a sequence of insertions into" +OUTP "a red black tree. We see rotations that rebalance the tree." +OUTP "IMPORTANT: Do not quit the VCG tool. Do not give any " +OUTP " input (keypress, menu selection) to the VCG tool." +OUTP " Wait ! The animation is finished automatically." + +OUTP "" +OUTP "Press Carriage Return key to start the animation ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +animation3 + +OUTP "Ready ! Press Carriage Return key to continue ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +CLEAR +OUTP "Example: Animation demo 2 (communication by signals)" +OUTP "----------------------------------------------------" +OUTP "We show another small animation that demonstrate the " +OUTP "communication between the VCG tool and a controller " +OUTP "program called animation1." +OUTP "The controller program sends signals to the VCG tool." +OUTP "The VCG tool indicates the completion of vizualization" +OUTP "by sending a signal back to the controlling program." +OUTP "IMPORTANT: Do not quit the VCG tool. Do not give any " +OUTP " input (keypress, menu selection) to the VCG tool." +OUTP " Wait ! The animation is finished automatically." + +OUTP "" +OUTP "Press Carriage Return key to start the animation ..." +set f = $< +if ("$f" == "QUIT") goto finishup + +animation2 + +OUTP "Ready ! Press Carriage Return key to finish the demonstration." + + +finishup: +CLEAR +OUTP "This was the demonstration of the vcg tool" + +OUTP "" +loopa: + OUTP "Should the directory be cleaned ?" + OUTP "1 : yes 0 : no " + OUTP "y : yes n : no " + set wsys = $< + switch ($wsys) + case y: + case 1: + OUTP "Cleanup ..." + OUTP "Test" > demoaaa.vcg + OUTP "Test" > animaaa.vcg + OUTP "Test" > rbtreeaaa.vcg + RM demo*.vcg anim*.vcg rbtree*.vcg + breaksw + case n: + case 0: + breaksw + default: + OUTP "" + OUTP "*** invalid input ***" + goto loopa + endsw +OUTP "Goodbye ..." + diff --git a/graphics/vcg/files/globals.h b/graphics/vcg/files/globals.h new file mode 100644 index 000000000000..f4ce226b4a4d --- /dev/null +++ b/graphics/vcg/files/globals.h @@ -0,0 +1,417 @@ +/* SCCS-info %W% %E% */ + +/*--------------------------------------------------------------------*/ +/* */ +/* VCG : Visualization of Compiler Graphs */ +/* -------------------------------------- */ +/* */ +/* file: globals.h */ +/* version: 1.00.00 */ +/* creation: 1.4.1993 */ +/* author: I. Lemke (...-Version 0.99.99) */ +/* G. Sander (Version 1.00.00-...) */ +/* Universitaet des Saarlandes, 66041 Saarbruecken */ +/* ESPRIT Project #5399 Compare */ +/* description: Global definitions and setup */ +/* status: in work */ +/* */ +/*--------------------------------------------------------------------*/ + +/* $Id: globals.h.tpl,v 3.7 1994/11/23 14:50:47 sander Exp sander $ */ + +/* + * Copyright (C) 1993--1995 by Georg Sander, Iris Lemke, and + * the Compare Consortium + * + * This program and documentation is free software; you can redistribute + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * The software is available per anonymous ftp at ftp.cs.uni-sb.de. + * Contact sander@cs.uni-sb.de for additional information. + */ + + +/* $Log: globals.h.tpl,v $ +# Revision 3.7 1994/11/23 14:50:47 sander +# #include added to get MAX_INT and MIN_INT. +# +# Revision 3.6 1994/08/08 16:01:47 sander +# Attributes xraster, xlraster, yraster added. +# +# Revision 3.5 1994/08/02 15:36:12 sander +# CHECKNODE option added to allow tracing of properties +# of one single node. For debugging only. +# +# Revision 3.4 1994/06/07 14:09:59 sander +# Splines implemented. +# HP-UX, Linux, AIX, Sun-Os, IRIX compatibility tested. +# The tool is now ready to be distributed. +# +# Revision 3.3 1994/05/16 08:56:03 sander +# shape attribute (boxes, rhombs, ellipses, triangles) added. +# +# Revision 3.2 1994/03/02 11:48:54 sander +# Layoutalgoritms mindepthslow, maxdepthslow, minindegree, ... mandegree +# added. +# Anchors and nearedges are not anymore allowed to be intermixed. +# Escapes in strings are now allowed. +# +# Revision 3.1 1994/03/01 10:59:55 sander +# Copyright and Gnu Licence message added. +# Problem with "nearedges: no" and "selfloops" solved. +# +# Revision 1.2 1994/01/21 19:43:42 sander +# New started with release 1.2 from the scratch. +# Old and useless comments removed. +# + * + */ + +/* This file contains the setup of the tool for the C compiler. + * It is included into every other C file. + * Please adapt corresponding to your configuration. + */ + +#ifndef GLOBALS_H +#define GLOBALS_H + +/*------------- Please change according to your configuration --------*/ + +/* Ansi C compiler or K&R C compiler ? + * Mainly, this causes to use prototypes or not. Note that the Suntool + * include files on some systems are Non-Ansi and may cause confusion. + * See the corresponding comments in the Makefile. + * Ansi C compiler set __STDC__, but Non-Ansi compilers may set this, too. + * Thus we use our own flag ANSI_C. + */ + +/* #ifdef __STDC__==1 + * #define ANSI_C + * #endif + */ + +/* #define ANSI_C */ +/* #undef ANSI_C */ +#define ANSI_C + +/* The Gnu CC sometimes does not have a standard library. + * In this case, the include files might be wrong. + * To get fewer messages on -Wall, define NO_STDINCLUDES + * with Gnu CC. + */ + +#undef NO_STDINCLUDES + + +/* User Signals available or not ? + * Unix provides signals SIGUSR1 and SIGUSR2 (30, 31), which are used + * to control animations from external. If signal() or free signals are + * not available (e.g. on Non-Unix systems), then undefine USR_SIGNAL. + */ + +#define USR_SIGNAL +/* #undef USR_SIGNAL */ + + +/* Good quicksort available or not ? + * If there exist a good randomized quicksort `qsort' in the library, + * please use it. But if the quicksort in the library is slow, or not + * randomized, define OWN_QUICKSORT. We often have to sort presorted + * arrays. + * Note: If OWN_QUICKSORT is defined, not all calls of `qsort' are + * exchanged, but only the critical ones. + */ + +/* #undef OWN_QUICKSORT */ +#define OWN_QUICKSORT + + +/* Window system Sunview or X11 ? + * Sunview is fast, but does not support remote window displaying. + * X11 (R5) is a little bit slower, but supports remote display. + * Do not define both !!! + */ + +/* #define SUNVIEW */ +/* #undef X11 */ +/* #undef SUNVIEW */ +/* #define X11 */ +#define X11 + + +/* Required alignment for structs (power of 2). IALIGN is the appropriate + * bit mask to generate the alignment. Because we use floats in structs, + * mostly an alignment of 8 is appropriate. + */ + +#ifndef ALIGN +/* #define ALIGN 8 */ +#define ALIGN 8 +#endif + +#ifndef IALIGN +#define IALIGN (ALIGN-1) +#endif + + +/* Memory block size for memory allocation in bytes. The allocation + * mechanism allocates blocks of this size, and dynamically increases + * the number of blocks, if more memory is necessary. + * Do not set the blocksize too small. For instance the tool does not + * work with blockssize less than 1 KB. Propose for good performance: + * 256 KB minimal. + */ + +/* Blocks of 1 Megabyte */ + +/* #define MEMBLOCKSIZE 1048576 */ +#define MEMBLOCKSIZE 1048576 + + +/* The default font for X11. Not needed at the Sunview installation. + * Please insert an appropriate font of about 14 to 17 dot size. + */ + +#ifdef X11 +#define VCG_DEFAULT_FONT "-*-courier-*-*-*--14-*-*-*-*-*-*-*" +#endif + + +/* Whether the input focus grab is actively or not. + * If NOINPUTFOCUS, the VCG tool does not grab actively the input + * focus. Depending on the window manager, this may cause that + * the keypresses are ignored afterwards, unless the mouse pointer + * is once moved out of the window and back into it. + * On the other side, some installations cause a fatal error or + * strange behaviour, if the VCG tool actively grabs the input + * focus. + * The conservative definement is #define NOINPUTFOCUS. + */ + +#ifdef X11 +#define NOINPUTFOCUS +#endif + + +/* Debugging On or Off ? + * We have three kinds of debugging: + * a) Behaviour tracing: a lot of messages nearly on every + * function entry are produced if DEBUG is switched on. + * b) Assertion checking: only if an assertion fails, an + * appropriate message is produced. + * c) Node tracing: This is basically the same as the behaviour + * tracing. At each function entry, the status of a node + * will be printed. This happens if CHECKNODE is defined. + * See step0 for the selection of the node to be traced. + * Behaviour or node tracing is only needed in very serious cases. + * The macros "debuggingmessage" can be redefined to do some special + * tests on every entry. + * Assertion checking can always be done, because it is silent + * as long as no error occurs. But it consumes runtime. + * This all can also be defined in the head of a module before + * #include "globals.h", to debug only this module. + */ + +/* for internal debugging */ +#undef DEBUG +#undef CHECKNODE +/* for assertion checking at runtime */ +#define CHECK_ASSERTIONS + + +/* + * If you prefer the system assert.h, then define ASSERT_AVAIL. + */ + +/* #define ASSERT_AVAIL */ +#undef ASSERT_AVAIL + +/* Check and printout the timing of phases. + * If CHECK_TIMING is defined, time measurement is done at some + * critical points. This is only for me, to fine tune the + * preformance. (GS) + */ + +#undef CHECK_TIMING + +/*---------------------------- End of Changes ------------------------*/ + +/* Maximal and minimal positive integer */ + +#include + +#ifndef MAXINT +#ifdef INT_MAX +#define MAXINT INT_MAX +#else +#define MAXINT 32767 +#endif +#endif + +#ifndef MININT +#ifdef INT_MIN +#define MININT INT_MIN +#else +#define MININT -32767 +#endif +#endif + +#ifndef MAXLONG +#ifdef LONG_MAX +#define MAXLONG LONG_MAX +#else +#define MAXLONG 32767 +#endif +#endif + +#ifndef MINLONG +#ifdef LONG_MIN +#define MINLONG LONG_MIN +#else +#define MINLONG -32767 +#endif +#endif + + +/* Prototype support */ + +#ifdef ANSI_C +#define _PP(x) x +#else +#define _PP(x) () +#endif + +#ifndef NULL +#define NULL 0 +#endif + +/* Aix CC and OSF does not understand const's */ + +#ifdef OSF +#define const +#endif +#ifdef AIXCC +#define const +#endif + +/* Default Window system is X11 */ + +#ifdef SUNVIEW +#ifdef X11 +#undef SUNVIEW +#endif +#else +#ifndef X11 +#define X11 +#endif +#endif + +#ifdef X11 +#define FAST_X11_DRAWING +#endif + +/* Debugging messages */ + +#ifdef DEBUG +#define debugmessage(a,b) {FPRINTF(stderr,"Debug: %s %s\n",a,b);} +#else +#define debugmessage(a,b) /**/ +#endif + +#ifdef CHECKNODE +#define DEBUG +#undef debugmessage +#define debugmessage(a,b) { \ + FPRINTF(stderr,"Debug: %s %s &",a,b); \ + if (debug_checknode) \ + FPRINTF(stderr,"Checknode: |%s|\n",NTITLE(debug_checknode)); \ + FPRINTF(stderr,"\n"); \ +} +#endif + +/* Assertions */ + +#ifndef CHECK_ASSERTIONS +#define NDEBUG +#endif +#ifdef DEBUG +#undef NDEBUG +#endif + +#ifdef ASSERT_AVAIL +#include +#else +# ifndef NDEBUG +# define assert(ex) {if (!(ex)) {\ + FPRINTF(stderr,"Assertion failed: file \"%s\", line %d\n",\ + __FILE__, __LINE__); \ + FPRINTF(stderr,"This is a bug! Please contact sander@cs.uni-sb.de !\n");\ + exit(1);}} +# else +# define assert(ex) +# endif +# endif + + +/* To make lint happy */ + +#define PRINTF (void)printf +#define FPRINTF (void)fprintf +#define SPRINTF (void)sprintf +#define FCLOSE (void)fclose +#define FFLUSH (void)fflush +#define FREE (void)free + +/* To make ANSI C compiler with -Wall more happy */ + +#ifdef ANSI_C +#ifdef NO_STDINCLUDES +int fprintf(FILE *stream, const char *format, ...); +int printf(const char *format, ...); +int scanf(const char *format, ...); +int atoi(char *x); +double atof(char *x); +int islower(int s); +int isupper(int s); +int tolower(int s); +int toupper(int s); +void bcopy(void *b1,void *b2,int length); +int fputs(const char *s, FILE *stream); +size_t fwrite(const void *ptr, size_t s, size_t n, FILE *stream); +int fclose(FILE *stream); +FILE *fopen(const char *filename, const char *mode); +void system(char *string); +int fflush(FILE *stream); +int getppid(void); +#ifdef X11 +char *getwd(char pn[]); +#endif +int fgetc(FILE *stream); +#endif +#endif + +#define gstoint(x) ((int)(x)) +#ifdef HPUX +#define alloca(x) (malloc(x)) +#define getwd(h) (getcwd(h,MAXPATHLEN-1)) +#endif + +#ifdef VMS +#define alloca(x) (malloc(x)) +#endif + +/*--------------------------------------------------------------------*/ + +#endif /* GLOBALS_H */ + diff --git a/graphics/vcg/files/patch-aa b/graphics/vcg/files/patch-aa new file mode 100644 index 000000000000..33aa7cf0592f --- /dev/null +++ b/graphics/vcg/files/patch-aa @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 16:56:11 ++++ demo/Makefile 1995/02/18 16:57:11 +@@ -124,7 +124,7 @@ + + # Generated Other - Files + GOFILES = animfile1.vcg animfile2.vcg rbtree.vcg +- ++ + # Object - Files + OFILES = animation1.o animation2.o pbmrot90.o pbmshift.o vcgdemomaker.o \ + animation3.o vcgcount.o pbm2hp.o diff --git a/graphics/vcg/files/patch-ab b/graphics/vcg/files/patch-ab new file mode 100644 index 000000000000..50ee46c635fc --- /dev/null +++ b/graphics/vcg/files/patch-ab @@ -0,0 +1,20 @@ +--- 1.1 1995/02/18 16:57:50 ++++ doc/Makefile 1995/02/18 16:58:35 +@@ -72,7 +72,7 @@ + + + # RCS Version control stuff +- ++ + $(SOURCES): + $(CHECKOUT) $@ + +@@ -87,7 +87,7 @@ + + clean: + $(RM) -f *.aux *.toc *.log *.lof *.lot *.spell tmp* core +- ++ + veryclean: clean + $(RM) -f *.dvi + diff --git a/graphics/vcg/files/patch-ac b/graphics/vcg/files/patch-ac new file mode 100644 index 000000000000..5051c266a08b --- /dev/null +++ b/graphics/vcg/files/patch-ac @@ -0,0 +1,20 @@ +--- 1.1 1995/02/18 17:07:16 ++++ src/preconf/y.tab.c 1995/02/18 17:20:13 +@@ -446,7 +446,7 @@ + + #ifndef YY_MALLOC_DECL + #define YY_MALLOC_DECL +-#include ++#include + #endif + + #undef YYVALGLOBAL +@@ -5815,7 +5815,7 @@ + + + #include +-#include ++#include + #ifdef ANSI_C + #include + #else diff --git a/graphics/vcg/files/patch-ad b/graphics/vcg/files/patch-ad new file mode 100644 index 000000000000..e1b38fd91807 --- /dev/null +++ b/graphics/vcg/files/patch-ad @@ -0,0 +1,20 @@ +--- 1.1 1995/02/18 17:09:45 ++++ src/preconf/lex.yy.c 1995/02/18 17:21:39 +@@ -1665,7 +1665,7 @@ + + #ifndef YY_MALLOC_DECL + #define YY_MALLOC_DECL +-#include ++#include + #endif + + #undef YYVALGLOBAL +@@ -5256,7 +5256,7 @@ + + #include + #include +-#include ++#include + + /* Global Variables */ + /*------------------*/ diff --git a/graphics/vcg/files/patch-ae b/graphics/vcg/files/patch-ae new file mode 100644 index 000000000000..f67c7311ab46 --- /dev/null +++ b/graphics/vcg/files/patch-ae @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 16:51:08 ++++ src/Makefile 1995/02/18 16:55:50 +@@ -189,7 +189,7 @@ + + # Generated Other - Files + GOFILES = grammar.l grammar.y +- ++ + # Object - Files + OFILES = y.tab.o lex.yy.o main.o options.o alloc.o step0.o folding.o \ + step1.o step2.o step3.o step4.o prepare.o draw.o \ diff --git a/graphics/vcg/files/patch-af b/graphics/vcg/files/patch-af new file mode 100644 index 000000000000..f1249b1c5f69 --- /dev/null +++ b/graphics/vcg/files/patch-af @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:44:23 ++++ src/main.c 1995/02/18 17:44:52 +@@ -147,7 +147,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-ag b/graphics/vcg/files/patch-ag new file mode 100644 index 000000000000..389c43807f6f --- /dev/null +++ b/graphics/vcg/files/patch-ag @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:48:32 ++++ src/X11dev.c 1995/02/18 17:48:52 +@@ -181,7 +181,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-ah b/graphics/vcg/files/patch-ah new file mode 100644 index 000000000000..75774966c51d --- /dev/null +++ b/graphics/vcg/files/patch-ah @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:48:53 ++++ src/X11devcl.c 1995/02/18 17:49:10 +@@ -115,7 +115,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-ai b/graphics/vcg/files/patch-ai new file mode 100644 index 000000000000..9ec87a973219 --- /dev/null +++ b/graphics/vcg/files/patch-ai @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:49:10 ++++ src/X11devfe.c 1995/02/18 17:49:26 +@@ -85,7 +85,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-aj b/graphics/vcg/files/patch-aj new file mode 100644 index 000000000000..47aa8e2f175b --- /dev/null +++ b/graphics/vcg/files/patch-aj @@ -0,0 +1,20 @@ +--- 1.1 1995/02/18 17:49:27 ++++ src/X11devfs.c 1995/02/18 18:03:42 +@@ -107,7 +107,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include +@@ -128,7 +128,7 @@ + #else + #include + #include +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-ak b/graphics/vcg/files/patch-ak new file mode 100644 index 000000000000..c97cdc13a962 --- /dev/null +++ b/graphics/vcg/files/patch-ak @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:49:42 ++++ src/X11devla.c 1995/02/18 17:49:58 +@@ -122,7 +122,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-al b/graphics/vcg/files/patch-al new file mode 100644 index 000000000000..54c104c7166e --- /dev/null +++ b/graphics/vcg/files/patch-al @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:49:58 ++++ src/X11devpb.c 1995/02/18 17:50:16 +@@ -115,7 +115,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-am b/graphics/vcg/files/patch-am new file mode 100644 index 000000000000..7f2654ee0080 --- /dev/null +++ b/graphics/vcg/files/patch-am @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:50:17 ++++ src/X11devst.c 1995/02/18 17:50:33 +@@ -68,7 +68,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-an b/graphics/vcg/files/patch-an new file mode 100644 index 000000000000..d9dccab80b20 --- /dev/null +++ b/graphics/vcg/files/patch-an @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:50:34 ++++ src/X11devti.c 1995/02/18 17:50:48 +@@ -111,7 +111,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-ao b/graphics/vcg/files/patch-ao new file mode 100644 index 000000000000..77574252fcc2 --- /dev/null +++ b/graphics/vcg/files/patch-ao @@ -0,0 +1,11 @@ +--- 1.1 1995/02/18 17:50:49 ++++ src/X11devvw.c 1995/02/18 17:51:04 +@@ -87,7 +87,7 @@ + + #ifdef X11 + +-#include ++/*#include */ + #include + #include + #include diff --git a/graphics/vcg/files/patch-ap b/graphics/vcg/files/patch-ap new file mode 100644 index 000000000000..d599982ef49e --- /dev/null +++ b/graphics/vcg/files/patch-ap @@ -0,0 +1,20 @@ +--- 1.1 1995/02/18 16:48:19 ++++ Makefile 1995/02/18 17:12:05 +@@ -31,7 +31,7 @@ + + #all: stamp-all + +-all: xvcg_gcc xvcg ++all: xvcg_cc xvcg + + configure: stamp-config + +@@ -236,7 +236,7 @@ + @echo " make xvcg_c89_noxmkmf" + @echo " make vcg_gcc" + @echo " make vcg_cc" +- ++ + compare: preconf xcompare xvcg install + /bin/rm $(PROJECTHOME)/../bin/vcg + ln -s $(PROJECTHOME)/../bin/xvcg $(PROJECTHOME)/../bin/vcg diff --git a/graphics/vcg/files/tMakefile b/graphics/vcg/files/tMakefile new file mode 100644 index 000000000000..542fffdad893 --- /dev/null +++ b/graphics/vcg/files/tMakefile @@ -0,0 +1,372 @@ +# SCCS-info %W% %E% +# +# /*--------------------------------------------------------------------*/ +# /* */ +# /* VCG : Visualization of Compiler Graphs */ +# /* -------------------------------------- */ +# /* */ +# /* file: tMakefile.tpl */ +# /* version: 1.00.00 */ +# /* creation: 1.4.1993 */ +# /* author: I. Lemke (...-Version 0.99.99) */ +# /* G. Sander (Version 1.00.00-...) */ +# /* Universitaet des Saarlandes, W-66041 Saarbruecken */ +# /* ESPRIT Project #5399 Compare */ +# /* description: Top level Makefile */ +# /* status: in work */ +# /* */ +# /*--------------------------------------------------------------------*/ +# +# $Id$ +# +# $Log$ +# + +#========================= CHANGE AREA ========================= + +# Please update the change area according to your system. +# NOTE: you must also adapt the file src/globals.h and demo/demo.csh +# accordingly. + +SHELL = /bin/sh + +# where the binaries go +# BINDIR = /usr/local/bin/ +# BINDIR = /RW/esprit/users/sander/PUBLIC/CMD/ +BINDIR = /usr/X11R6/bin + +# where the manual pages go +# MANDIR = /usr/local/man/manl/ +# MANDIR = /RW/esprit/users/sander/PUBLIC/MAN/ +MANDIR = /usr/X11R6/man/manl + +# what the manual extension is +MANEXT = l + +# how the VCG tool should be called +# For the Sunview version I use the name vcg. +# For the X11 version I prefer the name xvcg. +# VCGTOOL = vcg +# VCGTOOL = xvcg +VCGTOOL = xvcg + +# Note: you can test the tool before it is installed. +# Thus we need the path of the tool for the tests. +# It may also be the path of the tool after installation. +# Then use +VCGCALL = $(BINDIR)/$(VCGTOOL) +# +# Used during the demoanimations: +# where the vcg is during the tests. +# Please enter the absolute path to the VCG-tool. +# VCGCALL = /usr/local/bin/vcg +# VCGCALL = /RW/esprit/users/sander/PUBLIC/CMD/$(VCGTOOL) + +#-------------------------- Flags ------------------------------ + +# Flags for the C compiler +# Important: Do not use -Dlint with gcc. This causes confusion +# during linking (!!!), e.g. some undefined messages. +#CFLAGS = -O -finline-functions +#CFLAGS = -O -finline-functions -DDRAWLIB_TOO_LARGE +#CFLAGS = -g -finline-functions -Wall +# +# Do not use -O -finline-functions for FreeBSD, or you really have a lot +# of swap for compiling drawstr.c. +CFLAGS = -c -O2 -pipe + +# Flags for debugging +DFLAGS = + +# Flags for the C linker +#CLINKFLAGS = -Bstatic -o +CLINKFLAGS = -o + +# Include directories +# If you use gcc, it may happen that not all ANSI header files +# are on the right place. Example: we often have problems to +# find stdarg.h. Look for this file and add the directory here, +# e.g.: +# INCLUDES = /usr/local/include/gnuansi/ +# +# For Sunview, this should be enough, because on Suns, Sunview +# is normally installed in standard directories: +# INCLUDES = +# +# For X11, it depends where it is installed. Look for Xlib.h, +# Xproto.h or Xutil.h. +# For instance, if you find /usr/local/X11/include/X11/Xlib.h +# then please use +# INCLUDES = -I/usr/local/X11/include/ +# INCLUDES = -I/RW/esprit/X11R5/include/ +INCLUDES = -I/usr/X11R6/include/ + +# Library directories +# For Sunview, this should be enough, because on Suns, Sunview +# is normally installed in standard directories: +# LIBPATH = +# +# For X11, it depends where it is installed. Look for libX.a, +# or libX11.so., or libXext.a, etc. +# For instance, if you find /usr/local/X11/lib/libX11.a +# then please use +# LIBPATH = -L/usr/local/X11/lib/ +# LIBPATH = -L/RW/esprit/X11R5/lib/ +LIBPATH = -L/usr/X11R6/lib/ + +# Libraries +# Libraries for SunView +# LIBRARIES = -lsuntool -lsunwindow -lpixrect -lm +# +# Libraries for X11 +# LIBRARIES = -lXext -lX11 -lm +LIBRARIES = -lXext -lX11 -lm + +#-------------------------- Tools ------------------------------ + +# C compiler +# CC = gcc -pipe +CC = cc + +# C linker +# CCLINK = gcc -static +CCLINK = cc + +# If you use gcc and the sun driver, you need the normal sun +# preprocessor because of incompatibilities of the system libraries +CPP = $(CC) -E + +# If you dont need a special preprocessor, change the .c.o rule or +# define this: +#CPP = cat + +# Install software. You can use /bin/cp instead of /bin/install. +# I prefer that binaries are stripped. +# For directories: +# INSTALLDIR = /bin/install -d -m 755 +INSTALLDIR = /bin/mkdir -p + +# For binary files: +# Assume that you want to install s file called dummy. +# INSTALL = /bin/install -s -m 755 dummy $(BINDIR)/dummy +INSTALL = /usr/bin/install -c -s -m 755 dummy $(BINDIR)/dummy + +# For manual pages: +# Assume that you want to install s file called dummy. +# INSTALLMAN = /bin/install -m 644 dummy $(MANDIR)/dummy +INSTALLMAN = /usr/bin/install -c -m 644 dummy $(MANDIR)/dummy + +# To make the documentation +LATEX = latex + +# To make the short documentation using big-latex +BIGLATEX = not_available + +# For the pictures, we need some transfig-tools. +# If the files doc/foldpath.tex, doc/foldpath.ps, +# doc/foldtree.tex, doc/foldtree.ps, doc/hideedge.tex, +# doc/hideedge.ps, doc/window.tex, doc/window.ps +# are available, we do not need this. +# +TRANSFIGTEX = fig2ps2tex +TRANSFIGPS = fig2dev + + +# The tools CHECKOUT, CHECKEDIT and CHECKIN are not needed unless +# you want to develop, change or maintain the VCG tool sources +# under control of RCS. + +# RCS check out shellscript (normally not needed) +CHECKOUT = co + +# RCS check edit shellscript (normally not needed) +CHECKEDIT = ce + +# RCS check in shellscript (normally not needed) +CHECKIN = ci + +# parser pregenerator. If the files src/grammar.y and src/grammar.l +# are available, you don't need this. +PARSEGEN = parsegen + +# lex-compatible scanner generator +LEX = not_needed + +# yacc-compatible parser generator. Currently, it does not work +# with yacc because some bison features are used directly. +YACC = not_needed + +# Make +# MAKE = make +MAKE = make + +# MakeDepend (should understand the -f option) +# DEPEND = makedepend +DEPEND = makedepend + +# Streameditor +# SED = /bin/sed +SED = /usr/bin/sed + +# Move File +# MV = /bin/mv +MV = /bin/mv + +# Link Files (or Copy them) +# LN = /bin/ln -s +LN = /bin/ln + +# Remove File +# RM = /bin/rm +RM = /bin/rm + +# Change directory +CD = cd + +# Touch file +# TOUCH = touch +TOUCH = /usr/bin/touch + +#==================== END OF CHANGE AREA ====================== + +#-------------------------- Files ------------------------------ + +# Directories +DIRECTORIES = src man demo doc expl + +# The tarfiles of subdirectories, to make a distribution +SUBTARFILES = src/vcg.tar man/manpages.tar demo/demo.tar doc/doc.tar \ + expl/expl.tar + +# These files are generated, but included into a distribution. +# They are in the directory preconf. + +GEN_DISTFILES = tMakefile src/globals.h demo/demo.csh + + +# Directories where we have something to make +MAKEDIRS = src demo man doc + +# Directories where we have something to install +INSTDIRS = src demo man doc + +#-------------------------- Rules ------------------------------ + +MAKEARGUS = \ + SHELL="$(SHELL)" \ + BINDIR="$(BINDIR)" \ + MANDIR="$(MANDIR)" \ + MANEXT="$(MANEXT)" \ + VCGTOOL="$(VCGTOOL)" \ + VCGCALL="$(VCGCALL)" \ + CFLAGS="$(CFLAGS)" \ + CLINKFLAGS="$(CLINKFLAGS)" \ + DFLAGS="$(DFLAGS)" \ + INCLUDES="$(INCLUDES)" \ + LIBPATH="$(LIBPATH)" \ + LIBRARIES="$(LIBRARIES)" \ + CC="$(CC)" \ + CCLINK="$(CCLINK)" \ + CPP="$(CPP)" \ + LATEX="$(LATEX)" \ + BIGLATEX="$(BIGLATEX)" \ + TRANSFIGTEX="$(TRANSFIGTEX)" \ + TRANSFIGPS="$(TRANSFIGPS)" \ + INSTALLDIR="$(INSTALLDIR)" \ + INSTALL="$(INSTALL)" \ + INSTALLMAN="$(INSTALLMAN)" \ + CHECKOUT="$(CHECKOUT)" \ + CHECKEDIT="$(CHECKEDIT)" \ + CHECKIN="$(CHECKIN)" \ + PARSEGEN="$(PARSEGEN)" \ + LEX="$(LEX)" \ + YACC="$(YACC)" \ + MAKE="$(MAKE)" \ + DEPEND="$(DEPEND)" \ + SED="$(SED)" \ + MV="$(MV)" \ + LN="$(LN)" \ + RM="$(RM)" \ + CD="$(CD)" \ + TOUCH="$(TOUCH)" + +all: stamp-src stamp-demo stamp-doc stamp-shortdoc + +stamp-src: src + ($(CD) src; $(MAKE) $(MAKEARGUS)) + $(TOUCH) stamp-src + +stamp-demo: demo + ($(CD) demo; $(MAKE) $(MAKEARGUS)) + $(TOUCH) stamp-demo + +stamp-doc: doc + ($(CD) doc; $(MAKE) $(MAKEARGUS)) + $(TOUCH) stamp-doc + +stamp-shortdoc: doc + ($(CD) doc; $(MAKE) $(MAKEARGUS) short) + $(TOUCH) stamp-shortdoc + +demonstration: test + +documentation: doc + +shortdocu: stamp-shortdoc + +install: stamp-src stamp-demo + for i in $(INSTDIRS) ;\ + do \ + ($(CD) $$i; $(MAKE) $(MAKEARGUS) install); \ + done + +test: stamp-src stamp-demo + ($(CD) demo; csh demo.csh); + +clean: + for i in $(MAKEDIRS) ;\ + do \ + ($(CD) $$i; $(MAKE) RM="$(RM)" clean); \ + done + $(RM) -f stamp-* core + +veryclean: + for i in $(MAKEDIRS) ;\ + do \ + ($(CD) $$i; $(MAKE) RM="$(RM)" veryclean); \ + done + $(RM) -f stamp-* core + +targetclean: + for i in $(MAKEDIRS) ;\ + do \ + ($(CD) $$i; $(MAKE) RM="$(RM)" targetclean); \ + done + $(RM) -f stamp-* core + +distclean: + for i in $(MAKEDIRS) ;\ + do \ + ($(CD) $$i; $(MAKE) RM="$(RM)" distclean); \ + done + $(RM) -f stamp-* core + +depend: + for i in $(MAKEDIRS) ;\ + do \ + ($(CD) $$i; $(MAKE) $(MAKEARGUS) depend); \ + done + +tar: tMakefile Makefile $(DIRECTORIES) + for i in $(DIRECTORIES) ;\ + do \ + ($(CD) $$i; $(MAKE) $(MAKEARGUS) dist); \ + done + tar -cf vcgcomplete.tar README README.SYS COPYING \ + demotrue config tMakefile.tpl Makefile preconf $(SUBTARFILES) + + +dist: tar + +# DO NOT DELETE THIS LINE -- make depend depends on it. + diff --git a/graphics/vcg/pkg-comment b/graphics/vcg/pkg-comment new file mode 100644 index 000000000000..6fc382930618 --- /dev/null +++ b/graphics/vcg/pkg-comment @@ -0,0 +1 @@ +A Visualization Tool for compiler graphs diff --git a/graphics/vcg/pkg-descr b/graphics/vcg/pkg-descr new file mode 100644 index 000000000000..367da68dd259 --- /dev/null +++ b/graphics/vcg/pkg-descr @@ -0,0 +1,10 @@ +The VCG tool reads a textual and readable specification of a +graph and visualizes the graph. If not all positions of +nodes are fixed, the tool layouts the graph using several +heuristics as reducing the number of crossings, minimizing +the size of edges, centering of nodes. The specification +language of the VCG tool is nearly compatible to GRL, the +language of the edge tool, but contains many extensions. The +VCG tool allows folding of dynamically or statically speci- +fied regions of the graph. It uses colors and runs on +X11. (An older version runs on Sunview). diff --git a/graphics/vcg/pkg-plist b/graphics/vcg/pkg-plist new file mode 100644 index 000000000000..e1ccbf2ec21d --- /dev/null +++ b/graphics/vcg/pkg-plist @@ -0,0 +1,12 @@ +@cwd /usr/X11R6 +bin/xvcg +bin/pbmrot90 +bin/pbmshift +bin/pbm2hp +bin/vcgdemomaker +man/manl/pbmrot90.l +man/manl/pbmshift.l +man/manl/pbm2hp.l +man/manl/vcgdemomaker.l +man/manl/vcg.l +man/manl/xvcg.l