source: trunk/greenorg/docs/compiling.html@ 8546

Last change on this file since 8546 was 7217, checked in by jrm21, 20 years ago

fixed typo

  • Property svn:mime-type set to application/octet-stream
File size: 13.2 KB
Line 
1<html>
2<head>
3<title>Compiling Greenstone</title>
4<h1>Compiling Greenstone</h1>
5<h3>Greenstone Software, New Zealand Digital Library Project</h3>
6</head>
7
8<body bgcolor="white">
9<p>These notes were written for gsdl-2.39, but probably apply to other
10versions as well. You might find a more up-to-date version on-line at
11<a href="http://www.greenstone.org/docs/compiling.html"
12>http://www.greenstone.org/docs/compiling.html</a>.
13
14Greenstone version 2.39 was released on the 10th March, 2003.
15
16</p>
17
18<h3>Table of contents:</h3>
19<ul>
20<li><a href="#platforms">Tested Platforms</a></li>
21<li><a href="#unix">Generic Unix Notes</a></li>
22<li>Specific Unix Notes
23 <ul>
24 <li><a href="#cygwin">Cygwin Notes</a></li>
25 <li><a href="#darwin">Darwin Mac OS X Notes</a></li>
26 <li><a href="#linux">GNU/Linux Notes</a></li>
27 <li><a href="#freebsd">FreeBSD Notes</a></li>
28 <li><a href="#solaris">Solaris Notes</a></li>
29 </ul>
30</li>
31<li><a href="#visualc">MS Visual C++ Notes</a></li>
32<li><a href="#contact">Our Contact Details</a></li>
33</ul>
34
35
36<a name="platforms"><h1>Platforms</h1></a>
37We have tested Greenstone on the following platforms:
38<ul>
39<li>GNU/Linux:
40 <ul>
41 <li>Debian 3.0 (potato) (i386), gcc 2.95.4</li>
42 <li>Debian sid/unstable (i386), gcc 3.2</li>
43 <li>Debian 2.2 (potato) (i386 and ppc rs/6000) (gsdl 2.38)</li>
44 <li>Red Hat 7.3 (i386), gcc 2.96</li>
45 <li>Slackware 8.0.0 (i386), gcc 2.95.3</li>
46 <li>Slackware 7.1.0 (i386) (gsdl 2.38)</li>
47 </ul>
48</li>
49<li>Solaris 2.8 (sparc), gcc 2.95.2 and gmake.</li>
50<li>Solaris 2.6 (sparc) using gcc and gmake. (gsdl 2.38)</li>
51<li>FreeBSD 4.2 (i386) (gsdl 2.38)</li>
52<li>Cygwin (minor fiddling needed)</li>
53<li>Darwin / Mac OS X (G4/ppc7400)</li>
54<li>Microsoft Visual C++ 4.2 and 6.0</li>
55</ul>
56If you would like to add other platforms to this list, or inform us of
57any portability changes required, send mail to
58<a href="mailto:[email protected]">[email protected]</a>.
59
60
61
62
63<a name="unix"><h1>Unix Compilation notes</h1></a>
64<p>(we include cygwin here).</p>
65
66The "standard" commands of
67<pre>
68$ ./configure
69$ make all
70$ make install
71</pre>
72should (hopefully) be all that is required. Currently, Greenstone does
73not honour the <tt>`--prefix'</tt> flag, but the directories are
74self-contained, so should be able to be moved after installation.
75
76<p>You will probably need to use GNU make.</p>
77
78<p>Version 2.38 of Greenstone compiles with gcc version 3.0 (as well
79as earlier versions of gcc). Earlier versions of Greenstone will
80require earlier versions of the compiler -- we have successfully used
81versions egcs-2.91.66 and gcc-2.95.
82</p>
83<p>The Greenstone Librarian Interface (GLI) code is written in Java, and
84compiling it requires a suitable
85version of the Java Software Development Kit (version 1.4.0 or newer).
86To compile this source code, run <tt>makegli.sh</tt> from the
87<tt>gsdl/gli</tt> directory.
88</p>
89<p>
90<hr>
91<strong>Note!</strong> - version 2.41 of Greenstone (released in December 2003)
92requires slight modification to compile cleanly with gcc version 3.x.
93The "Isis" package in greenstone's "packages" directory requires 3 files
94to be changed.
95You can download the 3 files from:<br>
96 <a href="http://www.greenstone.org/tmp/isis-gdl-fixes.zip">
97http://www.greenstone.org/tmp/isis-gdl-fixes.zip</a><br>
98
99which contains:
100<pre>
101 isis-gdl/CRC32.cpp
102 isis-gdl/IsisTypes.h
103 isis-gdl/Master.cpp
104</pre>
105
106If you copy these over the 3 files with the same name in gsdl/packages/isis-gdl
107then it should all compile ok with gcc 3.
108<hr>
109</p>
110
111<p>The GDBM library and headers are needed - Linux distributions typically
112come with the library, but may or may not come standard with the header file.
113Darwin does not come with either. If it is not installed in
114<tt>/usr</tt> or <tt>/usr/local</tt> then you will have to specify where it
115is by using the configure flag <tt>--with-gdbm=/path/to/gdbm/dir</tt>.</p>
116
117The GDBM library can be downloaded from
118 ftp://ftp.gnu.org/pub/gnu/gdbm/gdbm-1.8.3.tar.gz or a closer mirror.
119
120<p>The following configure flags add extra functionality to Greenstone:
121<table>
122<tr valign=top><td>--enable-corba</td>
123 <td>Creates a CORBA server as well as the .cgi server. This is currently
124 still developmental, and compilation hasn't been tested on many
125 platforms. A java CORBA client is available through anonymous CVS
126 (password <tt>anonymous</tt>) -
127 <pre>
128export CVSROOT=:pserver:[email protected]:2402/usr/local/global-cvs/gsdl-src
129cvs login
130cvs export -r HEAD java-client
131</pre>
132</td></tr>
133<tr valign=top><td>--with-micodir</td>
134 <td>Use an existing MICO compiler for the CORBA server instead of
135 compiling our included version.</td></tr>
136<tr valign=top><td>--enable-z3950</td>
137 <td>Enable rudimentary Z39.50 client support in the .cgi server.</td></tr>
138</table>
139</p>
140
141
142
143<h1>Platform-Specific Issues</h1>
144
145<a name="cygwin"><h2>Cygwin</h2></a>
146Greenstone does not currently compile under cygwin "out-of-the-box".
147We had to manually edit some of the Makefiles. More specifically,
148the packages/mg subtree needed "-ansi" in the CFLAGS, while some parts of the
149src/mgpp subtree fails with "-ansi", as their version of the standard
150header files don't include any (eg) POSIX or XPG/OPEN functions that
151aren't ANSI if -ansi is supplied, even if flags like "_XOPEN_SOURCE"
152are defined.
153
154<p>Also some of the third-party packages required some manual attention.</p>
155
156<p>Make sure you have the gdbm package installed.</p>
157
158
159<a name="darwin"><h2>Darwin/Mac OS X</h2></a>
160<p>All compilation is currently done through a terminal.</p>
161
162<p>Note that the default filesystem is case-insensitive.<p>
163
164<p>Mac OS X uses a compiler based on gcc version 3, so read the above
165section on <a href="#unix">Unix Compilation Notes</a> for changes required
166to the source code for greenstone version 2.41.</p>
167<p>darwin doesn't come with gdbm, so:
168<ol>
169<li>Download the gdbm source code from ftp.gnu.org into your home folder, as
170mentioned previously.</li>
171<li>Unpack it using the command <tt>"tar -zxf gdbm-1.8.3.tar.gz"</tt> (without quotes)</li>
172<li>If you used the older gdbm-1.8.0 (instead of 1.8.3), you will need
173 to update some files that can't figure out what the system type is. Eg:
174 <tt>"cp&nbsp;/usr/libexec/config.sub&nbsp;/usr/libexec/config.guess&nbsp;gdbm-1.8.3"</tt></li>
175<li>Make (and install) the library:<br>
176 <tt>cd gdbm-1.8.3 && make all install</tt><br>
177 (When we did this, we did not have permission to install in a system
178 directory)</li>
179</ol>
180
181If the "make install" command fails to install libgdbm into the
182default "/usr/local" folder due to permissions:
183<ol>
184<li>Remove the dynamic libraries, so that the Greenstone files are
185only linked using the "static" gdbm libraries using the following
186command (without the quotes):<br>
187<tt>"rm ~/gdbm-1.8.3/.libs/*.dylib"</tt></li>
188<li>when you configure Greenstone you should add
189<tt>--with-gdbm=/Users/&lt;username&gt;/gdbm-1.8.3</tt> (or wherever you
190installed it to) to the command. Note that this means that the compile
191option in the CD-ROM distribution Install script will fail, since it will
192only look in the default locations (/lib, /usr/lib/ and /usr/local/lib)
193</li>
194</ol>
195
196Also see the
197<a href="http://www.greenstone.org/docs/Install-Notes-osx.html">OSX
198Install Notes</a> page.
199</p>
200
201
202
203
204<h3>Issues</h3>
205<p>
206<ul><li>Due to "upgrades" of the config.guess and config.sub files,
207 version 2.37 of Greenstone might not recognise Mac OS X during the
208 configure. You can either overwrite these files (as above) from
209 /usr/libexec, or try to fake it by adding
210 <tt>--host=powerpc-apple-machten</tt> (or similar) to the configure
211 line. This has been resolved in gsdl-2.38.</li></ul>
212</p>
213<p>
214<ul><li>If the make fails when compiling a file called
215"display.cpp", you need to work around a compiler bug. This only seems
216to occur when "-O2" is part of the compiler flags, so changing this to
217"-O1" or removing it from the flags will work. This seems to have been
218fixed with version 10.1 and later of the developer tools.</li></ul>
219</p>
220<p>
221<ul><li> "There is a known bug in the version of gcc shipped with
222MacOS X 10.2." Version 2.38 of greenstone fails to build the pdftohtml
223converter, with the error message
224<pre>FontFile.h:27: storage size of `_ZTI8FontFile' isn't known
225FontFile.h:46: storage size of `_ZTI13Type1FontFile' isn't known
226FontFile.h:67: storage size of `_ZTI14Type1CFontFile' isn't known
227FontFile.h:144: storage size of `_ZTI16TrueTypeFontFile' isn't known
228</pre>
229The work-around is to remove all lines with "#pragma" from the
230source-code of the pdftohtml package. See <a
231href="http://sourceforge.net/tracker/index.php?func=detail&aid=631593&group_id=45839&atid=444239">the
232bug report</a> on pdftohtml's site. This will be fixed in Greenstone
233version 2.39 and later.</li></ul>
234</p>
235
236
237<a name="linux"><h2>GNU/Linux</h2></a>
238<p>As mentioned above, version 2.38 of Greenstone compiles with gcc3.
239If you are using an earlier version of Greenstone, you will need to
240make sure you are using an older version of gcc, and not gcc2.96 or
241gcc3. Red Hat >= 7.0 comes with the newer versions of gcc by default.
242</p>
243
244<p>You will need the gdbm.h header file. If you don't already have it, it is in
245the libgdbmg1-dev (debian) or gdbm-devel-1.8.0 (rpm) package.</p>
246
247<p>We have had a couple of reports from SuSE users that one of our third-party
248packages (wget) fails to configure as it uses GNU msgfmt for translation
249catalogues - this is resolved by installing the gettext package. This seems
250to be already installed on other distributions.</p>
251
252<p><strong>Alpha architectures</strong>:<br>
253Well, the good news is that it compiles OK (for versions of gsdl &gt;= 2.37
254- earlier versions need updated config.sub files),
255the bad news is that it fails to build collections. One possibility is that
256mg (the backend code) doesn't like the 64-bit ints.
257</p>
258
259
260
261<a name="freebsd"><h2>FreeBSD</h2></a>
262Everything should go smoothly... you might need to install lib gdbm if it
263is not already installed.
264
265
266
267<a name="solaris"><h2>Solaris</h2></a>
268<p>We no longer have solaris machines running in our department.
269However, Greenstone built and ran the last time I could log on (about version
2702.33?), and we have reports of people getting current versions working,
271with minor changes.</p>
272
273<p>Greenstone includes a perl module from CPAN, XML::Parser (+Expat),
274which has caused problems on some machines during the make. This is
275because perl uses it's own config file to get compiler settings,
276etc. We think we have worked around this. If you get compilation problems,
277you can do one of the following:
278<ol>
279<li> After doing the toplevel ./configure, edit
280gsdl/packages/cpan/XML-Parser-2.27/Makefile and XML-Parser-2.27/Expat
281and change <tt>CC = cc</tt> to <tt>CC = gcc</tt>. (Assuming you are
282using gcc). <strong>Or:</strong></li>
283
284<li> You could install the perl XML::Parser module manually, and
285comment out or remove any mention of the cpan/XML-Parser-2.27
286directory from gsdl/packages/Makefile(.in). </li>
287</ol>
288
289</p>
290
291<p>You might need to manually install the gdbm library, and you probably
292need to use GNU's make. try setting the MAKE variable when
293you run the configure script, such as:<br>
294<tt>$ MAKE=gmake ./configure [options]</tt><br>
295or
296<pre>
297$ ./configure [options]
298...
299$ gmake all
300</pre>
301</p>
302<a name="visualc"><h2>Windows (Visual C++)</h2></a>
303<p>We have tested with versions 4.2 and 6.0. Our distribution includes a
304cut-down port of the gdbm library for windows.</p>
305
306<p>We compile Greenstone from the Windows command prompt.
307You must manually unzip files in the <tt>gsdl\packages\crypt</tt> and
308<tt>gsdl\packages\gdbm</tt> directories.
309After setting up the VC++ environment, simply type <tt>nmake /f win32.mak</tt>
310and everything should compile OK. For us, setting up the environment requires
311running the <tt>vcvars32.bat</tt> script, found in the VC++ installation
312directory (for us this is in
313<tt>C:\Program Files\Microsoft Visual Studio\VC98\bin</tt>.)</p>
314
315<p>The third-party packages (pdftohtml, wvWare, rtftohtml, xlhtml, etc) were
316compiled using cygwin.</p>
317
318<p>The Greenstone Librarian Interface (GLI) code is written in Java, and
319compiling it requires a suitable
320version of the Java Software Development Kit (version 1.4.0 or newer).
321To compile this source code, run <tt>makegli.bat</tt> from the
322<tt>gsdl\gli</tt> directory.
323
324<a name="contact"><h1>Contact Us</h1></a>
325<p>If Greenstone doesn't work for you, please let us know! If you add
326information such as operating system and software tool versions to your
327request then it will help us to fix the problem.</p>
328
329<p>If you have any updates or corrections to this documentation, then
330don't hesitate to send them to us.</p>
331
332<p>
333Send mail to us at:
334<a href="mailto:greenstone&#64;cs.waikato.ac.nz">greenstone&#64;cs.waikato.ac.nz</a>.
335</p>
336
337<p>We also have 2 mailing lists, one aimed more
338at users and the other aimed more for developmental issues. You can
339subscribe by going to
340<a href="https://list.scms.waikato.ac.nz/mailman/listinfo/greenstone-users"
341>https://list.scms.waikato.ac.nz/mailman/listinfo/greenstone-users</a> and/or
342<a href="https://list.scms.waikato.ac.nz/mailman/listinfo/greenstone-devel"
343>https://list.scms.waikato.ac.nz/mailman/listinfo/greenstone-devel</a>.
344Archives are available (using Greenstone of course!) at <a
345href="http://www.nzdl.org/cgi-bin/library?c=gsarch&p=about">http://www.nzdl.org/cgi-bin/library?c=gsarch&p=about</a>.
346</p>
347
348<address>Last modified 20 April 2004 by <a href="http://www.cs.waikato.ac.nz/~jrm21/">John McPherson</a></address>
349</body>
350</html>
351
Note: See TracBrowser for help on using the repository browser.