X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=README_CMake;h=18a1c6b5c8cf9209c542e95a7cc7ee73ba44694d;hp=4babc8d3a19d47a3da032bed5f327b00a15d9976;hb=7dc1270db91d6d6439eeb857a60132672872fe76;hpb=1ef7304f16b2bceac5ce98af8489a0408cb54cbf diff --git a/README_CMake b/README_CMake index 4babc8d3a19..18a1c6b5c8c 100644 --- a/README_CMake +++ b/README_CMake @@ -1,7 +1,116 @@ -# -You have to pass in the cmake step some parameter to the script -otherwise the CMakeLists.txt in the subdirectories are not created. - cmake -DGENERATE_FILES=TRUE +Note: The CMake build of AliRoot builds out-of-source + +Steps to Build AliRoot with CMake : + +1. Check out Aliroot source into a folder (usually specified by the environment variable ALICE) + + cd $ALICE + svn co https://alisoft.cern.ch/AliRoot/trunk AliRoot + +Note: Please use https:// if you want to be able to commit changes to the SVN repository. + +2. Set the environment variable ALICE_ROOT to point to the source you have checked out + + cd AliRoot + export ALICE_ROOT=`pwd` + + +3. Create a new folder where the build will take place. It must be different from the source directory! + + cd .. + mkdir objdir + cd objdir + +4. Optionally specify the place for installation using the environment variable ALICE_INSTALL. +It you do not specify it, "make install" will put lib, bin and include in ALICE_ROOT + +5. Optionally specify the location of Geant3 using the environment variable GEANT3DIR + +6. Execute the following commands to configure the build + + cmake $ALICE_ROOT + + +Note: Some files CMakeLists.txt will be created in the source tree, so you need write access there. This +is a temporary situation that will change soon. + + 6a.Run + cmake -DCMAKE_BUILD_TYPE=DEBUG $ALICE_ROOT + to compile AliRoot in Debug configuration (-g compiler flags). + + To change the configuration later on you can either + edit cache variable CMAKE_BUILD_TYPE using 'ccmake' command ('None' value for default configuration), + + or setup default configuration (-O -g flags are setting up) by running + cmake $ALICE_ROOT + + 6b. To compile AliRoot in Release mode (-03 flag) run + cmake -DCMAKE_BUILD_TYPE=Release $ALICE_ROOT + + 6c. Command + cmake -DCMAKE_BUILD_TYPE=RelRelWithDebInfo $ALICE_ROOT + allows to compile AliRoot with -g -O2 options. + +Please note! The default values for these flags change with different compilers. +If CMake does not know your compiler, the contents will be empty. + + +7. Build and install AliRoot. Note that the parralel build is fully operational with CMake. + + make -j4 + make install + +If you make changes in the source tree, it is enough to do + + make + make install + +to get them in use. + +9. In order to build addtional targets like THydjet and SHUTTLE add the following options to the cmake command + + cmake -DTHydjet=ON -DSHUTTLE=ON + +10. Static libraries can be built using + + make alilibs-static + +11. Individual Modules can be built using + + make -all + make -all-static + +eg. make STEER-all STEER-all-static + +12. Individual Packages can be built using + + make + make -static + +eg. make STEERbase STEERbase-static + +13. The code can be checked for the ALICE coding conventions on a package, module or class level using the following targets. + + make check-all + make -check-all + make -check + make --check // To use this run cmake with -DCLASSCHECK="YES" option. It is turned off by default since it bloats the Makefile and slows down the internal makefile rule checking + + The resulting violations will be written to the folder //check/viols + +14. To Build PARs the following targets can be used. The resulting packages will be created in the cmake build directory + + make par-all + make .par + make -par-all //build all par packages in the module + +15. To test PARs after building run + + make test-par-all + make test- + make test--par-all + +!IMPORTANT! - Make sure your source folder is clean. If you used the old make system to build aliroot run make clean in the source directory before you run cmake + - is the correct command.