summaryrefslogtreecommitdiffstats
path: root/INSTALL
blob: df3bf96fc774defcc0b12c9d3892d0ba7f263575 (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
DOXYGEN Version 1.1.5-20000709

CONTENTS
--------
  - Installation instructions for UNIX
  - Installation instructions for Windows
  - Known configuration problems:
      * HTML related problems
      * LaTeX related problems
      * HP-UX / Digital UNIX problems
      * gcc 2.7.2.x related problems

INSTALLATION INSTRUCTIONS FOR UNIX:
-----------------------------------

1.  Unpack the archive, unless you already have:
   
     gunzip doxygen-1.1.5-20000709.src.tar.gz    # uncompress the archive
     tar xf doxygen-1.1.5-20000709.src.tar       # unpack it

2.  Run the configure script:
 
     sh ./configure

    The script tries to determine the platform you use, the location
    of the Qt library, the make tool (which _must_ be GNU make) and the perl 
    interpreter. It will report what it finds. Use configure --help 
    to see how to override or change the default or detected settings.

    If you have downloaded the binary distribution, you can proceed 
    with step 6 now.

3.  Compile the program by running make:

     make

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

4.  Generate the user manual (optional, will also be done in step 6).
    
     make docs

    To let doxygen generate the HTML and LaTeX documentation.
    (you will need the stream editor `sed' for this)

5.   make ps

    to generate a postscript version of the manual. 
    (you will need latex and dvips for this)

    The html directory of the distribution will now contain the html 
    documentation (just point a HTML browser to the file index.html in the 
    html directory).
    
    The postscript manual doxygen_manual.ps will be located in the latex
    directory of the distribution. Just send it to a postscript printer to 
    print it or use ghostview to view it. 

6.  Install the doxygen binaries, manual and examples

     make install

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

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

INSTALLATION INSTRUCTIONS FOR WINDOWS:
--------------------------------------

Currently, only Microsoft Visual C++ (version 5.0 or higher) is supported. 
(For other compilers you may need to edit the perl script in wintools/make.pl
a bit). Let me know what you had to change if you got Doxygen working with 
another windows compiler. 

You will need to install the windows/dos versions of following tools:
- Perl 5.0+
  You can download it at: http://www.ActiveState.com/pw32/
- the GNU tools flex, bison and sed.
  To get these working on Windows you can install the cygwin tools.
  You can download them at: http://sourceware.cygnus.com/cygwin/
  Make sure the BISONLIB environment variable points to the
  location where bison.simple and bison.hairy are located.
- Qt-1.xx (Qt-2.xx does not work without adding some extra code) 
  Only the tools section is required, so you can use the free 
  X-windows version (use Qt-1.44) and build a library called qt.lib out of 
  the sources in src/tools. The library should be put in the lib directory
  of the Qt distribution. You can get Qt-1.44 at http://www.trolltech.com
  Before continuing make sure the QTDIR environment variable points to the 
  root of the Qt distribution.  
- Microsoft Visual C++ (I only tested with version 5.0).
  Use the vcvars32.bat to set the environment variables 
  (if you did not select to do this automatically during installation).
- 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/
- If you want to generate compressed HTML help (see 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
- If you used WinZip to extract the tar archive it will (apparently) not 
  create empty folders, so you have to add the folders
  `objects' and `bin' manually in the root of the distribution before 
  compiling.

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

goto the doxygen root dir and type:

make.bat

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

To build the examples type:

nmake examples

To generate the HTML documentation type:

nmake docs

The generated docs are located in the html directory.
To generate the postscript manual type:

nmake ps

The manual should now be here latex/doxygen_manual.ps

-----------------------------------------------------------------------------
KNOWN CONFIGURATION PROBLEMS

QT RELATED PROBLEMS:
- 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 doxygen distribution
  - do "mkdir qt"
  - do "cd qt"
  - do "ln -s your-qt-include-dir-here include",
  - do "ln -s your-qt-lib-dir-here lib",
  - do "export QTDIR=$PWD" (or "setenv QTDIR $PWD if you have a csh-like shell)
  
  Now install doxygen as described above.  

- Qt-2.01 contains a bug that makes some special characters appear as 
  question marks (?) in the HTML output.

  Bernhard Ristow provided a fix for this:

  % in QT-2.0.1 is a bug in the member function
  % QTextStream &QTextStream::operator<<( char c ).
  % 
  % If the character is negative the cast to int in
  % ts_putc( c ) produces an invalid char as unsigned
  % short (e.g. char c = -4 -> unsigned short: 65532).
  % This produces a strange output.
  % If we modify the function into:
  %
  % QTextStream &QTextStream::operator<<( char c )
  % {
  %     CHECK_STREAM_PRECOND
  %     unsigned char uc = (unsigned char) c;
  %     ts_putc( uc );
  %     return *this;
  % }
  % it works correctly.

HTML RELATED PROBLEMS:
- the indent continuously increases.
  This seems to be a problem that can be observed with Netscape 4.01.
  It is not present in many later and earlier versions I tested.

LATEX RELATED PROBLEMS:
- the LaTeX translation of HTML tables doesn't seem to work for all 
  compilers. It is known to work for teTeX (versions 0.4 and 0.9)
- the file a4wide.sty is not available for all distributions. If
  your distribution does not have it please select another paper type
  in the config file (see the PAPER_TYPE tag in the config file)
- the file fancyheader.sty is known as fancyhdr.sty on some systems.
  Please change that in src/latexgen.cpp

HP-UX / DIGITAL UNIX PROBLEMS:
- If you are compiling for HP-UX with aCC and you get this error:
    /opt/aCC/lbin/ld: Unsatisfied symbols:
    alloca (code)
  then you should (according to Anke Selig) edit ce_parse.cpp and replace
    extern "C" {
      void *alloca (unsigned int);
    };
  with
    #include <alloca.h>  
- 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:
   
    #else /* not GNU C.  */
    #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ||
    defined (__sparc) || defined (__sgi)
    #include <alloca.h>

  with

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

  Alternatively, one could fix the problem at the bison side.
  Here is patch for bison.simple (provided by Andre Johansen):
 
------------------------------------------------------------------------------
--- 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__)
------------------------------------------------------------------------------

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

GCC 2.7.2.X PROBLEMS

Old versions of the GNU compiler have problems with constant strings
containing characters with ascii codes >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 --english-only option.  

-----------------------------------------------------------------------------

That's it!

Please report any problems to dimitri@stack.nl

The latest version of doxygen can be obtained at
  http://www.stack.nl/~dimitri/doxygen

Enjoy,

Dimitri van Heesch (09 July 2000)