Mercurial > hg > camir-aes2014
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:e9a9cd732c1e |
|---|---|
| 1 <html> | |
| 2 <head> | |
| 3 <title>Graphviz Build Instructions for Windows</title> | |
| 4 </head> | |
| 5 <body bgcolor=#ffffff> | |
| 6 <h2>Graphviz Build Instructions for Windows</h2> | |
| 7 <P> | |
| 8 <b>(Graphviz versions ≥ 2.22)</b> | |
| 9 <P> | |
| 10 We now build both Visual Studio and MinGW versions of Graphviz. | |
| 11 In addition, the source package comes with project files for Visual Studio, | |
| 12 so building from source should be fairly simple in either case. | |
| 13 <UL> | |
| 14 <LI> | |
| 15 The first step is to add the third-party libraries. These are listed | |
| 16 <A HREF="http://www.graphviz.org/Download_source.php">here</A>. | |
| 17 This is most easily done by installing | |
| 18 a Windows binary version of <A HREF="http://www.gtk.org">GTK 2.0</A> or later. | |
| 19 <LI> | |
| 20 Next, download and unwrap the Graphviz source package. Go to | |
| 21 <A HREF=http://www.graphviz.org/Download_source.php>http://www.graphviz.org/Download_source.php</A> | |
| 22 and copy over either the stable release | |
| 23 or the development source package. | |
| 24 </UL> | |
| 25 Let $ROOT be the root directory (folder) | |
| 26 in which you stored the Graphviz source. | |
| 27 <h3>Building with Visual Studio</h3> | |
| 28 <OL> | |
| 29 <LI> | |
| 30 Copy the file $ROOT/windows/config.h into $ROOT. | |
| 31 <LI> | |
| 32 Copy the folder $ROOT/windows/FEATURE into $ROOT. | |
| 33 <LI> | |
| 34 Start Visual Studio and read in $ROOT/graphviz.sln. | |
| 35 There are project files for all of the parts of Graphviz. | |
| 36 <LI> | |
| 37 Modify the various settings for include file and library directories to find | |
| 38 the third-party software. | |
| 39 <LI> | |
| 40 Modify the settings as to where you want the software installed. | |
| 41 <LI> | |
| 42 Build Graphviz. | |
| 43 </OL> | |
| 44 <h3>Building with MinGW</h3> | |
| 45 <OL> | |
| 46 <LI> Install MinGW and Msys. This gives a mini GNU-like compile environment | |
| 47 <LI> Set environment variables based on your machine, giving values to the | |
| 48 first six below: | |
| 49 <CODE> | |
| 50 <PRE> | |
| 51 export INSTALLROOT # Root install directory | |
| 52 export GTKDIR # Root of GTK tree | |
| 53 export FONTCONFIGINCLUDEDIR # Path of fontconfig include dir | |
| 54 export FONTCONFIGLIBDIR # Path of fontconfig lib dir | |
| 55 export FREETYPEINCLUDEDIR # Path of freetype2 include dir | |
| 56 export FREETYPELIBDIR # Path of freetype2 lib dir | |
| 57 | |
| 58 export CFLAGS="-DGVDLL=1" | |
| 59 export CPPFLAGS="-I$GTKDIR/include -I$GTKDIR/include/freetype2 " | |
| 60 export LDFLAGS="-L$GTKDIR/lib -no-undefined" | |
| 61 export FONTCONFIG_CFLAGS=-I$GTKDIR/include/ | |
| 62 export FONTCONFIG_LIBS="-L$FONTCONFIGLIBDIR -lfontconfig" | |
| 63 export FREETYPE2_CFLAGS=-I$FREETYPEINCLUDEDIR | |
| 64 export FREETYPE2_LIBS="-L$FREETYPELIBDIR | |
| 65 export PKG_CONFIG=$GTKDIR/bin/pkg-config | |
| 66 export PKG_CONFIG_PATH=$GTKDIR/lib/pkgconfig | |
| 67 | |
| 68 export PANGOFLAGS="--with-fontconfig --with-fontconfiglibdir$FONTCONFIGLIBDIR --with-fontconfigincludedir=$FONTCONFIGINCLUDEDIR --with-pangocairo" | |
| 69 | |
| 70 </PRE> | |
| 71 </CODE> | |
| 72 <LI> Change directory to $ROOT and run configure:<BR> | |
| 73 <CODE> | |
| 74 <PRE> | |
| 75 ./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 | |
| 76 | |
| 77 </PRE> | |
| 78 </CODE> | |
| 79 When configure finishes, it lists all of the Graphviz features that have been | |
| 80 enabled. If there are problems, you can check for errors in <TT>config.log</TT>. | |
| 81 You may have to add or modify | |
| 82 other flags and environment variables for <TT>configure</TT> to give you the | |
| 83 settings you want. Run <TT>configure --help</TT> | |
| 84 to see the allowed options and environment variables. | |
| 85 <LI> Run <TT>make</TT> | |
| 86 <LI> Run <TT>make install</TT> | |
| 87 </OL> | |
| 88 These builds create a feature-full version of Graphviz. You can tailor | |
| 89 them to your wants. This is fairly simple for MinGW: just remove or reset | |
| 90 the flag of the option you don't want. For Visual Studio, you will probably | |
| 91 need to reset some of the values in <TT>config.h</TT> and some of the | |
| 92 compile-time options. | |
| 93 <HR> | |
| 94 <P> | |
| 95 <b>(2.21 >= Graphviz versions > 2.14)</b> | |
| 96 <P> | |
| 97 To simplify our build process, especially as most Windows users only | |
| 98 want a binary version of the software, the Graphviz build for Windows | |
| 99 now uses <A HREF="http://www.research.att.com/sw/tools/uwin/"><B>uwin</B></A>, | |
| 100 an open-source Unix layer on top of Windows. In this | |
| 101 environment, we can use essentially the same tools and process | |
| 102 used on Unix. In particular, we do not have to maintain multiple build | |
| 103 files. | |
| 104 <P> | |
| 105 To build Graphviz: | |
| 106 <OL> | |
| 107 <LI> | |
| 108 Install the third-party libraries. This is most easily done by installing | |
| 109 a Windows binary verion of <A HREF="http://www.gtk.org">GTK 2.0</A> or later. | |
| 110 <LI> | |
| 111 Download the Graphviz source package:<BR>Go to | |
| 112 <A HREF=http://www.graphviz.org/Download_source.php>http://www.graphviz.org/Download_source.php</A> | |
| 113 and copy over either the stable release <TT>graphviz-</TT><I>VERSION</I><TT>.tar.gz</TT> | |
| 114 or the development source package <TT>graphviz-working.tar.gz</TT>. | |
| 115 <LI> | |
| 116 Unwrap the package:<BR> | |
| 117 You can use, for example,<BR><BR> | |
| 118 <TT>gunzip < graphviz-working.tar.gz | tar xf -</TT><BR> | |
| 119 <SPACER TYPE=VERTICAL SIZE=10> | |
| 120 <BR> | |
| 121 Let <TT>$ROOT</TT> be the directory in which you stored the Graphviz source. | |
| 122 <LI> | |
| 123 Configure the package for your system:<BR><BR> | |
| 124 <TT>cd $ROOT</TT><BR> | |
| 125 <TT>configure --disable-shared --enable-static --with-mylibgd --disable-swig --without-x --without-tclsh --with-codegens --disable-ltdl</TT><BR><BR> | |
| 126 You will probably want to provide additional arguments to | |
| 127 <TT>configure</TT> to indicate where you have installed GTK, where | |
| 128 you want the results installed (<TT>--prefix</TT>) and which | |
| 129 additional optional packages you want built. Run <TT>configure --help</TT> | |
| 130 to see the available set of arguments. | |
| 131 <LI> | |
| 132 Build Graphviz:<BR><BR> | |
| 133 <TT>make install</TT><BR><BR> | |
| 134 </OL> | |
| 135 <P> | |
| 136 Presumably, a similar approach would work with Cygwin or MinGW. | |
| 137 The following are some notes by | |
| 138 <A HREF="https://mailman.research.att.com/pipermail/graphviz-devel/2007/000444.html">Steve Roush</A> | |
| 139 describing how he | |
| 140 made a static build of the libraries on MinGW. | |
| 141 <MENU> | |
| 142 <LI> Install MinGW and Msys. This gives a mini GNU-like compile environment | |
| 143 that produces Windows-compatible results. | |
| 144 <LI> You may need to configure and build in Windows "Safe mode". Try | |
| 145 ./configure in normal mode; if it dies with "fork" problems, use Safe mode. | |
| 146 <LI> Edit the "configure" file.<BR> | |
| 147 after this line:<BR> | |
| 148 <CODE>DEFS=-DHAVE_CONFIG_H</CODE><BR> | |
| 149 add these lines:<BR> | |
| 150 <CODE> | |
| 151 <PRE> | |
| 152 case "$host_os" in | |
| 153 mingw*) | |
| 154 DEFS="$DEFS -DWIN32 -DMSWIN32" | |
| 155 ;; | |
| 156 esac | |
| 157 </PRE> | |
| 158 </CODE> | |
| 159 <LI> run configure:<BR> | |
| 160 <CODE> | |
| 161 <PRE> | |
| 162 ./configure --enable-static=yes --enable-shared=no | |
| 163 --prefix=/usr/local/ --with-libgd=no --enable-ltdl=no --disable-swig | |
| 164 --disable-sharp --disable-guile --disable-io --disable-java | |
| 165 --disable-lua --disable-ocaml --disable-perl --disable-php | |
| 166 --disable-python --disable-ruby --disable-tcl | |
| 167 </PRE> | |
| 168 </CODE> | |
| 169 <LI> edit lib/Makefile<BR> | |
| 170 replace these lines:<BR> | |
| 171 <CODE> | |
| 172 <PRE> | |
| 173 SUBDIRS = cdt graph agraph gd pathplan agutil sfio vmalloc ast vpsc \ | |
| 174 circogen dotgen fdpgen neatogen twopigen common pack gvc \ | |
| 175 ingraphs expr | |
| 176 </PRE> | |
| 177 </CODE> | |
| 178 | |
| 179 with these lines:<BR> | |
| 180 <CODE> | |
| 181 <PRE> | |
| 182 SUBDIRS = cdt graph agraph gd pathplan vpsc \ | |
| 183 circogen dotgen fdpgen neatogen twopigen common pack gvc \ | |
| 184 ingraphs | |
| 185 | |
| 186 make # builds most of "lib" (see Makefile changes), cmd/dot and | |
| 187 cmd/tools - stops on cmd/gvpr | |
| 188 make install | |
| 189 </PRE> | |
| 190 </CODE> | |
| 191 </MENU> | |
| 192 here is the command line I used to build "simple.c" (dot.demo/simple.c), | |
| 193 after adding a few lines based on | |
| 194 https://mailman.research.att.com/pipermail/graphviz-interest/2006q2/003586.html | |
| 195 | |
| 196 | |
| 197 <CODE> | |
| 198 <PRE> | |
| 199 X=simple;gcc -v -I'/usr/local/include/graphviz' -I'/usr/local/include' | |
| 200 -o $X -O $X.c -L/usr/local/lib -L/usr/local/lib/graphviz -lgvc -lgraph | |
| 201 -lpathplan -lcdt -lgvplugin_core -lgvplugin_dot_layout | |
| 202 -lgvplugin_neao_layout -lgvplugin_gd -lgvplugin_pango -lgvc -lpathplan | |
| 203 </PRE> | |
| 204 </CODE> | |
| 205 <P> | |
| 206 If you | |
| 207 desire to build directly using Visual Studio or other non-Unix-based | |
| 208 environment, you will need to derive the necessary information from the | |
| 209 supplied Makefiles. | |
| 210 <HR> | |
| 211 <P> | |
| 212 <b>(2.14 >= Graphviz versions >= 2.3)</b> | |
| 213 <P> | |
| 214 We build Graphviz on Windows using the MS Visual C++ 6.0 compiler | |
| 215 only. The simplest way to build the software from source on Windows is as | |
| 216 follows: | |
| 217 <OL> | |
| 218 <LI> | |
| 219 Download the Windows source package from: | |
| 220 <A HREF=http://www.graphviz.org/Download_windows.php>http://www.graphviz.org/Download_windows.php</A>. | |
| 221 </LI> | |
| 222 <SPACER TYPE=VERTICAL SIZE=10> | |
| 223 <LI> | |
| 224 Unwrap the package:<BR> | |
| 225 If you have Unix tools available, you can use | |
| 226 <SPACER TYPE=VERTICAL SIZE=10> | |
| 227 <TT>gunzip < graphviz-win.tgz | tar xf -</TT><BR> | |
| 228 <SPACER TYPE=VERTICAL SIZE=10> | |
| 229 If not, double click on the file and WinZip should start up and let you | |
| 230 store all of the files into a directory.<BR> | |
| 231 Let <TT>$ROOT</TT> be the directory in which you stored the Graphviz source. | |
| 232 </LI> | |
| 233 <SPACER TYPE=VERTICAL SIZE=10> | |
| 234 <LI> | |
| 235 Add the third-party libraries: | |
| 236 <SPACER TYPE=VERTICAL SIZE=10> | |
| 237 <UL TYPE=DISC> | |
| 238 <LI> | |
| 239 zlib 1.1.3 <A HREF=http://www.gzip.org/zlib/>http://www.gzip.org/zlib/</A> | |
| 240 <LI> | |
| 241 libpng 1.0.6 <A HREF=http://www.libpng.org/pub/png>http://www.libpng.org/pub/png</A> | |
| 242 <LI> | |
| 243 jpeg-6b 62 <A HREF=http://www.ijg.org/>http://www.ijg.org/</A> | |
| 244 <LI> | |
| 245 freetype 2.1.7 <A HREF=http://freetype.sourceforge.net/>http://freetype.sourceforge.net/</A> | |
| 246 <LI> | |
| 247 expat <A HREF=http://expat.sourceforge.net/>http://expat.sourceforge.net/</A> | |
| 248 </UL> | |
| 249 <SPACER TYPE=VERTICAL SIZE=10> | |
| 250 The versions should be at least the ones indicated. | |
| 251 You can download the files from | |
| 252 <a href=http://www.graphviz.org/Misc/third-party.zip>http://www.graphviz.org/Misc/third-party.zip</a>. | |
| 253 Unzip the package in the <TT>$ROOT</TT> directory; this will create a subdirectory called | |
| 254 <TT>third-party</TT>. | |
| 255 Or you can obtain the libraries yourself, and install | |
| 256 them in <TT>$ROOT\third-party</TT> | |
| 257 Also note that these libraries come with the binary release. | |
| 258 </LI> | |
| 259 <SPACER TYPE=VERTICAL SIZE=10> | |
| 260 <LI> | |
| 261 Build the software in one of the following ways:<BR> | |
| 262 <UL TYPE=DISC> | |
| 263 <LI> Run the script <TT>$ROOT\build.bat</TT> while in the <TT>$ROOT</TT> | |
| 264 directory. You'll first want to check | |
| 265 that the <TT>vc</TT> variable points to your local installation of visual C. | |
| 266 Obviously, this should be run in a DOS command window. | |
| 267 <LI> The file <TT>$ROOT\ws\graphviz.dsw</TT> | |
| 268 is the main workspace for the Graphviz libraries and graph drawing programs. | |
| 269 The file | |
| 270 <TT>$ROOT\ws\tools.dsw</TT> provides the workspace for the | |
| 271 additional Graphviz tools. Double-clicking on these files will open the | |
| 272 workspaces using the MS Visual Studio, from which you can use the Build | |
| 273 menu item to create the various libraries and programs. | |
| 274 <PP> | |
| 275 Note that we have avoided all dependencies (i.e., there are no .dep files) | |
| 276 because we found they tended to include absolute pathnames. | |
| 277 If necessary, follow the order used in <TT>build.bat</TT> to be safe. | |
| 278 <LI> If you have a Unix environment, with a real ksh, run the script | |
| 279 <TT>$ROOT\wmake.sh</TT> | |
| 280 after setting the PATH, LIB and INCLUDE shell variables to the paths where | |
| 281 the Visual C programs are installed on your machine, and the associated | |
| 282 library and include file directories. | |
| 283 </UL> | |
| 284 </OL> | |
| 285 <P> Once built, all of the libraries and programs will be found in | |
| 286 either the Release or Debug subdirectory of the corresponding source | |
| 287 directory. If you wish to install | |
| 288 the software somewhere, edit the file <TT>$ROOT\install.bat</TT> to | |
| 289 set the variable <TT>root</TT> to be the absolute pathname of the | |
| 290 directory where you want | |
| 291 the software installed, and then run the script <TT>$ROOT\install.bat</TT> | |
| 292 from the <TT>$ROOT</TT> directory. | |
| 293 <P> | |
| 294 If you want to change source files, you can just do it and rebuild. | |
| 295 If, however, you want to add new files or projects, you will | |
| 296 have to redo the makefiles or scripts. | |
| 297 <P> | |
| 298 If you have problems or questions, please contact us at | |
| 299 <A href=mailto:erg@research.att.com>erg@research.att.com</A>. | |
| 300 </body> | |
| 301 </html> |
