.. _kernel-installation-unix:

Unix
====

:Authors: Nicolas Bozon, Gérald Fenoy, Jeff McKenna, Luca Delucchi
:Last Updated: $Date: 2013-03-28 14:10:57 +0000 (Thu, 28 Mar 2013) $

.. contents:: Table of Contents
    :depth: 2
    :backlinks: top

.. note::
   You must be sure to perform the :ref:`prerequisite steps <kernel-installation-prereq>` before following this page.

For the impatient
-----------------

To build the ``zoo_loader.cgi`` CGI program with the default options, cd to the directory 
where you extracted the ZOO Kernel source code package and use the following commands:

::

  $ cd zoo-kernel
  $ autoconf  
  $ ./configure
  $ make

Unless something went wrong, you should have executables in the current directory for the ``zoo_loader.cgi`` 
CGI program. You can copy the ``zoo_loader.cgi`` program and the ``main.cfg`` file to your HTTP server's CGI 
directory and start using it.

At this step your ZOO-Kernel should work. Nevertheless, don't forget to correct the main.cfg settings 
to set ``tmpPath`` and ``tmpUrl`` to fit your web server configuration.

Configure Options
-----------------

Here is the list of available options as returned by *./configure --help*:

::

  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-gdal-config=FILE specify an alternative gdal-config file
  --with-xml2config=FILE  specify an alternative xml2-config file
  --with-mapserver=PATH   specify the path for MapServer compiled source tree
  --with-python=PATH      To enable python support or specify an alternative
                          directory for python installation, disabled by
                          default
  --with-pyvers=NUM       To use a specific python version
  --with-php=PATH         To enable php support or specify an alternative
                          directory for php installation, disabled by default
  --with-perl=PATH        To enable perl support or specify an alternative
                          directory for perl installation, disabled by default
  --with-java=PATH        To enable java support, specify a JDK_HOME,
                          disabled by default
  --with-js=PATH          specify --with-js=path-to-js to enable js support,
                          specify --with-js on linux debian like, js support
                          is disabled by default

All the options are described in more details below.

(Required) GDAL Support
***********************

If your gdal-config program is not found in your PATH then you can use the 
``--with-gdal-config`` option to specify its location. For instance, let's suppose that your gdal-config 
was installed in /usr/local/bin and this directory is not in your PATH, then you can use 
the following command:

::

  $ ./configure --with-gdal-config=/usr/local/bin/gdal-config

(Required) XML2 Support
***********************

If your xml2-config program is not found in your PATH then you can use the 
``--with-xml2config`` option to specify its location. For instance, let's suppose that 
your xml2-config was installed in /usr/local/bin and this directory is not in your PATH, 
then you can use the following command:

::

  $ ./configure --with-xml2config=/usr/local/bin/xml2-config

(Optional) MapServer Support
*****************************

If you want to activate the WMS, WFS and WCS outputs using MapServer then you will have
to use the ``--with-mapserver`` option. You have to set the path to your ``mapserver-config``
locate in the source code of MapServer as following command:

::

  $ ./configure --with-mapserver=/path/to/your/mapserver_config/

(Optional) Python Support
*************************

If you want to activate Python support for the ZOO Kernel then you will have to use the 
``--with-python`` option. If your python-config program is found in your PATH then you 
don't have to specify the path where Python was installed, such as:

::

  $ ./configure --with-python

This assumes that python-config is found in your PATH.

In the case that your python-config is not found in your PATH, then you can specify the Python 
installation directory you are using. For instance, let's suppose that you installed 
Python in /usr/local, then you can use the following command:

::

  $ ./configure --with-python=/usr/local

This assumes that /usr/local/bin/python-config exists.

(Optional) Python Version
*************************

If you want use a specific version of Python you will have to use the ``--with-pyvers``
option. You can specify a Python version as:

::

  $ ./configure --with-pyvers=2.6


(Optional) PHP Support
**********************

To be able to activate PHP support for the ZOO Kernel you'll need to get a local PHP Embedded 
installation; for more information about the required configure options when compiling PHP you 
can refer to this page :

     http://zoo-project.org/trac/wiki/ZooKernel/Embed/PHP

If you want to activate the PHP support for the ZOO Kernel then you will have to use the 
``--with-php`` option. If your php-config program is found in your PATH then you don't have 
to specify the path where PHP was installed, then you can use the following commnd:

::

  $ ./configure --with-php

This assumes that php-config is found in your PATH.

In the case that your php-config is not found in your PATH, then you can specify the PHP installation 
directory you are using. For instance, let's suppose that you installed PHP in /usr/local, 
then you can use the following command:

::

  $ ./configure --with-php=/usr/local

This assumes that /usr/local/bin/php-config exists.

(Optional) Perl Support
***********************

If you want to activate Perl support for the ZOO Kernel then you will have to use the 
``--with-perl`` option. If you do not set any value to this option, then the perl program will 
be searched in your PATH. So in such a case, you can use the following command:

::

  $ ./configure --with-perl 

This assumes that perl is found in your PATH.

In the other case, for custom Perl installations, you can set the installation directory. For instance, 
let's suppose that you installed Perl in /usr/local and /usr/local/bin is not in your PATH, 
then you can use the following command:

::

  $ ./configure --with-perl=/usr/local

This assumes that /usr/local/bin/perl exists.

(Optional) Java Support
***********************

If you want to activate Java support for the ZOO Kernel then you will have to use the 
``--with-java`` option and set the installation path of your Java SDK. For instance, 
let's suppose that your Java SDK was installed in the /usr/lib/jvm/java-6-sun-1.6.0.22/ directory, 
then you can use the following command:

::

  $ ./configure --with-java=/usr/lib/jvm/java-6-sun-1.6.0.22/

This assumes that the include/linux and jre/lib/i386/client/ subdirectories exist in 
/usr/lib/jvm/java-6-sun-1.6.0.22/, include/linux contains the jni.h headers file and 
jre/lib/i386/client/ contains the libjvm.so file.

.. note:: 
   With Mac OS X you only have to set ``macos`` as the value for the ``--with-java`` option 
   to activate Java support. For example:

   ::

     $ ./configure --with-java=macos

(Optional) JavaScript Support
*****************************

If you want to activate JavaScript support for the ZOO Kernel then you will have to use 
the ``--with-js`` option. If you are using a "Debian-like" GNU/Linux distribution then 
dpkg will be used to detect if the required packages are installed and you don't have to 
specify anything here, so you can use the following command:

::

  $ ./configure --with-js 

This assumes that js_api.h and libmozjs.so are found in default directories.

If you have a custom installation of SpiderMonkey or you are not using a Debian packaging 
system, then you'll have to specify the directory where you installed it. For 
instance, let's suppose that you installed your SpiderMonkey in /usr, then you'll 
have to use the following command:

::

  $ ./configure --with-js=/usr

This assumes that the /usr/include/js exists and contains the js_api.h headers file and 
/usr/lib contains libmozjs.so file.