AliRoot

From MukeWiki

ROOT

return Form("x=%g, y=%g", x, y);
return Form("TGLSceneBase %s", fName.Data());
// inside a thread-local static character buffer
XRootD
cmake ../xrootd-4.8.1/ -DCMAKE_INSTALL_PREFIX=/cern/xrootd-4.8.1
make; make install
cd /cern; ln -s xrootd-4.8.1 xrootd

XRootD cannot be built in-source! Please run cmake <src-dir> outside the source directory and be sure to remove CMakeCache.txt or CMakeFiles if they exist in the source directory.

ROOT
 // ROOT 6.26 C++14 (2022-04 => 2024-03)
 // ROOT 6.28 C++14 (2023-02 => 2024-01)
 // ROOT 6.30 C++17 (2023-11 => 2024-01)
 // ROOT 6.32 C++17 (2024-05 => actual)


  • install in /cern/root_master (source dir) and build in /cern/root_master_build (out of source dir)
  • it is not supported to build ROOT on the source directory
  • location independent installation method
  • by default CMAKE_INSTALL_PREFIX=/usr/local
  • don't try CMAKE_INSTALL_PREFIX=. (install files and up-to-date files => make install and make loop)
  • Before trying to build ROOT, see the “Build Prerequisites” web page. In any case, when you are building a new ROOT version, make always sure that nothing in your environment variables (i.e. “ROOTSYS”, “PATH”, “LD_LIBRARY_PATH”) points to another existing version of ROOT (and that’s another good reason why there should be no ROOT related files in “standard” system locations, like “/usr/[bin|lib]” or “/usr/local/[bin|lib]”). [1]
$ export | grep root
declare -x LD_LIBRARY_PATH="/cern/xrootd/lib64"
declare -x PATH=" :/cern/root/bin:/cern/xrootd/bin: "

cd /cern
git clone --depth 1 http://root.cern.ch/git/root.git root_master_source
git clone --depth 1 http://root.cern.ch/git/root.git root_master
git clone --branch master --depth 1 https://github.com/root-project/root.git root_master_src

ln -s root_master root     # PATH="/cern/root/bin"
mkdir root_master_build/
cd root_master_build

cmake /cern/root_master_src/ -Droofit=OFF -Dtmva=OFF -Dmathmore=OFF -DXROOTD_ROOT_DIR=/cern/xrootd/ -DCMAKE_INSTALL_PREFIX=/cern/root_master/ -Drpath=ON
cmake /cern/root_master_source/ -Droofit=OFF -Dtmva=OFF -Dmathmore=OFF -Dhttp=ON -DXROOTD_ROOT_DIR=/cern/xrootd/ -DCMAKE_INSTALL_PREFIX=/cern/root_master/ -Drpath=ON -DCMAKE_CXX_STANDARD=17 -Droot7=ON
# -Dfortran=ON (needed for h2root and g2root)
cmake /cern/root_master -Droofit=OFF -Dtmva=OFF -Dmathmore=OFF -Dhttp=ON -DXROOTD_ROOT_DIR=/cern/xrootd -DCMAKE_INSTALL_PREFIX=/cern/root_master -Drpath=ON
make
make install
  • old method
$ export | grep root
declare -x LD_LIBRARY_PATH="/cern/root/lib:/cern/xrootd/lib64"
declare -x PATH=" :/cern/root/bin:/cern/xrootd/bin: "
declare -x ROOTSYS="/cern/root"

cd /cern
git clone --depth 1 http://root.cern.ch/git/root.git root_master
ln -s root_master root     # ROOTSYS="/cern/root"
mkdir root_master_build/
cd root_master_build/
cmake /cern/root_master -Droofit=OFF -Dtmva=OFF -Dmathmore=OFF -Dhttp=ON -DXROOTD_ROOT_DIR=/cern/xrootd -DCMAKE_INSTALL_PREFIX=/cern/root_master
make
make install
  • update
cd /cern/root_master_build
git -C /cern/root_master pull
rm /cern/root_master/etc/dictpch/allLinkDefs.h /cern/root_master/etc/allDict.cxx.pch /cern/root_master/etc/dictpch/allHeaders.h /cern/root_master/tutorials/hsimple.root
make
make install
  • to start from a clean configuration it is recommended to delete the file root_master_build/CMakeCache.txt
  • You can inspect the list of options and their descriptions by running cmake -LH $PWD in the build directory
  • Allow to build ROOT without any Internet connection https://sft.its.cern.ch/jira/browse/ROOT-9163
  • CMakeFiles/move_artifacts.dir/build.make find removed file(s)
  • for building clang-format from ROOT LLVM/Clang source code add CMake variable -DCLANG_ENABLE_FORMAT=ON
make   # build LibFormat library
cd /cern/root_master_build/interpreter/llvm/src/tools/clang/tools/clang-format
make   # build ClangFormat stand-alone tool

