NP Labs Project Quick Compilation Documentation
===============================================
Kyle Machulis <kyle@nonpolynomial.com>
Version 1.0, September 6, 2009

== Quick Compile Command Examples ==

makefiles
-------------------------
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make
make install
-------------------------

Visual Studio
-------------------------
mkdir build
cd build
cmake -G"Visual Studio 2008" ..
[open visual studio solution after it's generated]
-------------------------

== Compiling NP Labs Libraries ==

In order to make cross platform builds easier on ourselves, we use cmake and a system of scripts and cmake functions called Compily Buildd (check out the readme.txt in the compily_buildd directory for more info). 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 project directory and create a subdirectory to build in. Then enter this directory and type

cmake ..

Running cmake from this directory means all relevant build files are built out the source, so the source tree is not polluted with intermediate files (google "cmake out-of-source build" if you're really interested). If you try to run cmake from the root of the , you'll get a message complaining about building out of source.

After running this command, cmake will generate the default files for your system (Makefiles for *nixes, Visual Studio projects for Windows). If you want to generate files for another kind of build system (Xcode, visual studio, etc...), just run the command:

cmake

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

cmake will search for any required libraries, and complain if you are missing any. Normally, these libraries are listed in the README.txt file of the project.

== Test Machines ==

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

- Windows (XP Pro/Win7, mingw (gcc 4.4.0 TDM) and/or Visual Studio 2008)
- OS X (10.5/10.6, Intel, gcc 4)
- Linux (Ubuntu 10.10, gcc 4.4)

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". 
