summaryrefslogtreecommitdiffstats
path: root/doc/install.doc
blob: 3b0c6b21178030f1eb01488fcc1e26214c586636 (plain)
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
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
/******************************************************************************
 *
 * 
 *
 * Copyright (C) 1997-2000 by Dimitri van Heesch.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation under the terms of the GNU General Public License is hereby 
 * granted. No representations are made about the suitability of this software 
 * for any purpose. It is provided "as is" without express or implied warranty.
 * See the GNU General Public License for more details.
 *
 * Documents produced by Doxygen are derivative works derived from the
 * input used in their production; they are not affected by this license.
 *
 */
/*! \page install Installation

\addindex installation
First go to the 
<a href="http://www.stack.nl/~dimitri/doxygen/download.html">download</a> page
\latexonly({\tt http://www.stack.nl/$\sim$dimitri/doxygen/download.html})\endlatexonly
to get the latest distribution, if you did not have it already.

\subsection install_src_unix    Compiling from source on Unix

If you downloaded the source distribution, you need at least the 
following to build the executable:
<ul>
<li>Troll Tech's GUI toolkit 
    <A HREF="http://www.trolltech.com/products/qt.html">Qt</A>
    \latexonly(see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly.
    \addindex Qt
    You can download either version 1.44 or version 2.1.x.
    If want to build the GUI front-end you will need Qt 2.1.x. If you do
    not need it, using Qt 1.44 will result in a somewhat smaller executable. 
<li>The <a href="ftp://prep.ai.mit.edu/pub/gnu">GNU</a> tools 
    flex, bison and make
    \addindex flex
    \addindex bison
    \addindex make
<li>In order to generate a Makefile for your platform, you need 
    <a href="http://www.perl.com>perl</a>
    \latexonly(see {\tt http://www.perl.com})\endlatexonly.
    \addindex perl
</ul>

To take full advantage of doxygen's features the following additional
tools should be installed.

<ul>
<li>A \f$\mbox{\LaTeX}\f$ distribution: for instance
    <a href="http://www.tug.org">teTeX 1.0</a>.<br>
    This is needed for generating LaTeX, Postscript, and PDF output.
<li><a href="http://www.research.att.com/sw/tools/graphviz/">
    the Graph visualization toolkit version 1.5</a><br>
    Needed for the include dependency graphs, 
    the graphical inheritance graphs,
    and the collaboration graphs.
<li>The ghostscript interpreter.
</ul>

Compilation is now done by performing the following steps:

<ol>
<li> Unpack the archive, unless you already have done that:
   
\verbatim
    gunzip doxygen-$VERSION.src.tar.gz    # uncompress the archive
    tar xf doxygen-$VERSION.src.tar       # unpack it
\endverbatim

<li>Run the configure script:
 
\verbatim
    sh ./configure
\endverbatim

    The script tries to determine the platform you use, the location
    of the Qt library, the make tool (which \e must be GNU make) and the perl 
    interpreter. It will report what it finds. 

    To override the auto detected platform and compiler you can run
    configure as follows:

\verbatim
    configure --platform platform-type
\endverbatim

    See the <code>PLATFORMS</code> file for a list of possible platform
    options.

    If you have Qt-2.1.x installed and want to build the GUI front-end, you
    should run the configure script with the <code>--with-doxywizard</code> 
    option:

\verbatim
    configure --with-doxywizard
\endverbatim

    For an overview of other configuration options use

\verbatim
    configure --help
\endverbatim

<li>Compile the program by running make:

\verbatim
    make
\endverbatim

    The program should compile without problems and three binaries 
    (<code>doxygen</code>, <code>doxytag</code>, and <code>doxysearch</code>) 
    should be available in the bin directory of the distribution.

<li>Optional: Generate the user manual.
    
\verbatim
    make docs
\endverbatim

    To let doxygen generate the HTML documentation.
    
    \note you will need the stream editor <code>sed</code> for this, 
    but this should be available on any Unix platform.

    The HTML directory of the distribution will now contain the html 
    documentation (just point a HTML browser to the file 
    <code>index.html</code> in the 
    html directory).
    
<li>Optional: Generate a postscript and pdf version of the manual. 
    (you will need <code>latex</code> and <code>dvips</code> and
     the ghostscript package for this).

\verbatim
    make pdf
\endverbatim

    The postscript manual <code>doxygen_manual.ps</code> will be located 
    in the latex directory of the distribution. Just send it to a 
    postscript printer to print it or use <code>ghostview</code> to view it. 

</ol>

\subsection install_bin_unix    Installating the binaries on Unix

    If you downloaded the binary distribution for Unix, you can install 
    doxygen by typing:

\verbatim
    ./configure
    make install
\endverbatim   

    Binaries are installed in the directory <code>\<prefix\>/bin</code>
    Documentation and examples in the directory 
    <code>\<prefix\>/doc/doxygen</code>

    <code>\<prefix\></code> defaults to /usr but can be changed with 
    the <code>--prefix</code> option of the configure script. 

    Alternatively, you can also copy the binaries from the <code>bin</code> 
    directory manually to some <code>bin</code> directory in your search path.
    This is sufficient to use doxygen.

    \note You need the GNU install tool for this to work. Other
    install tools may put the binaries in the wrong directory!

    If you have a RPM or DEP package, then please follow the 
    standard installation procedure that is required for these packages. 

\subsection unix_problems Known compilation problems for Unix

<b>Qt problems</b>

The Qt include files and libraries are not a sub directory of the
directory pointed to by QTDIR on some systems.
(for instance on Red Hat 6.0 includes are in /usr/include/qt and
libs are in /usr/lib)
  
The solution: goto the root of the doxygen distribution and do:
\verbatim
   mkdir qt
   cd qt
   ln -s your-qt-include-dir-here include
   ln -s your-qt-lib-dir-here lib
   export QTDIR=$PWD
\endverbatim 

If you have a csh-like shell you should use <code>setenv QTDIR $PWD</code>
instead of the <code>export</code> command above.
  
Now install doxygen as described above.  

<b>Latex problems</b>

the file <code>a4wide.sty</code> is not available for all distributions. If
your distribution does not have it please select another paper type
in the config file (see the \ref cfg_paper_type "PAPER_TYPE" tag in the 
config file).

<b>HP-UX & Digital Unix problems</b>

If you are compiling for HP-UX with aCC and you get this error:
\verbatim
    /opt/aCC/lbin/ld: Unsatisfied symbols:
    alloca (code)
\endverbatim
  then you should (according to Anke Selig) edit <code>ce_parse.cpp</code> 
  and replace
\verbatim
    extern "C" {
      void *alloca (unsigned int);
    };
\endverbatim
  with
\verbatim
    #include <alloca.h>  
\endverbatim

  If that does not help, try removing <code>ce_parse.cpp</code> and let 
  bison rebuilt it (this worked for me).

If you are compiling for Digital Unix, the same problem can be solved
(according to Barnard Schmallhof) by replacing the following in 
ce_parse.cpp:
   
\verbatim
    #else /* not GNU C.  */
    #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
    #include <alloca.h>
