========================
NP Labs Repository Setup
========================

NP Labs Library Source repositories all have the following directory structure.

root
- trunk : Current, active development
-- lib(name) : Current development version of the library
--- src : Library source
--- examples : Small examples/tutorials of library usage
-- projects : Any projects that might be related to the library
- branches : Branches for current development (not used often as of yet)
- tags : Tags for previous releases

If you want to keep current with the library's development, it is highly recommended that you check out the root/trunk/lib(name) dir and watch it for updates.

===========================
Compiling NP Labs Libraries
===========================

In order to make cross platform builds easier on ourselves, we use cmake. Project files/makefiles are not shipped with the source, and will need to be generated by cmake.  Therefore, if you want to compile our software, you'll also need cmake. This is available at http://www.cmake.org. 

To generate a cmake file tree, simply enter the lib(name) directory and run the following command:

cmake .

This will generate the default files for your system (Makefiles for *nixes, Visual Studio projects for Windows). If you want to generate another kind of make files, just run the command:

cmake

with no . or options to list the generators available for your platform.

cmake will search for any required libraries on *nix platforms, since we have a reasonable set of directories to look through (/usr/*, /usr/local/*, etc...). On Windows (Visual Studio specifically), these checks are bypassed and all available projects are created (since there is no dedicated place to check for library code). You will need to prune whatever libraries you don't want to build out of the generated Visual Studio projects.

After cmake generates the files, you may use them to compile as normal.

=============
Test Machines
=============

All NP labs libraries are compiled and tested on the following platforms:

- Windows (XP Pro, Cygwin/gcc and Visual Studio 2005)
- OS X (10.5.2, Intel, gcc 4)
- Linux (Ubuntu 8.04, gcc 4.2)

There is no guarentee a library will work on all platforms, or there may be different dependencies for different platforms. Compatibility issues with outside libraries may exist. If these happen, they will be listed in the README.txt file under "Platform Specific Issues". 
