Compiling and Installing Greenstone 2
--------------------------------------

Note: more up-to-date notes may be available on our website, at
https://wiki.greenstone.org/doku.php?id=en:user_advanced:installation
 

The following instructions assume the top level Greenstone folder is called
Greenstone2. Please adjust these instructions to match the folder name in
your situation. 

The Greenstone Librarian Interface (GLI) code will be in the gli folder inside
the Greenstone2 folder (if you have a Greenstone release). If you are using
SVN and you want to use the GLI to build collections, you'll need to check
it out by running
 svn checkout https://svn.greenstone.org/main/trunk/gli
in the Greenstone2 folder.

-- Compiling and installing on Unix --

cd to the top level Greenstone2 directory (i.e. the directory 
where this file lives) and run the following:

1. makegs2.sh gnome-lib imagemagick
2. cd gli
3. ./makegli.sh
4. ./makejar.sh

Notes:
1. [gnome-lib] parameter: This will checkout and compile gnome-lib.
gnome-lib is needed on most linux machines to compile wvware. If you
don't need it. you can omit this parameter. If you need it but don't want
to compile it, you can download a gnome-lib-minimal package for your OS by
visiting https://trac.greenstone.org/browser/gs2-extensions/gnome-lib/trunk
(choose the appropriate package for your OS)
Then unzip the downloaded gnome-lib minimal package into your Greenstone2/ext
folder.
2. [imagemagick] parameter - if you already have imagemagick installed, or
don't want it, you can omit this parameter.

3. CGI executables - This will install the library.cgi and oaiserver.cgi
executables to Greenstone2/cgi-bin/linux. 
If you want to run Greenstone from a system cgi-bin directory you'll need to
move the library executable and gsdlsite.cfg from Greenstone2/cgi-bin/linux
to your system cgi-bin.
4. The steps 2-4 are for compiling the Greenstone Librarian interface.

Note that the Greenstone directory structure is important to the operation
of the software. Therefore the --prefix, --bindir etc. options to configure (which is run by makegs2.sh)
make no sense and will have no effect. If you want Greenstone to be
installed somewhere specific (say /usr/local) you'll need to move the
entire Greenstone2 directory there.

Greenstone will install Apache into apache-httpd/linux. You can disable this 
by editing makegs2.sh and removing the -enable-apache-httpd option to the
configure command. In that case you'll need to set up your own apache to
serve Greenstone. See
https://wiki.greenstone.org/doku.php?id=en:user_advanced:gs2_server
for more details.  



-- Compiling on Windows --

Prerequisites:
 * Java JDK 8 or later
 * PERL (ActivePerl for Windows
 * Visual Studio 8 or later

There is a batch script you can run to set up and compile Greenstone.

If you want Greenstone to try and guess your Visual Studio setup, edit the 
makegs2.bat file and set SET_GS_ENV to true. Otherwise you'll need to set up 
your Visual Studio environment before running the make script.
For example, run
C:\Program Files\Microsoft Visual Studio\vc\vcvarsall.bat

To compile greenstone:
For 64 bit machines, run 
   * makegs2x64.bat
For 32 bit machines, run
   * makegs2.bat



For more information about compiling Greenstone, or for manual compiling 
instructions, see
https://wiki.greenstone.org/doku.php?id=en:user_advanced:installation
https://wiki.greenstone.org/doku.php?id=en:developer:windows_source_install

These scripts will unpack necessary zip files, set up paths etc, then compile 
Greenstone. They will install library.cgi and oaiserver.cgi to the 
Greenstone\cgi-bin\windows 
directory and server.exe to the top level Greenstone directory. 

To compile the GLI, cd to the gli directory and run makegli.bat.

