CMake >= 2.8.11
 CMake is required as it is used to generate the Makefiles or Projects/Solutions required to build StoRM.

 Compiler:
 A C++11 compliant compiler is required to build StoRM. It is tested and known to work with the following compilers:
 - GCC 4.9.1
 - Clang 3.5.0
 - Microsoft Visual Studio 2013
 
 Other versions or compilers might work, but are not tested.
 
 The following Compilers are known NOT to work: Microsoft Visual Studio versions older than 2013, GCC versions 4.7 and older.
 
Prerequisites:
 Boost >= 1.56
	Build using the Boost Build system, for x64 use "bjam address-model=64" or "bjam.exe address-model=64 --build-type=complete"
	You may use --toolset to specify the compiler, for ex. msvc-10.0, intel11.1, etc
 Doxygen
	Set DOXYGEN_EXECUTABLE to your doxygen executable, e.g. "C:/Program Files/doxygen/bin/doxygen.exe"
 GTest >= 1.7.0
	GTest is included in the StoRM Sources under /resources/3rdparty/gtest-1.7.0 and builds automatically alongside StoRM
 CUDD >= 2.5.0
	CUDD is included in the StoRM Sources under /resources/3rdparty/cudd-2.5.0 and builds automatically alongside StoRM. 
	Its Sourced where heavily modified as to incorporate newer Versions of Boost, changes in C++ (TR1 to C++11) and
	to remove components only available under UNIX.
 Log4CPlus >= 1.1.2
	Log4CPlus is included in the StoRM Sources under /resources/3rdparty/log4cplus-1.1.3-rc1 and builds automatically alongside StoRM. 
	Its Sourced where slightly modified as to incorporate Unicode handling under Win32, Clang compatability and shared/static build options.
 Eigen >= 3.2.1
	Eigen is included in the StoRM Sources under /resources/3rdparty/eigen and builds automatically alongside StoRM.
 GMM >= 4.2
	GMM is included in the StoRM Sources under /resources/3rdparty/gmm-4.2 and builds automatically alongside StoRM.
 LTL2DStar >= 0.5.1
	LTL2DStar is included in the StoRM Sources under /resources/3rdparty/ltl2dstar-0.5.1 and builds automatically alongside StoRM. 
	Its Sourced where heavily modified as to incorporate changes in C++ (TR1 to C++11) and
	to remove components only available under UNIX.

Optional:
 Gurobi >= 5.6.2
	Specify the path to the gurobi root dir using -DGUROBI_ROOT=/your/path/to/gurobi
 Z3 >= 4.3.2
	Specify the path to the z3 root dir using -DZ3_ROOT=/your/path/to/z3
MathSAT >= 5.2.11
	Specify the path to the mathsat root dir using -DMSAT_ROOT=/your/path/to/mathsat
MPIR >= 2.7.0
	MSVC only and only if linked with MathSAT 
	Specify the path to the gmp-include directory -DGMP_INCLUDE_DIR=/your/path/to/mathsat
	Specify the path to the mpir.lib directory -DGMP_MPIR_LIBRARY=/your/path/to/mpir.lib
	Specify the path to the mpirxx.lib directory -DGMP_MPIRXX_LIBRARY=/your/path/to/mpirxx.lib
GMP
	clang and gcc only and inly if linked with MathSAT
CUDA Toolkit >= 6.5
	Specify the path to the cuda toolkit root dir using -DCUDA_ROOT=/your/path/to/cuda
CUSP >= 0.4.0
	Only of built with CUDA Toolkit
	CUSP is included in the StoRM Sources as a git-submodule unter /resources/3rdparty/cusplibrary
	
	
It is recommended to make an out-of-source build, meaning that the folder in which CMake generates its Cache, Makefiles and output files should not be the Project Root nor its Source Directory.
A typical build layout is to create a folder "build" in the project root alongside the CMakeLists.txt file, change into this folder and execute "cmake .." as this will leave all source files untouched
and makes cleaning up the build tree very easy.
There are several options available for the CMake Script as to control behaviour and included components.
If no error occured during the last CMake Configure round, press Generate. 
Now you can build StoRM using the generated project/makefiles in the Build folder you selected.