This file is indexed.

/usr/share/doc/graphviz/html/winbuild.html is in graphviz-doc 2.36.0-0ubuntu3.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
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 --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>