TrainSetup version of official QA train
[u/mrichter/AliRoot.git] / README_CMake
45526b5e 1
2Note: The CMake build of AliRoot builds out-of-source
529dfa42 4Steps to Build AliRoot with CMake :
dfa85384 5
8b0f7d96 61. Check out Aliroot source into a folder (usually specified by the environment variable ALICE)
45526b5e 7
8b0f7d96 8 cd $ALICE
11f822d1 9 svn co AliRoot
11Note: Please use https:// if you want to be able to commit changes to the SVN repository.
529dfa42 12
8b0f7d96 132. Set the environment variable ALICE_ROOT to point to the source you have checked out
15 cd AliRoot
16 export ALICE_ROOT=`pwd`
193. 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
254. Optionally specify the place for installation using the environment variable ALICE_INSTALL.
26It you do not specify it, "make install" will put lib, bin and include in ALICE_ROOT
285. Optionally specify the location of Geant3 using the environment variable GEANT3DIR
306. Execute the following commands to configure the build
32 cmake $ALICE_ROOT
aecc2ba0 34
8b0f7d96 35Note: Some files CMakeLists.txt will be created in the source tree, so you need write access there. This
36is a temporary situation that will change soon.
aecc2ba0 37
38 6a.Run
8557f2a4 40 to compile AliRoot in Debug configuration (-g compiler flags).
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),
45 or setup default configuration (-O -g flags are setting up) by running
46 cmake $ALICE_ROOT
48 6b. To compile AliRoot in Release mode (-03 flag) run
51 6c. Command
53 allows to compile AliRoot with -g -O2 options.
55Please note! The default values for these flags change with different compilers.
56If CMake does not know your compiler, the contents will be empty.
8b0f7d96 58
597. Build and install AliRoot. Note that the parralel build is fully operational with CMake.
61 make -j4
62 make install
529dfa42 63
8b0f7d96 64If you make changes in the source tree, it is enough to do
45526b5e 65
8b0f7d96 66 make
67 make install
529f129e 68
8b0f7d96 69to get them in use.
529dfa42 70
8b0f7d96 719. 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>
8b0f7d96 7510. Static libraries can be built using
529f129e 76
77 make alilibs-static
8b0f7d96 7911. Individual Modules can be built using
529f129e 80
81 make <Module>-all
82 make <Module>-all-static
84eg. make STEER-all STEER-all-static
8b0f7d96 8612. Individual Packages can be built using
529f129e 87
88 make <Package>
89 make <Package>-static
91eg. make STEERbase STEERbase-static
529dfa42 92
8b0f7d96 9313. 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 10214. 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 10815. 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