
Requirements
============

   The NeL library needs the following libraries :

      - STLPort 4.5    <URL:http://www.stlport.org/>            (Mandatory)
      - LibXML2 2.4.26 <URL:http://www.xmlsoft.org/>            (Mandatory)
      - FreeType 2.1.2 <URL:http://freetype.sourceforge.net/>   (NeL 3D)
      - OpenAL         <URL:http://www.openal.org/>             (NeL Sound)
      - Python 1.5     <URL:http://www.python.org/>             (NeL AI)
      - Direct Input 8 <URL:http://www.microsoft.com/directx>   (NeL MISC, Windows version)
      - DirectX 9.0b   <URL:http://www.microsoft.com/directx>   (NeL 3D, Windows direct3d version)
      - EAX 2          <URL:http://eax.creative.com/>           (NeL Sound, Windows version)

   (Greater version of these libraries should also be ok, if not, contact us)

   STLPort needs to be compiled. NeL is using the SGI iostreams and it require
   the STLPort compilation and a linking of NeL with the STLPort library.

   On a GNU/Linux platform you will need the following libraries and
   softwares :

      - Autoconf       <URL:http://www.gnu.org/software/autoconf/autoconf.html>
      - Automake       <URL:http://www.gnu.org/software/automake/automake.html>
      - Libtool        <URL:http://www.gnu.org/software/libtool/libtool.html>
      - Lex / Flex     <URL:http://www.gnu.org/software/flex/flex.html>
      - Yacc / Bison   <URL:http://www.gnu.org/software/bison/bison.html>

      - Mesa  3.3      <URL:http://www.mesa3d.org/>             (NeL 3D)

   On some OpenGL implementations, you migth have some troubles, coming from
   the <GL/glext.h> file, to get NeL to compile. This file could be missing
   or not up to date. You will find the latest version of this file on SGI's
   website :

      - glext.h        <URL:http://oss.sgi.com/projects/ogl-sample/ABI/glext.h>

   Most of our documentation is done using Doxygen, so you might need it
   to read our prose and our code documentation. If you want have nice
   graphs like dependency graphs, collaboration diagrams, or graphical
   class hierarchy graphs you will need Graphviz :

      - Doxygen        <URL:http://www.stack.nl/~dimitri/doxygen/>
      - Graphviz       <URL:http://www.research.att.com/sw/tools/graphviz/>
   
   Most of these softwares should be already installed on your system or
   provided on your installation disk. 

   The given sofware or library version numbers are the ones that we are
   using. We don't know if NeL will work with other (older or more recent)
   versions of these softwares or libraries. You are welcome to help us
   to define more precisely these informations ;-)

   For windows users, note that you don't need to have the Direct Input (verion 8) dll 
   on your system for NeL to run, but in this case, there will be no joystick support, and
   no low level access to keyboard and mouse. Anyway, you need dinput.lib to compile


