diff toolboxes/graph_visualisation/share/graphviz/doc/html/winbuild.html @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/graph_visualisation/share/graphviz/doc/html/winbuild.html	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,301 @@
+<html>
+<head>
+<title>Graphviz Build Instructions for Windows</title>
+</head>
+<body bgcolor=#ffffff>
+<h2>Graphviz Build Instructions for Windows</h2>
+<P>
+<b>(Graphviz versions &ge; 2.22)</b>
+<P>
+We now build both Visual Studio and MinGW versions of Graphviz.
+In addition, the source package comes with project files for Visual Studio,
+so building from source should be fairly simple in either case.
+<UL>
+<LI>
+The first step is to add the third-party libraries. These are listed
+<A HREF="http://www.graphviz.org/Download_source.php">here</A>.
+This is most easily done by installing
+a Windows binary version of <A HREF="http://www.gtk.org">GTK 2.0</A> or later. 
+<LI>
+Next, download and unwrap the Graphviz source package. Go to
+<A HREF=http://www.graphviz.org/Download_source.php>http://www.graphviz.org/Download_source.php</A>
+and copy over either the stable release
+or the development source package.
+</UL>
+Let $ROOT be the root directory (folder) 
+in which you stored the Graphviz source.
+<h3>Building with Visual Studio</h3>
+<OL>
+<LI>
+Copy the file $ROOT/windows/config.h into $ROOT.
+<LI>
+Copy the folder $ROOT/windows/FEATURE into $ROOT.
+<LI>
+Start Visual Studio and read in $ROOT/graphviz.sln.
+There are project files for all of the parts of Graphviz.
+<LI>
+Modify the various settings for include file and library directories to find
+the third-party software.
+<LI>
+Modify the settings as to where you want the software installed.
+<LI>
+Build Graphviz.
+</OL>
+<h3>Building with MinGW</h3>
+<OL>
+<LI> Install MinGW and Msys.  This gives a mini GNU-like compile environment 
+<LI> Set environment variables based on your machine, giving values to the
+first six below:
+<CODE>
+<PRE>
+export INSTALLROOT           # Root install directory
+export GTKDIR                # Root of GTK tree
+export FONTCONFIGINCLUDEDIR  # Path of fontconfig include dir
+export FONTCONFIGLIBDIR      # Path of fontconfig lib dir
+export FREETYPEINCLUDEDIR    # Path of freetype2 include dir
+export FREETYPELIBDIR        # Path of freetype2 lib dir
+
+export CFLAGS="-DGVDLL=1"
+export CPPFLAGS="-I$GTKDIR/include -I$GTKDIR/include/freetype2 "
+export LDFLAGS="-L$GTKDIR/lib -no-undefined"
+export FONTCONFIG_CFLAGS=-I$GTKDIR/include/
+export FONTCONFIG_LIBS="-L$FONTCONFIGLIBDIR -lfontconfig"
+export FREETYPE2_CFLAGS=-I$FREETYPEINCLUDEDIR
+export FREETYPE2_LIBS="-L$FREETYPELIBDIR
+export PKG_CONFIG=$GTKDIR/bin/pkg-config
+export PKG_CONFIG_PATH=$GTKDIR/lib/pkgconfig
+
+export PANGOFLAGS="--with-fontconfig --with-fontconfiglibdir$FONTCONFIGLIBDIR --with-fontconfigincludedir=$FONTCONFIGINCLUDEDIR --with-pangocairo"
+
+</PRE>
+</CODE>
+<LI> Change directory to $ROOT and run configure:<BR>
+<CODE>
+<PRE>
+./configure -C --prefix=$INSTALLROOT --without-gdk-pixbuf --with-mylibgd --disable-swig --without-x  --disable-tcl --without-ipsepcola --with-codegens --enable-shared --disable-static --with-freetype=$GTKDIR/lib --enable-ltdl $PANGOFLAGS --without-gtk --without-gtkgl
+
+</PRE>
+</CODE>
+When configure finishes, it lists all of the Graphviz features that have been
+enabled. If there are problems, you can check for errors in <TT>config.log</TT>.
+You may have to add or modify
+other flags and environment variables for <TT>configure</TT> to give you the
+settings you want. Run <TT>configure --help</TT>
+to see the allowed options and environment variables.
+<LI> Run <TT>make</TT>
+<LI> Run <TT>make install</TT>
+</OL>
+These builds create a feature-full version of Graphviz. You can tailor
+them to your wants. This is fairly simple for MinGW: just remove or reset
+the flag of the option you don't want. For Visual Studio, you will probably
+need to reset some of the values in <TT>config.h</TT> and some of the
+compile-time options.
+<HR>
+<P>
+<b>(2.21 &gt;= Graphviz versions &gt; 2.14)</b>
+<P>
+To simplify our build process, especially as most Windows users only
+want a binary version of the software, the Graphviz build for Windows
+now uses <A HREF="http://www.research.att.com/sw/tools/uwin/"><B>uwin</B></A>, 
+an open-source Unix layer on top of Windows. In this
+environment, we can use essentially the same tools and process
+used on Unix. In particular, we do not have to maintain multiple build
+files. 
+<P>
+To build Graphviz:
+<OL>
+<LI>
+Install the third-party libraries. This is most easily done by installing
+a Windows binary verion of <A HREF="http://www.gtk.org">GTK 2.0</A> or later. 
+<LI>
+Download the Graphviz source package:<BR>Go to
+<A HREF=http://www.graphviz.org/Download_source.php>http://www.graphviz.org/Download_source.php</A>
+and copy over either the stable release <TT>graphviz-</TT><I>VERSION</I><TT>.tar.gz</TT>
+or the development source package <TT>graphviz-working.tar.gz</TT>.
+<LI>
+Unwrap the package:<BR>
+You can use, for example,<BR><BR>
+<TT>gunzip < graphviz-working.tar.gz | tar xf -</TT><BR>
+<SPACER TYPE=VERTICAL SIZE=10>
+<BR>
+Let <TT>$ROOT</TT> be the directory in which you stored the Graphviz source.
+<LI>
+Configure the package for your system:<BR><BR>
+<TT>cd $ROOT</TT><BR>
+<TT>configure --disable-shared --enable-static --with-mylibgd --disable-swig --without-x  --without-tclsh --with-codegens --disable-ltdl</TT><BR><BR>
+You will probably want to provide additional arguments to 
+<TT>configure</TT> to indicate where you have installed GTK, where
+you want the results installed (<TT>--prefix</TT>) and which
+additional optional packages you want built. Run <TT>configure --help</TT>
+to see the available set of arguments.
+<LI>
+Build Graphviz:<BR><BR>
+<TT>make install</TT><BR><BR>
+</OL>
+<P>
+Presumably, a similar approach would work with Cygwin or MinGW. 
+The following are some notes by
+<A HREF="https://mailman.research.att.com/pipermail/graphviz-devel/2007/000444.html">Steve Roush</A> 
+describing how he
+made a static build of the libraries on MinGW.
+<MENU>
+<LI> Install MinGW and Msys.  This gives a mini GNU-like compile environment 
+that produces Windows-compatible results.
+<LI> You may need to configure and build in Windows "Safe mode".  Try 
+./configure in normal mode; if it dies with "fork" problems, use Safe mode.
+<LI> Edit the "configure" file.<BR>
+ after this line:<BR>
+     <CODE>DEFS=-DHAVE_CONFIG_H</CODE><BR>
+ add these lines:<BR>
+<CODE>
+<PRE>
+    case "$host_os" in
+     mingw*)
+       DEFS="$DEFS -DWIN32 -DMSWIN32"
+       ;;
+     esac
+</PRE>
+</CODE>
+<LI> run configure:<BR>
+<CODE>
+<PRE>
+   ./configure  --enable-static=yes --enable-shared=no 
+--prefix=/usr/local/ --with-libgd=no --enable-ltdl=no --disable-swig  
+--disable-sharp --disable-guile --disable-io --disable-java 
+--disable-lua --disable-ocaml --disable-perl --disable-php 
+--disable-python --disable-ruby --disable-tcl
+</PRE>
+</CODE>
+<LI> edit lib/Makefile<BR>
+ replace these lines:<BR>
+<CODE>
+<PRE>
+ SUBDIRS = cdt graph agraph gd pathplan agutil sfio vmalloc ast vpsc \
+     circogen dotgen fdpgen neatogen twopigen common pack gvc \
+     ingraphs expr
+</PRE>
+</CODE>
+
+ with these lines:<BR>
+<CODE>
+<PRE>
+ SUBDIRS = cdt graph agraph gd pathplan  vpsc \
+    circogen dotgen fdpgen neatogen twopigen common pack gvc \
+    ingraphs
+
+make  # builds most of "lib" (see Makefile changes), cmd/dot and 
+cmd/tools - stops on cmd/gvpr
+make install
+</PRE>
+</CODE>
+</MENU>
+here is the command line I used to build "simple.c" (dot.demo/simple.c), 
+after adding a few lines based on 
+https://mailman.research.att.com/pipermail/graphviz-interest/2006q2/003586.html 
+
+
+<CODE>
+<PRE>
+X=simple;gcc -v -I'/usr/local/include/graphviz' -I'/usr/local/include' 
+-o $X -O $X.c  -L/usr/local/lib -L/usr/local/lib/graphviz -lgvc  -lgraph 
+-lpathplan -lcdt -lgvplugin_core -lgvplugin_dot_layout 
+-lgvplugin_neao_layout -lgvplugin_gd -lgvplugin_pango -lgvc -lpathplan
+</PRE>
+</CODE>
+<P>
+If you
+desire to build directly using Visual Studio or other non-Unix-based
+environment, you will need to derive the necessary information from the
+supplied Makefiles.
+<HR>
+<P>
+<b>(2.14 &gt;= Graphviz versions &gt;= 2.3)</b>
+<P>
+We build Graphviz on Windows using the MS Visual C++ 6.0 compiler 
+only. The simplest way to build the software from source on Windows is as 
+follows:
+<OL>
+<LI>
+Download the Windows source package from:
+<A HREF=http://www.graphviz.org/Download_windows.php>http://www.graphviz.org/Download_windows.php</A>.
+</LI>
+<SPACER TYPE=VERTICAL SIZE=10>
+<LI>
+Unwrap the package:<BR>
+If you have Unix tools available, you can use
+<SPACER TYPE=VERTICAL SIZE=10>
+<TT>gunzip < graphviz-win.tgz | tar xf -</TT><BR>
+<SPACER TYPE=VERTICAL SIZE=10>
+If not, double click on the file and WinZip should start up and let you
+store all of the files into a directory.<BR>
+Let <TT>$ROOT</TT> be the directory in which you stored the Graphviz source.
+</LI>
+<SPACER TYPE=VERTICAL SIZE=10>
+<LI>
+Add the third-party libraries:  
+<SPACER TYPE=VERTICAL SIZE=10>
+<UL TYPE=DISC>
+<LI>
+zlib 1.1.3 <A HREF=http://www.gzip.org/zlib/>http://www.gzip.org/zlib/</A>
+<LI>
+libpng 1.0.6 <A HREF=http://www.libpng.org/pub/png>http://www.libpng.org/pub/png</A> 
+<LI>
+jpeg-6b 62 <A HREF=http://www.ijg.org/>http://www.ijg.org/</A>
+<LI>
+freetype 2.1.7 <A HREF=http://freetype.sourceforge.net/>http://freetype.sourceforge.net/</A>
+<LI>
+expat <A HREF=http://expat.sourceforge.net/>http://expat.sourceforge.net/</A>
+</UL>
+<SPACER TYPE=VERTICAL SIZE=10>
+The versions should be at least the ones indicated.
+You can download the files from 
+<a href=http://www.graphviz.org/Misc/third-party.zip>http://www.graphviz.org/Misc/third-party.zip</a>.
+Unzip the package in the <TT>$ROOT</TT> directory; this will create a subdirectory called
+<TT>third-party</TT>.
+Or you can obtain the libraries yourself, and install 
+them in <TT>$ROOT\third-party</TT>
+Also note that these libraries come with the binary release.
+</LI>
+<SPACER TYPE=VERTICAL SIZE=10>
+<LI>
+Build the software in one of the following ways:<BR>  
+<UL TYPE=DISC>
+<LI> Run the script <TT>$ROOT\build.bat</TT> while in the <TT>$ROOT</TT> 
+directory. You'll first want to check
+that the <TT>vc</TT> variable points to your local installation of visual C.
+Obviously, this should be run in a DOS command window.
+<LI> The file <TT>$ROOT\ws\graphviz.dsw</TT> 
+is the main workspace for the Graphviz libraries and graph drawing programs.
+The file
+<TT>$ROOT\ws\tools.dsw</TT> provides the workspace for the
+additional Graphviz tools. Double-clicking on these files will open the
+workspaces using the MS Visual Studio, from which you can use the Build
+menu item to create the various libraries and programs. 
+<PP>
+Note that we have avoided all dependencies (i.e., there are no .dep files)
+because we found they tended to include absolute pathnames.
+If necessary, follow the order used in <TT>build.bat</TT> to be safe.
+<LI> If you have a Unix environment, with a real ksh, run the script 
+<TT>$ROOT\wmake.sh</TT>
+after setting the PATH, LIB and INCLUDE shell variables to the paths where
+the Visual C programs are installed on your machine, and the associated
+library and include file directories.
+</UL>
+</OL>
+<P> Once built, all of the libraries and programs will be found in
+either the Release or Debug subdirectory of the corresponding source
+directory. If you wish to install
+the software somewhere, edit the file <TT>$ROOT\install.bat</TT> to
+set the variable <TT>root</TT> to be the absolute pathname of the
+directory where you want
+the software installed, and then run the script <TT>$ROOT\install.bat</TT>
+from the <TT>$ROOT</TT> directory.
+<P>
+If you want to change source files, you can just do it and rebuild.
+If, however, you want to add new files or projects, you will
+have to redo the makefiles or scripts.
+<P>
+If you have problems or questions, please contact us at
+<A href=mailto:erg@research.att.com>erg@research.att.com</A>.
+</body>
+</html>