\endverbatim

  with

\verbatim
    #else /* not GNU C.  */
    #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || defined (__osf__)
    #include <alloca.h>
\endverbatim

  Alternatively, one could fix the problem at the bison side.
  Here is patch for bison.simple (provided by Andre Johansen):
 
\verbatim
--- bison.simple~       Tue Nov 18 11:45:53 1997
+++ bison.simple        Mon Jan 26 15:10:26 1998
@@ -27,7 +27,7 @@
 #ifdef __GNUC__
 #define alloca __builtin_alloca
 #else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || defined (__alpha)
 #include <alloca.h>
 #else /* not sparc */
 #if defined (MSDOS) && !defined (__TURBOC__)
\endverbatim

  The generated scanner.cpp that comes with doxygen is build with this
  patch applied.  

<b>Sun compiler problems</b>

I tried compiling doxygen only with Sun's C++ WorkShop Compiler
version 5.0 (I used <code>./configure --platform solaris-cc</code>)

Qt-2.x.x is required for this compiler (Qt-1.44 has problems with the bool
type).

Compiling the \c doxygen binary went ok, but while linking <code>doxytag</code> I got a 
lot of link errors, like these:

\verbatim
QList<PageInfo>::__vtbl   /home/dimitri/doxygen/objects/SunWS_cache/CC_obj_6/6c3eO4IogMT2vrlGCQUQ.o
[Hint: try checking whether the first non-inlined, non-pure virtual function of class QList<PageInfo> is defined]
\endverbatim