ROOT5

posledna F23 s ROOT5

gcc 13 (F38)
-std=c++1y                  Deprecated in favor of -std=c++14.  Same as -std=c++14.
ROOT5
cd /cern
git clone --depth 1 -b v5-34-00-patches http://root.cern.ch/git/root.git root_v5-34-00-patches
ln -s root_v5-34-00-patches root         # ROOTSYS="/cern/root"
cd root_v5-34-00-patches
wget https://raw.githubusercontent.com/musinsky/ROOTHighlight/master/root_v5-34-00-patches/HighlightROOT5.patch
git apply HighlightROOT5.patch
./configure --with-xrootd=/cern/xrootd --enable-roofit --enable-minuit2 --enable-http
./configure --with-xrootd=/cern/xrootd --disable-tmva

# error: ISO C++17 does not allow dynamic exception specifications
./configure --disable-tmva --cxxflags=-std=c++14   # tested on Fedora 33 with gcc 11.2.1
./configure --disable-tmva --enable-cxx14   # => -std=c++1y (c++1y is draft for c++14 ISO standard)   c++1y sa pouizva iba pri g++ a nie pri gcc
#### --disable-memstat --disable-builtin-afterimage # 2021-11-23
# ROOT 5 need xrootd 4.x series (xrootd 4.12.6), but compile error with gcc 11.2.1
# update xrootd 4.12.6 with this simple patch compile
# https://listserv.slac.stanford.edu/cgi-bin/wa?A2=ind2012&L=XROOTD-DEV&O=A&P=50559  (https://github.com/xrootd/xrootd/commit/8f36753d46c183aa89058219e36e9a2980afd250)
# dalsia chyba https://listserv.slac.stanford.edu/cgi-bin/wa?A2=ind2010&L=XROOTD-DEV&P=101787
# https://github.com/root-project/root/issues/7292    => riesenie
# existuje na githube tag 4.12.8 !!! ale nie je v sekcii download 
# https://github.com/xrootd/xrootd/releases/tag/v4.12.8              uz je aj v4.12.9
# verzia !!! 4.12.8 riesi aj predchdzajudzi problem  !!! tested on Fedora 34 with gcc 11.2.1

make
export ROOTSYS=$(pwd)
# export ROOTSYS=$(root-config --prefix)   # if ROOTSYS is not declare
make install

/cern/root_v5-34-00-patches/etc/system.rootlogon.C

{
  Printf("ROOT5 Version: %s", gROOT->GetVersion());
}

git clone

2017-03-20
total size => du -hs dir_name
total files => find dir_name -type f | wc -l

[] git clone --depth 1 -b v5-34-00-patches http://root.cern.ch/git/root.git root_v5-34-00-patches   => 280 MB, 11854 files
Cloning into 'root_v5-34-00-patches'...
remote: Counting objects: 12792, done.
remote: Compressing objects: 100% (11256/11256), done.
Receiving objects: 100% (12792/12792), 72.59 MiB | 13.82 MiB/s, done.
remote: Total 12792 (delta 2145), reused 6588 (delta 1174)
Resolving deltas: 100% (2145/2145), done.
Checking connectivity... done.

[] git clone -b v5-34-00-patches http://root.cern.ch/git/root.git root_v5-34-00-patches_no_depth   => 789 MB, 11855 files
Cloning into 'root_v5-34-00-patches_no_depth'...
remote: Counting objects: 573407, done.
remote: Compressing objects: 100% (134748/134748), done.
remote: Total 573407 (delta 432023), reused 573097 (delta 431797)
Receiving objects: 100% (573407/573407), 566.71 MiB | 2.66 MiB/s, done.
Resolving deltas: 100% (432023/432023), done.
Checking connectivity... done.

[] git clone --depth 1 http://root.cern.ch/git/root.git root_master   => 534 MB, 17468 files
Cloning into 'root_master'...
remote: Counting objects: 18981, done.
remote: Compressing objects: 100% (17068/17068), done.
remote: Total 18981 (delta 2790), reused 8378 (delta 1432)
Receiving objects: 100% (18981/18981), 151.58 MiB | 5.59 MiB/s, done.
Resolving deltas: 100% (2790/2790), done.
Checking connectivity... done.

[] git clone http://root.cern.ch/git/root.git root_master_no_depth   => 964 MB, 17467 files
Cloning into 'root_master_no_depth'...
remote: Counting objects: 573407, done.
remote: Compressing objects: 100% (134748/134748), done.
remote: Total 573407 (delta 432025), reused 573096 (delta 431797)
Receiving objects: 100% (573407/573407), 566.71 MiB | 4.43 MiB/s, done.
Resolving deltas: 100% (432025/432025), done.
Checking connectivity... done.

alien

 dnf install libtool

mozno lepsie zadefinovat premennu GSHELL, gShell


wget http://alien.cern.ch/alien-installer