Compilation
===========

   1. Windows compilation
   ----------------------

      The compilation on Windows has been done only with Visual C++ 6.0 SP5 + Processor Pack for SP5.

	  SP5 and Processor Pack for SP5 can be found at:

		<URL:http://msdn.microsoft.com/vstudio/downloads/tools/ppack/download.aspx>

      You first need to compile STLport and FreeType libraries. It's a quite
      long compilation process, and you should carefully read these libraries
      documentation (at least the README and INSTALL files) before compiling
      and installing them. 

      STLport Compilation :

         - Open a Dos window and go in the STLPort's src directory.

         - Rename or copy the "vc6-unicode.mak" to "Makefile".

         - Execute `nmake clean all` followed by `nmake install`.

      FreeType compilation (tested with version 2.1.2) :

         - Open the workspace freetype-2.1.2\builds\win32\visualc\freetype.dsw
           in Visual C++.

         - Go in the [Bulid -> Batch Build ] menu and compile all project version.

      libXML2 compilation (tested with version 2.4.26) :

         - In the 2.4.26, the file wsockcompat.h is missing in libxml2-2.4.26/include.
           As mentioned here, <URL:http://mail.gnome.org/archives/xml/2002-October/msg00188.html>
           You have to create the file with the end of the mail.

         - Open a DOS command, go in libxml2-2.4.26/win32 directory

         - Execute: cscript configure.js ftp=no http=no html=no c14n=no
                    catalog=no docb=no iconv=no regexps=no schemas=no

         - Execute: nmake

         - Execute: nmake install

      Set up Visual C++ to find libraries. This is done in the
      [Tools -> Options -> Directories] menu :

         - Add the STLPort include directory to the "Library Files" category.
           The STLPort include *must* be inserted before the microsoft one or
           the compiler will take microsoft STL instead of STLPort STL.
           (use the arrow button to put the STLPort include at the top)
           ex: D:/stlport-4.5/stlport

         - Add the STLPort library directory to the "Library Files" category.
           ex: D:/stlport-4.5/lib

         - Add the FreeType include directory to the "Include Files" category.
           ex: D:/freetype-2.1.2/include

         - Add the FreeType library directory to the "Library Files" category.
           ex: D:/freetype-2.1.2/objs

         - Add the libXML2 include directory to the "Include Files" category.
           ex: D:/libxml2-2.4.26/win32/include

         - Add the libXML2 library directory to the "Library Files" category.
           ex: D:/libxml2-2.4.26/win32/lib

		
      Requirements for Nel Misc: Direct Input 8

         - Install the DirectX8 SDK
         - Add mssdk/include to the "Include Files" category.
           Add mssdk/lib to the "Library Files" category.
           Make sure these appear *before* visual c++ includes, as an older
           version of directX may be present in Visual C++ headers.

      Requirements for NeL Sound: OpenAL and EAX 2

         - Add the include and library directories for OpenAL:
           Add openaldir/win/ to the "Include Files" category.
           Add openaldir/win/al/ to the "Include Files" category.
           Add openaldir/win/openal32/release to the "Library Files" category.
           Add openaldir/win/alut/release to the "Library Files" category.
           (Please note the include directories are not located in
           openaldir/include/ but in openaldir/win/ on the Windows platform)

         - Add the include and library directories for EAX:
           Add eaxdir/include to the "Include Files" category.
           Add eaxdir/libs to the "Library Files" category.

         - At runtime, you will need openal32.dll and eax.dll in your path.

      Open the workspace file "nel.dsw" (in the menu [File -> Workspace]).

      Setup Visual C++ to find the NeL include and library files :

         - Add the NEL include directory to the "Include Files" category.
           ex: D:/code/nel/include

         - Add the NEL source directory to the "Include Files" category.
           ex: D:/code/nel/src

         - Add the NeL library directory to the "Library Files" category.
           ex: D:/code/nel/lib


   2. GNU/Linux compilation
   ------------------------

      In the NeL directory do :

       In the case (ex: after a cvs checkout) that you need to rebuild the
       "configure" script and/or the "Makefile.in" files, execute the
       "autogen.sh" script in the NeL directory :

         % chmod +x ./autogen.sh

         % ./autogen.sh

         % ./configure

         % make

      It is possible to compile and install only the needed part of NeL.
      So you may, by using --disable-<net|3d|pacs|georges|ligo> and --enable-<sound|ai> :

         - misc
              default: Mandatory
         - net
              default: Enable
              desativate with: --disable-net
         - 3d
              default: Enable
              desativate with: --disable-3d 
         - pacs
              default: Enable
              desativate with: --disable-pacs
         - georges
              default: Enable
              desativate with: --disable-georges
         - ligo
              default: Enable
              desativate with: --disable-ligo
         - ai
              default: Disable
              desativate with: --enable-ai 
         - sound
              default: Disable
              ativate with: --enable-sound

      To pass additional arguments to the C++ compiler, use the command line :

         % CXXFLAGS=-pipe ./configure --with-stlport=<STLPort_path>

          <STLPort_path> is for example /usr


      To get the complete list of arguments of the "configure" script use the
      following command :

         % ./configure --help


Installation
============

   1. Windows installation
   -----------------------

      Not done yet.


   2. GNU/Linux installation
   --------------------------

      % make install


Contact us
==========

   If you find any bugs use the Nevrax Bug Tracking System :
   
      <URL:http://www.nevrax.org/bugs/>

   If you need any help contact us on the NeL mailing-list :
      
      <URL:http://www.nevrax.org/mail/>
      

