Mercurial > hg > camir-aes2014
diff toolboxes/graph_visualisation/share/graphviz/doc/html/build.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/build.html Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,382 @@ +<html> +<head> +<title>graphviz build notes</title> +</head> +<body bgcolor=#ffffff> +<h1>graphviz build notes</h1> +<h2>External packages</h2> +The full build requires external libraries that you must +obtain elsewhere. Most, if not all of these are optional, +and configure will build graphviz with reduced functionality +if an external library is not found. Newer versions of these +libraries should be fine - if not, please let us know. +<ul> +<li>GD (generic raster graphics driver for PNG, GIF, JPEG) +<a href="http://www.boutell.com/gd/http/gd-2.0.28.tar.gz"> +http://www.boutell.com/gd/http/gd-2.0.28.tar.gz</a> +<br>Graphviz also contains a copy of GD 2.0.4, but we will +remove it eventually so the external library is preferred. +<li>ZLIB (raster image compression) +<a href="http://www.zlib.net/zlib-1.2.3.tar.gz"> +http://www.zlib.net/zlib-1.2.3.tar.gz</a> +<br> +NB: Use "./configure -s" to build shared libraries. (See notes in zlib-1.2.3/Makefile) +<li>FREETYPE (renders text in raster graphics formats) +<a href="http://prdownloads.sourceforge.net/freetype/freetype-2.1.3.tar.gz"> +http://prdownloads.sourceforge.net/freetype/freetype-2.1.3.tar.gz</a> +<li>PNG (driver for Portable Network Graphics raster format) +<a href="http://prdownloads.sourceforge.net/libpng/libpng-1.2.5.tar.gz"> +http://prdownloads.sourceforge.net/libpng/libpng-1.2.5.tar.gz</a> +<li>JPEG (a popular raster format with lossy compression, not critical here) +<a href="ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz"> +ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz</a> +<li>EXPAT (XML parser) +<a href="http://prdownloads.sourceforge.net/expat/expat-1.95.5.tar.gz"> +http://prdownloads.sourceforge.net/expat/expat-1.95.5.tar.gz</a> +<li>GETTEXT (gcc compatibility library) +<a href="http://ftp.gnu.org/gnu/gettext/gettext-0.11.5.tar.gz"> +http://ftp.gnu.org/gnu/gettext/gettext-0.11.5.tar.gz</a> +<li>ICONV (string converstion for text internationalization) +(Many systems already provide iconv in glibc. Check to see if you already +have a working /usr/bin/iconv before installing this extra package.) +<br> +<a href="http://ftp.gnu.org/gnu/libiconv/libiconv-1.8.tar.gz"> +http://ftp.gnu.org/gnu/libiconv/libiconv-1.8.tar.gz</a> +<li>TCL (a command interpreter for the tcldot GUI) +<a href="http://prdownloads.sourceforge.net/tcl/tcl8.3.5-src.tar.gz"> +http://prdownloads.sourceforge.net/tcl/tcl8.3.5-src.tar.gz</a> +<li>LIBTOOL (generic library support) +<a href="ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.5.22.tar.gz"> +ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.5.22.tar.gz +</a> +</ul> +<P> +These libraries (either static or dynamic) and their +interface header files must already be on your system. +It's OK if you install your own copies of these packages, +though you may need to tell make or configure where to find them. +Run "configure --help" for details. +<P> +On most Linux distributions these packages are already installed +or installable from packages included in the distribution. +You might need to install some -devel packages to get the include +header files. + +<h2>Abbreviated Build Instructions (GNU tools)</h2> + +<p>If you are using GNU tools, the recommended method for building +graphviz is the usual: +<pre> + + ./configure + make + make install +</pre> + +<p>If you are building from CVS sources, then you must have +recent versions of "libtool", "automake", and "autoconf". +Build with: +<pre> + + ./autogen.sh + ./configure + make + make install +</pre> + +<p>If you are not building with GNU tools, then there are some +tried-and-true old-style Makefiles that can be used instead. +Details below. + +<h2>Detailed Build Instructions</h2> + +<P> +There are a handful of preprocessor defines that control the +image driver configuration. These preprocessor defines need to +agree with the libraries used in the Makefile. +<p> +The generic raster driver is <tt>gd</tt> and it can be configured to +generate GIF (no compression), PNG (lossless compression), JPEG +(lossy compression), and wireless bitmap (WBMP) files. +The compressors all need <tt>zlib</tt>. In the current build we +have a top-level config.h file that defines various symbols, such as: +<P> + HAVE_JPEG<br> + HAVE_PNG<br> +<P> +If you don't enable the <tt>gd</tt> based drivers, graphviz will +still have the <tt>printf</tt> style drivers for Postscript and SVG. +(However, even these benefit from better text size estimation via +Freetype, when it is available.) +<P> +<h2>Build tools for Unix</h2> +You have several choices. +<P> +1. (Recommended for Linux) Use configure generated by GNU autoconf. +This often works well on a vanilla Linux distribution with +Tcl/Tk, freetype-devel and libjpeg already installed by root +under /usr. Probably works OK with Solaris, too. +Otherwise some adjusting of command line arguments +to <tt>configure</tt> will be needed. +For Linux you can also just pick up the source tarball +or RPMs <A HREF="http://www.graphviz.org/pub/graphviz/">here</A>. +<P> +First, if you are using sources from CVS, run "./autogen.sh" +to generate the "configure" script. If you are using sources +from graphviz-<version>.tar.gz this autogen.sh step should not be +needed. +<p> +Next, run configure. For help on possible configure options, run: +<br> +<pre> +./configure --help +</pre> +<p> +For example, I use <br> +<pre> +./configure --prefix=$HOME/arch/sgi.mips3 \ + --with-freetypeincludedir=$HOME/arch/$ARCH/include/freetype2 \ + --with-freetypelibdir=$HOME/arch/$ARCH/lib \ + --with-tcl=/usr/common/tcl8.3.3 </pre> +<P> +Obviously you would change the pathnames to reflect your installation. +<p> +Note that the directory ${prefix}/include is automatically searched +for headers, and ${prefix}/lib for libraries. +<P> +If you have problems with one or more of the optional script language bindings, +they can be disabled with e.g. --disable-perl. +<p> +2. (Recommend for other Unix platforms.) As above, you need +the external packages to be installed somewhere. +<ul> +<li> +Run configure.old from the root graphviz directory. +<li> +Edit Config.mk for your architecture, tools, and installation directory. +In particular, set the ARCH make variable. +<li> +If desired, check settings in makearch/$(ARCH). +See below for further notes on individual platforms. +<li> +Run make. +</ul> +<pre> +make +make install +make clean +</pre> + +<P> +3. (Recommended for Dave Korn and Eleftheris Koutsofios) Use AT&T/Lucent +<A HREF="http://www.research.att.com/sw/tools/reuse/packages/astkit.html">nmake</A>. +<P> +You have to install the AST tools first. +<P> +Then edit Makeargs in the top source directory appropriately +and <tt>nmake install</tt>. Some fiddling with X11 libs is probably +necessary to compile 'lefty'. This usually involes editing +$INSTALLROOT/lib/lib/Xt or X11 (or less portably, edit nmakefile). +You may also need... +<pre> +export PACKAGE_tcl=/where/tcl/is/installed +</pre> +<P> +When nmake works, it's absolutely great, but it's usually +some work to get the environment right including the +actions of tools like <tt>iffe</tt> (the AST equivalent +of what GNU <tt>configure</tt> does). If you're Lefty +or Dave Korn, you already knew that. +<P> +<h2>Build tools for win32</h2> +<p>See separate +<A HREF="http://www.graphviz.org/pub/scm/graphviz2/doc/winbuild.html"> +build notes</A> for Microsoft Windows (in native mode). +<p> +With some persistence you can likely get Graphviz to build on +<A HREF="http://www.research.att.com/sw/tools/uwin">UWIN</A> +or <A HREF="http://www.cygwin.com/">Cygwin</A> installed on +Microsoft Windows. You will still need various third-party packages +to enable all the Graphviz drivers. + +<!-------------------------------------------------------------------------- +Currently we build graphviz on Windows using the MS Visual C++ compiler only. +The project and makefiles can be found in both the CVS tree and the source +distribution package in the $ROOT/windows directory. ($ROOT refers +to the directory where the source tree has been installed.) +<p> +Follow the step-by-step procedure given below: +<p> +<ol> +<li>Open the WSH script file $ROOT/windows/winmake.wsf using a text editor +and set the "vc" variable to the location of MS VC++ on your machine.</li> +<p> +<li>Download the third-party libraries/header files from +<a href=http://www.research.att.com/sw/tools/graphviz/dist/third-party.zip>http: +//www.research.att.com/sw/tools/graphviz/dist/third-party.zip</a>. +Unzip the file in $ROOT directory.</li> +<p> +<li>Execute the $ROOT/windows/winmake.wsf file by double-clicking on the +file within Windows Explorer.</li> +<p> +<li>If the script throws errors, you'll need to open the graphviz project in +$ROOT/makearch/win32/static/graphviz.dsw using the MS Visual Studio. +Switch to the "File View" within the MS Visual Studio and trigger project +builds individually.</li> +<p> +<li>Follow step 4 for building tools in +$ROOT/makearch/win32/static/tools.dsw.</li> +</ol> + +<P> +If you're ambitious, we have also used nmake from +<A HREF="http://www.research.att.com/sw/tools/uwin"> +AT&T UWIN</A> to build for both the UWIN environment +and the native win32 platform. +<pre> + export nativepp=-1 <br> + nmake CC=ncc MSWIN32==1 +</pre> +(the nativepp thing seems fixed in UWIN 2.25). +<p> +Obviously you need to have native versions +of zlib, libpng, jpeg and freetype. (See step 2 above. Or build them +yourself; see notes below.) +<P> +If you're running UWIN, of course, you can always just go +with either the old binaries of graphviz for UWIN +(from Dave Korn's <A HREF="http://www.research.att.com/sw/tools/uwin">UWIN +site </A>) or build graphviz as a UWIN program using nmake or gmake. +<br> +<P> +More win32 notes... +<il> +<P> +<li> +Add extra fluff to globals.h to pull in astwin32.h but #undef _UWIN +when compiling with CC=ncc. +</li> +<P> +<li> +MSVC 5.0 C compiler may die when -O is invoked on neato/splines.c; +this required nmakefile CC.NOOPTIMIZE. +</li> +<P> +<li> +Get cygwin versions of: zlib, png, jpeg-6b (required minor +source mods), freetype.1.3.1. +</li> +<P> +<li> +Build zlib by <tt>configure CC=ncc --prefix=/home/users/north/src/usr</tt> +then <tt>gmake install</tt> +</li> +<P> +<li> +Build png by copying scripts/makefile.gcc to makefile and editing slightly +then gmake install +</li> +<P> +<li> +Build jpeg same as zlib: <tt> gmake install-lib install-headers </tt> +</li> +<P> +<li> +Needed to hand-craft a lib/lib/z to go with our libz.a in order +to not unintentionally pull in /usr/lib/ast.lib (because of mistakenly +binding the lib/lib/z that goes with /usr/lib/z.lib). +</li> +<P> +<li> +-----------------------------------------------------------> +We haven't tried to build tcldot or webdot in win32. +</li> +<h2>Unix platform-specific build notes</h2> +<h2>AIX</h2> +Matt Fago tells us that "--enable-shared=no" is required or the +executables segfault after seemingly correct compiles. (Bug #421) +<h2>SGI</h2> +The default Irix libjpeg is obsolescent. We need at least +version 62. It wasn't at all clear to me where to get sources for +this - eventually I found the source for v61 and patches for v62 +using a search engine. We may eventually remove JPEG support +(lossy compression seems good for photos, not technical diagrams) +so if you can't get this to work, the loss of -Tjpeg is no big deal. +<P> + +We found that on some platforms (Solaris?) +gd/dotneato and freetype MUST be compiled with the +same C compiler (e.g. gcc, or the native cc). +Otherwise there are are weird stack argument errors in +the call to TT_Open_Face. I don't have time to try +to figure out what's wrong. + +<h2>Solaris</h2> +Put /usr/ccs/bin in PATH + +<h2>HP-UX</h2> +The X11 package must include /usr/contrib/X11R6 +as well as the base stuff. For some reason GNU autoconf doesn't seem to find +X11 in this location so you may need to add the following to the +./configure line: +<pre> +--with-Xawincludedir=/usr/contrib/X11R6/include --with-Xawlibdir=/usr/contrib/X11R6/lib +</pre> + +<h2>Apple Mac OS/X</h2> +<P> +Currently, PixelGlow (Glen Low) provides a full featured +<A HREF="http://www.pixelglow.com/graphviz/"> +port of Graphviz</A> including a very nice Aqua-based graph +document container. Highly recommended. We merged his patches +into our source, but we don't build or test on OS X. Talk to Glen. +<P> +The following are old pre-Pixelglow build notes: +<P> +dot and neato build with old make. (Didn't bother with tcldot.) +<P> +There could still be problems with case-sensitive names, +though we fixed all the ones we could find. +<P> +It's weird that Mac OSX declares lrand48() but it's not +defined in any of the standard system library functions. + +<h2>GNU style building</h2> + +<pre> +<!-- +To produce graphviz-(ver).tar.gz from CVS sources. + + cvs checkout graphviz + cd graphviz + ./autogen.sh + make dist +--> +To produce graphviz-(ver).tar.gz from GIT sources using cogito. + cg clone http://www.graphviz.org/pub/scm/graphviz2/.git + cd graphviz2 +or to update from GIT + cd graphviz2 + cg update +then + ./autogen.sh + make dist + +(Cogito & GIT are available from http://www.kernel.org/pub/software/scm/ +or as binary packages in Fedora-Extras ) + +To build source and binary rpms (results are left in /usr/src/redhat/ ): + + rpm -ta graphviz-(ver).tar.gz + +To build locally: + + zcat graphviz-(ver).tar.gz | tar xfvo - + cd graphviz-(ver) + ./configure + make + make install +</pre> + +</body> +</html>