These are generated because the compiler is confused about the object sharing
between \c doxygen and \c doxytag. To compile \c doxytag and \c doxysearch 
anyway do:

\verbatim
rm -rf objects
mkdir objects
cd src
gmake -f Makefile.doxytag
gmake -f Makefile.doxysearch
\endverbatim

when configuring with <code>--static</code> I got:

\verbatim
Undefined                       first referenced
 symbol                             in file
dlclose                             /usr/lib/libc.a(nss_deffinder.o)
dlsym                               /usr/lib/libc.a(nss_deffinder.o)
dlopen                              /usr/lib/libc.a(nss_deffinder.o)
\endverbatim

Manually adding <code>-Bdynamic</code> after the target rule in 
<code>Makefile.doxygen</code> and <code>Makefile.doxytag</code> 
will fix this:

\verbatim
$(TARGET): $(OBJECTS) $(OBJMOC) 
        $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) -Bdynamic
\endverbatim

<b>GNU 2.7.2.x compiler problems</b>

Older versions of the GNU compiler have problems with constant strings
containing characters with character codes larger than 127. Therefore 
the compiler will fail to compile some of the translator_xx.h files. 
A workaround, if you are planning to use the English translation only, 
is to configure doxygen with the <code>--english-only</code> option.  

\subsection install_src_windows Compiling from source on Windows

Currently, I have only compiled doxygen for Windows using Microsoft's 
Visual C++ (version 6.0). For other compilers you may need to edit the 
perl script in <code>wintools/make.pl</code> a bit. 
Let me know what you had to change if you got Doxygen working with another 
compiler. 

Since Windows comes without all the nice tools that Unix users are
used to, you need to install a number of these tools before you can compile 
doxygen for Windows.

Here is what is required:
<ul>
<li>WinZip to unpack the tar source distribution. This can be found at
    http://www.winzip.com
<li>Microsoft Visual C++ (I only tested with version 6.0).
    Use the <code>vcvars32.bat</code> batch file to set the environment 
    variables (if you did not select to do this automatically during 
    installation).
<li>Perl 5.0 or higher for Windows. This can be download from:
    http://www.ActiveState.com/Products/ActivePerl/
