]>
Commit | Line | Data |
---|---|---|
45526b5e | 1 | |
2 | Note: The CMake build of AliRoot builds out-of-source | |
3 | ||
529dfa42 | 4 | Steps to Build AliRoot with CMake : |
dfa85384 | 5 | |
8b0f7d96 | 6 | 1. Check out Aliroot source into a folder (usually specified by the environment variable ALICE) |
45526b5e | 7 | |
8b0f7d96 | 8 | cd $ALICE |
11f822d1 | 9 | svn co https://alisoft.cern.ch/AliRoot/trunk AliRoot |
10 | ||
11 | Note: Please use https:// if you want to be able to commit changes to the SVN repository. | |
529dfa42 | 12 | |
8b0f7d96 | 13 | 2. Set the environment variable ALICE_ROOT to point to the source you have checked out |
14 | ||
15 | cd AliRoot | |
16 | export ALICE_ROOT=`pwd` | |
17 | ||
18 | ||
19 | 3. Create a new folder where the build will take place. It must be different from the source directory! | |
45526b5e | 20 | |
8b0f7d96 | 21 | cd .. |
22 | mkdir objdir | |
23 | cd objdir | |
24 | ||
25 | 4. Optionally specify the place for installation using the environment variable ALICE_INSTALL. | |
26 | It you do not specify it, "make install" will put lib, bin and include in ALICE_ROOT | |
27 | ||
28 | 5. Optionally specify the location of Geant3 using the environment variable GEANT3DIR | |
29 | ||
30 | 6. Execute the following commands to configure the build | |
31 | ||
32 | cmake $ALICE_ROOT | |
33 | ||
aecc2ba0 | 34 | |
8b0f7d96 | 35 | Note: Some files CMakeLists.txt will be created in the source tree, so you need write access there. This |
36 | is a temporary situation that will change soon. | |
aecc2ba0 | 37 | |
38 | 6a.Run | |
39 | cmake -DCMAKE_BUILD_TYPE=DEBUG $ALICE_ROOT | |
8557f2a4 | 40 | to compile AliRoot in Debug configuration (-g compiler flags). |
41 | ||
42 | To change the configuration later on you can either | |
43 | edit cache variable CMAKE_BUILD_TYPE using 'ccmake' command ('None' value for default configuration), | |
44 | ||
45 | or setup default configuration (-O -g flags are setting up) by running | |
46 | cmake $ALICE_ROOT | |
47 | ||
48 | 6b. To compile AliRoot in Release mode (-03 flag) run | |
49 | cmake -DCMAKE_BUILD_TYPE=Release $ALICE_ROOT | |
50 | ||
51 | 6c. Command | |
52 | cmake -DCMAKE_BUILD_TYPE=RelRelWithDebInfo $ALICE_ROOT | |
53 | allows to compile AliRoot with -g -O2 options. | |
54 | ||
55 | Please note! The default values for these flags change with different compilers. | |
56 | If CMake does not know your compiler, the contents will be empty. | |
57 | ||
8b0f7d96 | 58 | |
59 | 7. Build and install AliRoot. Note that the parralel build is fully operational with CMake. | |
60 | ||
61 | make -j4 | |
62 | make install | |
529dfa42 | 63 | |
8b0f7d96 | 64 | If you make changes in the source tree, it is enough to do |
45526b5e | 65 | |
8b0f7d96 | 66 | make |
67 | make install | |
529f129e | 68 | |
8b0f7d96 | 69 | to get them in use. |
529dfa42 | 70 | |
8b0f7d96 | 71 | 9. In order to build addtional targets like THydjet and SHUTTLE add the following options to the cmake command |
45526b5e | 72 | |
73 | cmake -DTHydjet=ON -DSHUTTLE=ON <path_to_source> | |
74 | ||
8b0f7d96 | 75 | 10. Static libraries can be built using |
529f129e | 76 | |
77 | make alilibs-static | |
78 | ||
8b0f7d96 | 79 | 11. Individual Modules can be built using |
529f129e | 80 | |
81 | make <Module>-all | |
82 | make <Module>-all-static | |
83 | ||
84 | eg. make STEER-all STEER-all-static | |
85 | ||
8b0f7d96 | 86 | 12. Individual Packages can be built using |
529f129e | 87 | |
88 | make <Package> | |
89 | make <Package>-static | |
90 | ||
91 | eg. make STEERbase STEERbase-static | |
529dfa42 | 92 | |
8b0f7d96 | 93 | 13. The code can be checked for the ALICE coding conventions on a package, module or class level using the following targets. |
c2a2c0b8 | 94 | |
95 | make check-all | |
96 | make <Module>-check-all | |
97 | make <Package>-check | |
8948a174 | 98 | 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 |
c2a2c0b8 | 99 | |
811ffdcc | 100 | The resulting violations will be written to the folder <Build_Directory>/<Module>/check/viols |
c2a2c0b8 | 101 | |
8b0f7d96 | 102 | 14. To Build PARs the following targets can be used. The resulting packages will be created in the cmake build directory |
6a9e2760 | 103 | |
104 | make par-all | |
105 | make <Package>.par | |
8948a174 | 106 | make <Module>-par-all //build all par packages in the module |
3a8dbb31 | 107 | |
8b0f7d96 | 108 | 15. To test PARs after building run |
3a8dbb31 | 109 | |
110 | make test-par-all | |
111 | make test-<Package> | |
112 | make test-<Module>-par-all | |
6a9e2760 | 113 | |
45526b5e | 114 | !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 |
529dfa42 | 115 | |
dfa85384 | 116 |