Updated documentation
[u/mrichter/AliRoot.git] / README_CMake
1
2 Note: The CMake build of AliRoot builds out-of-source
3
4 Steps to Build AliRoot with CMake :
5
6 1. Check out Aliroot source into a folder (usually specified by the environment variable ALICE)
7         
8         cd $ALICE
9         svn co http://alisoft.cern.ch/AliRoot/trunk AliRoot
10
11 2. Set the environment variable ALICE_ROOT to point to the source you have checked out
12
13        cd AliRoot
14        export ALICE_ROOT=`pwd`
15
16
17 3. Create a new folder where the build will take place. It must be different from the source directory!
18         
19         cd ..
20         mkdir objdir
21         cd objdir
22
23 4. Optionally specify the place for installation using the environment variable ALICE_INSTALL.
24 It you do not specify it, "make install" will put lib, bin and include in ALICE_ROOT
25
26 5. Optionally specify the location of Geant3 using the environment variable GEANT3DIR
27
28 6. Execute the following commands to configure the build
29
30         cmake $ALICE_ROOT
31
32 Note: Some files CMakeLists.txt will be created in the source tree, so you need write access there. This 
33 is a temporary situation that will change soon.
34
35 7. Build and install AliRoot. Note that the parralel build is fully operational with CMake.
36
37          make -j4
38          make install
39
40 If you make changes in the source tree, it is enough to do
41
42          make
43          make install
44
45 to get them in use.
46
47 9. In order to build addtional targets like THydjet and SHUTTLE add the following options to the cmake command
48
49         cmake -DTHydjet=ON -DSHUTTLE=ON <path_to_source>
50
51 10. Static libraries can be built using
52
53         make alilibs-static
54
55 11. Individual Modules can be built using
56
57         make <Module>-all
58         make <Module>-all-static 
59
60 eg.     make STEER-all STEER-all-static
61
62 12. Individual Packages can be built using
63
64         make <Package>
65         make <Package>-static
66
67 eg.     make STEERbase STEERbase-static
68
69 13. The code can be checked for the ALICE coding conventions on a package, module or class level using the following targets. 
70
71   make check-all
72   make <Module>-check-all
73   make <Package>-check
74   make <Module>-<ClassName>-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
75
76   The resulting violations will be written to the folder <Build_Directory>/<Module>/check/viols
77
78 14. To Build PARs the following targets can be used. The resulting packages will be created in the cmake build directory
79
80   make par-all 
81   make <Package>.par
82   make <Module>-par-all   //build all par packages in the module
83
84 15. To test PARs after building run
85
86   make test-par-all
87   make test-<Package>
88   make test-<Module>-par-all
89
90 !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
91  
92