***********************************************************************
*** Linux Platform-Specific README FILE ***

If you have not already done so, please read the all-platform introductory file, /README_FIRST.TXT, which is located in the same directory as this file.


***********************************************************************
*** System Requirements / Installation ***

* This code distribution supports Linux.  This CDROM was built and tested using Mandrake Linux 9.1

* The contents of the book's CDROM must be copied (keeping the hierarchy) to the local machine, as described in README_FIRST.TXT

* Packages for OpenGL, GLU, and GLUT must be installed - see the section "OpenGL Specifics" below for details


***********************************************************************
*** OpenGL Specifics ***

The system must have development packages for OpenGL, GLU, and GLUT installed.  These should be part of a standard Linux distribution, although they may not be installed by default.  For example, under Mandrake linux, you should find them as libMesaGL, libMesaGLU, and libMesaglut.  

The path to OpenGL, GLU, and GLUT include and library files may be different on your system.  If so, you will need to change the SYSIPATH variable in /common/MakefileCommon, and the SYSLPATH variable in /Examples/MakefileExamples.


***********************************************************************
*** Building Libraries and Demo Applications ***

The libraries and applications use the OpenGL GLUT system.  GLUT has been included on the CDROM in the top-level directory /gl.  All of the libraries and applications reference this directory via relative paths.  As a result, there should be no need to add any path to GLUT into your development tool settings.

The Linux platform uses "make" from a command prompt to build any or all of the libraries and demo applications.  A hierarchical build system allows the user to rebuild at any desired level in the code hierarchy.

To build, open a command prompt and change directory to the desired directory:

* To build or rebuild all Iv libraries in a single command, change directories to /common and build as described below.

* To build or rebuild a specific Iv library (such as IvMath), change directories to the /common subdirectory for the library (e.g. /common/IvMath) and build as described below.

* The library makefiles copy that library's header files to /common/Includes at the end of compilation.  In addition, the library itself is built to the /common/Libs subdirectory that matches the build configuration (LinuxRelease or LinuxDebug).  However, the libraries themselves reference other Iv library headers directly from that library's source directory.  As a result, the libraries may be built in any order.

* To rebuild all demo applications for all chapters in a single command, change directories to /Examples and build as described below.

* To rebuild all demo applications for a specific chapter in a single command (such as Chapter 3), change directories to that chapter's subdirectory under /Examples (e.g. /Examples/Ch03-Xforms) and build as described below.

* To rebuild a specific demo application, change directories to that demo's subdirectory under /Examples/Ch* and build as described below.

* To build, note that Linux is the default platform.  To build any part of the code for Linux, use the following commands in the desired build directory:

* For release builds:

make

OR

make release

* For debugging builds:

make debug

* To clear out all builds of the current directory for Linux

make clean


***********************************************************************
*** Running Demo Applications ***

* The demos may be run from the command line, or may be run directly.  The demo executables are built into the same directory as the demo's source files.  The release executable is Example.elf, and the debug executable is ExampleD.elf.

* Some of the demos have no data files and may thus be run from any location.  However, numerous demos use local data files in the current directory.  As a result, it is best to run the demos from the directory to which they were built.


***********************************************************************