<li>The GNU tools flex, bison and sed.
    To get these working on Windows you should install the 
    <a href="http://sourceware.cygnus.com/cygwin/">cygwin tools</a>
    \latexonly(see {\tt http://sourceware.cygnus.com/cygwin/})\endlatexonly.
    
    Make sure the <code>BISONLIB</code> environment variable points to the
    location where the files <code>bison.simple</code> and 
    <code>bison.hairy</code> are located.

    Also make sure the tools are available from a dos box, by adding 
    the directory they are in to the search path.

<li>A professional license of 
    <A HREF="http://www.trolltech.com/products/qt.html">Qt for Windows</A>
    \latexonly\par (see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly.
   
    If you do not have that and you can live without the GUI front-end 
    you can also download Qt-1.44 for X11. Doxygen only the depends on 
    the tools section of the Qt library, which happens also to compile 
    on Windows. (Qt version 2.1.x does not work anymore, at least not 
    without adding some window's specific code). 
    
    Now create the following directories:

\verbatim
    qtools/src
    qtools/include
    qtools/lib
\endverbatim

    Copy the contents of the <code>src/tools</code> directory of the 
    Qt-1.44 for X11 archive to <code>qtools/src</code>. Also copy the include 
    files in <code>src/tools</code> to <code>qtools/include</code>. Create a 
    static library project resulting in <code>qtools/lib/qt.lib</code> and 
    add the files in <code>qtools/src</code> to that project. Then 
    build the library and set the environment variable <code>QTDIR</code> 
    to the absolute path of the qtools directory.

<li>To generate LaTeX documentation or formulas in HTML you need the tools: 
    latex, dvips and gswin32 
    To get these working under Windows install the fpTeX distribution
    You can download it at: 
    ftp://ctan.tug.org/tex-archive/systems/win32/web2c/fptex-0.3/

    Make sure the tools are available from a dos box, by adding the 
    directory they are in to the search path.

<li>If you want to generate compressed HTML help 
    (see \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP") in the 
    config file, then you need the Microsoft HTML help workshop. 
    You can download it at: 
    http://msdn.microsoft.com/workshop/author/htmlhelp
<li>If you used WinZip to extract the tar archive it will (apparently) not 
    create empty folders, so you have to add the folders
    <code>objects</code> and <code>bin</code> manually in the root of the 
    distribution before compiling.
<li><a href="http://www.research.att.com/sw/tools/graphviz/">
    the Graph visualization toolkit version 1.5</a><br>
    Needed for the include dependency graphs, the graphical inheritance graphs,
    and the collaboration graphs.<br>
</ul>

Compilation is now done by performing the following steps:

<ol>
<li>Open a dos box.
    Make sure all tools (i.e. <code>nmake</code>, <code>latex</code>, 
    <code>gswin32</code>, <code>dvips</code>, <code>sed</code>, 
    <code>flex</code>, <code>bison</code>, 
    <code>cl</code>, <code>rm</code> and <code>perl</code>), are accessible from the command-line 
    (add them to the PATH environment variable if needed).

<li>goto the doxygen root dir and type:

\verbatim
    make.bat
\endverbatim

    This should build the executables 
    <code>doxygen.exe</code>, <code>doxytag.exe</code>, and 
    <code>doxysearch.exe</code> (The compiler should not produce any 
    serious warnings or errors).

<li>To build the examples type:

\verbatim
    nmake examples
\endverbatim

<li>To generate the HTML documentation type:

\verbatim
    nmake docs
\endverbatim

    The generated docs are located in the html directory.

<li>
    To generate the postscript and PDF manual type:

\verbatim
    nmake pdf
\endverbatim

    The manual should now be in <code>latex/doxygen_manual.pdf</code>

</ol>

\subsection install_bin_windows Installating the binaries on Windows

There is no fancy installation procedure at the moment (If anyone wants
to add it please let me know).

To install doxygen, just copy the binaries from the <code>bin</code> directory
to a location somewhere in the path. Alternatively, you can include 
the <code>bin</code> directory of the distribution to the path.

\subsection build_tools Tools used to develop doxygen

Doxygen was developed and tested under Linux using the following 
open-source tools:
<ul>
<li>EGCS version 2.91.66
<li>GNU flex version 2.5.4
<li>GNU bison version 1.25
<li>GNU make version 3.76.1
<li>Perl version 5.005_02 
<li>VIM version 5.4
<li>Netscape 4.61
<li>Troll Tech's tmake version 1.3 (included in the distribution) 
<li>teTeX version 0.9
<li>CVS 1.10.7
</ul>

\htmlonly
Go to the <a href="starting.html">next</a> section or return to the
 <a href="index.html">index</a>.
\endhtmlonly

*/