]>
Commit | Line | Data |
---|---|---|
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 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. | |
12 | ||
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! | |
20 | ||
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 | ||
34 | ||
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. | |
37 | ||
38 | 6a.Run | |
39 | cmake -DCMAKE_BUILD_TYPE=DEBUG $ALICE_ROOT | |
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 | ||
58 | ||
59 | 7. Build and install AliRoot. Note that the parralel build is fully operational with CMake. | |
60 | ||
61 | make -j4 | |
62 | make install | |
63 | ||
64 | If you make changes in the source tree, it is enough to do | |
65 | ||
66 | make | |
67 | make install | |
68 | ||
69 | to get them in use. | |
70 | ||
71 | 9. In order to build addtional targets like THydjet and SHUTTLE add the following options to the cmake command | |
72 | ||
73 | cmake -DTHydjet=ON -DSHUTTLE=ON <path_to_source> | |
74 | ||
75 | 10. Static libraries can be built using | |
76 | ||
77 | make alilibs-static | |
78 | ||
79 | 11. Individual Modules can be built using | |
80 | ||
81 | make <Module>-all | |
82 | make <Module>-all-static | |
83 | ||
84 | eg. make STEER-all STEER-all-static | |
85 | ||
86 | 12. Individual Packages can be built using | |
87 | ||
88 | make <Package> | |
89 | make <Package>-static | |
90 | ||
91 | eg. make STEERbase STEERbase-static | |
92 | ||
93 | 13. The code can be checked for the ALICE coding conventions on a package, module or class level using the following targets. | |
94 | ||
95 | make check-all | |
96 | make <Module>-check-all | |
97 | make <Package>-check | |
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 | |
99 | ||
100 | The resulting violations will be written to the folder <Build_Directory>/<Module>/check/viols | |
101 | ||
102 | 14. To Build PARs the following targets can be used. The resulting packages will be created in the cmake build directory | |
103 | ||
104 | make par-all | |
105 | make <Package>.par | |
106 | make <Module>-par-all //build all par packages in the module | |
107 | ||
108 | 15. To test PARs after building run | |
109 | ||
110 | make test-par-all | |
111 | make test-<Package> | |
112 | make test-<Module>-par-all | |
113 | ||
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 | |
115 | ||
116 |