Set of fixes for the DA + updated documentation (Johny)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 16:56:16 +0000 (16:56 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 16:56:16 +0000 (16:56 +0000)
CMakeLists.txt
ITS/ITSSPDFOda.cxx
ITS/ITSSPDPHYSda.cxx
ITS/ITSSPDSCANda.cxx
README_CMake
cmake/ALICE_CMake.cmake
cmake/CMakeDA.cmake
cmake/FindAMORE.cmake

index d20347e5dfa8121ab69239df9a9f50faa2f78ac7..932c987c014dd7ff68cf4c22531310cdbc2880d8 100644 (file)
@@ -100,11 +100,19 @@ set(BINLIBDIRS "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 # Exclude Module from all target
 # ------------------------------
 
-set(EXCLUDEMODULES THydjet SHUTTLE)
+#set(EXCLUDEMODULES THydjet SHUTTLE)
 
 # Standard Modules
 # ------------------------------
-set(ALIROOTMODULES STEER PHOS TRD TPC ZDC MUON PMD FMD TOF ITS ACORDE HMPID T0 BCM STRUCT VZERO THijing THbtp EMCAL THerwig TEPEMGEN FASTSIM TPHIC RAW MONITOR ANALYSIS JETAN HLT LHC ESDCheck STAT TTherminator CORRFW DPMJET TDPMjet PWG0 PWG1 PWG2 PWG3 PWG4 TRIGGER THydjet PYTHIA8)
+set(ALIROOTMODULES STEER PHOS TRD TPC ZDC MUON PMD FMD TOF ITS ACORDE HMPID T0 BCM STRUCT VZERO THijing THbtp EMCAL THerwig TEPEMGEN FASTSIM TPHIC RAW MONITOR ANALYSIS JETAN HLT LHC ESDCheck STAT TTherminator CORRFW DPMJET TDPMjet PWG0 PWG1 PWG2 PWG3 PWG4 TRIGGER PYTHIA8 )
+
+if(THydjet)
+  list(APPEND ALIROOTMODULES THydjet)
+endif(THydjet)
+
+if(SHUTTLE)
+  list(APPEND ALIROOTMODULES SHUTTLE)
+endif(SHUTTLE)
 
 # Additional Modules
 # ------------------------------
@@ -126,7 +134,7 @@ if(EXISTS ${ROOTINCDIR}/TPythia6.h)
   set(PYTHIA6 TRUE)
   list(APPEND CERNMODULES PYTHIA6 RALICE EVGEN)
 else()
-  message(FATAL_ERROR "Pythia6 is required !")
+  message(FATAL_ERROR "ROOT must have Pythia6 enabled !")
 endif(EXISTS ${ROOTINCDIR}/TPythia6.h)
 
 # Set Final list of modules 
@@ -171,16 +179,16 @@ set(EXPORTFILES)
 
 add_custom_target(alilibs-static)
 add_custom_target(include-headers)
-
+add_custom_target(DA-all)
 # Add Modules
 # ------------------------------
 foreach(MODULE ${MODDIRS})
+  set(${MODULE}ALIBS)
   configure_file(${PROJECT_SOURCE_DIR}/cmake/Module.tmp ${PROJECT_SOURCE_DIR}/${MODULE}/CMakeLists.txt @ONLY)
   add_custom_target(${MODULE}-all ALL)
   add_custom_target(${MODULE}-static)
   add_dependencies(alilibs-static "${MODULE}-static")
   add_subdirectory(${MODULE})
-
 endforeach(MODULE)
 
 if(DATE_FOUND AND AMORE_FOUND)
index 48c60d34c1932eb6b974a6215fc803667b44ae68..e8353474287f297d06dfe6307945fa10fb1cbac8 100644 (file)
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   
   // turn off annoying warning messages
   // NB: Should not be handled here 
-  AliLog logger = AliLog::GetRootLogger();
+  AliLog* logger = AliLog::GetRootLogger();
   logger->SetGlobalDebugLevel(-20);
   
 // ********* STEP 0: Get configuration files from db (if there are any) , then read parameters*********  
index a9792cc7bf7060ca2f82a340afbd5f3d10be59f6..2ed9a18cd8cfac8d692df24e640ea048d543ac1d 100644 (file)
@@ -98,7 +98,7 @@ int main(int argc, char **argv) {
 
   // turn off annoying warning messages
   // NB: Should not be handled here
-  AliLog logger = AliLog::GetRootLogger();
+  AliLog* logger = AliLog::GetRootLogger();
   logger->SetGlobalDebugLevel(-20);
 
   // ********* STEP 0: Get configuration files from db (if there are any) , then read parameters*********
index 85132e74e6c0d6c7f9d9972d8c558a204c9fe364..a57286a72d393ac41cea14cd4f3bd13b7d5e24b3 100644 (file)
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
 
   // turn off annoying warning messages
   // NB: Should not be handled here
-  AliLog logger = AliLog::GetRootLogger();
+  AliLog* logger = AliLog::GetRootLogger();
   logger->SetGlobalDebugLevel(-20);
 
   // calib scan types
index fb0eec9f3e0f7d4606251f1212439b269676ab7b..70b098504bc655b0e3b8266b987106cc22064607 100644 (file)
@@ -1,20 +1,28 @@
+
+Note: The CMake build of AliRoot builds out-of-source
+
 Steps to Build AliRoot with CMake :
 
-1. Define environment variable ALICE_INSTALL
-       export ALICE_INSTALL=$ALICE/AliRootInstall
+1. Check out Aliroot source into any folder
+       
+       svn co http://alisoft.cern.ch/AliRoot/trunk ~/trunk
 
-2. Set Path to point to binaries and libraries that will be built in ALICE_INSTALL
-       export PATH=$PATH:$ALICE_INSTALL/bin/tgt_${ALICE_TARGET}
-       export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ALICE_INSTALL/lib/tgt_${ALICE_TARGET}
+2. Create a new folder and set the environment variable ALICE_ROOT to point to it
+       
+       mkdir AliRoot
+       cd AliRoot
+       export ALICE_ROOT=`pwd`
 
 3. Execute the following commands to build AliRoot
-       cd $ALICE_INSTALL
-       cmake <path_to_source> 
+
+       cmake ~/trunk
        make
 
-4. In order to build addtional targets like TFluka, THydjet and SHUTTLE add the following options to the cmake command
-       cmake -DTFLUKA=ON -DTHYDJET=ON -DSHUTTLE=ON <path_to_source>
+4. In order to build addtional targets like THydjet and SHUTTLE add the following options to the cmake command
+
+       cmake -DTHydjet=ON -DSHUTTLE=ON <path_to_source>
+
 
-!IMPORTANT! : Make sure you delete all the files in your ALICE_INSTALL directory before you generate the Makefile again to clear the CMakeCache or the generated build system may not function properly.
+!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
  
 
index 0603fbcb10b5f87e154bdff71ebec843309c5d0c..de3286d0808a4034c66e1e62ee4e04d1288a794f 100644 (file)
@@ -306,15 +306,17 @@ macro(ALICE_BuildPackage)
   endif(CINTAUTOLINK)
 
   if(lib)
-    list(APPEND ${MODULE}LIBS ${PACKAGE})
+    list(APPEND PMLIBS ${PACKAGE})
     list(APPEND ALLLIBS ${PACKAGE})
-    list(APPEND ${MODULE}ALIBS ${PACKAGE}_a)
+    list(APPEND PMALIBS ${PACKAGE}_a)
     list(APPEND ALLALIBS ${PACKAGE}_a)
     list(APPEND BINLIBS ${PACKAGE})
   else()
     list(APPEND ALLEXECS ${PACKAGE})
   endif(lib)
-
+  set(${MODULE}ALIBS "${PMALIBS}" PARENT_SCOPE)
+  set(${MODULE}LIBS "${PMLIBS}" PARENT_SCOPE)
+  set(${MODULE}INC "${EINCLUDE}" PARENT_SCOPE)
   list(APPEND INCLUDEFILES ${PEXPORTDEST})
   ALICE_CopyHeaders()
   if(WITHDICT)  
index a93db6fed6d31e0fc812cfe3e370f36516287cf3..3350ef13de05a43e0a3a0623616ed64be24dc5cf 100644 (file)
@@ -5,6 +5,16 @@ cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)
 #list of detectors 
 set(ONLINEDETECTORS SPD SDD SSD TPC TRD TOF HMP PHS CPV PMD MCH MTR FMD T00 V00 ZDC ACO TRI EMC HLT TST GRP)
 
+function(expand output input)
+    string(REGEX MATCH "\\\${[^}]*}" m "${input}")
+    while(m)
+        string(REGEX REPLACE "\\\${(.*)}" "\\1" v "${m}")
+        string(REPLACE "\${${v}}" "${${v}}" input "${input}")
+        string(REGEX MATCH "\\\${[^}]*}" m "${input}")
+    endwhile()
+    set("${output}" "${input}" PARENT_SCOPE)
+endfunction()
+
 #function to get module for detector
 function (detector_module _module detector)
   #Map of online detectors to DA in pairs of ONLINEDETECTORNAME DAMODULE
@@ -85,25 +95,33 @@ else()
 endif(DAQDALIB_PATH)
 set(DAQDALIB "${DAQDADIR}/libdaqDA.a")
 
-include_directories(${DAQDADIR} RAW include)
+include_directories(${DAQDADIR} RAW include STEER)
 include_directories(SYSTEM ${ROOTINCDIR})
 
 # ----------Create All Valid targets---------
          
 foreach(detector ${ONLINEDETECTORS} )
-  
-  #ALIROOTALIBS
-
-  set(ALIROOTALIBS)
-
-  list(APPEND ALIROOTALIBS RAWDatabase_a RAWDatarec_a RAWDatasim_a STEERBase_a STEER_a CDB_a ESD_a STAT_a AOD_a )
 
   set(ONLINEDETECTORNAME ${detector})
 
   detector_module(DAMODULE ${ONLINEDETECTORNAME})
 
   detector_subda(SUBDAMODULE ${ONLINEDETECTORNAME})
+  
+  #ALIROOTALIBS
 
+  set(ALIROOTALIBS)
+
+  list(APPEND ALIROOTALIBS RAWDatabase_a RAWDatarec_a RAWDatasim_a STEERBase_a STEER_a CDB_a ESD_a STAT_a AOD_a )
+
+  expand(ALIROOTALIBS2 "\${${DAMODULE}ALIBS}")
+  expand(DAINCDIRS "\${${DAMODULE}INC}")
+  list(APPEND ALIROOTALIBS ${ALIROOTALIBS2})
+  
+  message("Listing sub directories for ${DAMODULE}")
+  message("${DAINCDIRS}")
+  
+  include_directories(${DAMODULE} ${SUBDIR} ${DAINCDIRS})
 #Get detector algorithms for this detector
 
   foreach(dafile ${_dafiles})
@@ -124,7 +142,7 @@ foreach(detector ${ONLINEDETECTORS} )
 
          set(DASRC "${DAMODULE}/${DAMODULE}${SUBDAMODULE}${DANAME}da.cxx")
          set(DALIB "${DAMODULE}${SUBDAMODULE}${DANAME}DA")
-         set(DAEXE "${DAMODULE}${SUBDAMODULE}${DANAME}da")
+         set(DAEXE "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe")
          
        # DAVERSION
          execute_process(COMMAND svn info $ENV{ALICE_ROOT}/${DASRC} OUTPUT_VARIABLE _daversion OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -144,16 +162,7 @@ foreach(detector ${ONLINEDETECTORS} )
          set(DAMAKEFILE "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.make")
 
 
-# Super Duper Hack :D
-         file(GLOB _damodule "$ENV{ALICE_ROOT}/${DAMODULE}/lib${DAMODULE}*.pkg" )
-         
-         foreach(_submodule ${_damodule})
-           string(REGEX REPLACE ".*lib(${DAMODULE}.*)" "\\1" _submodule ${_submodule})
-           string(REGEX REPLACE "\\.pkg" "_a" _submodule ${_submodule})
-           list(APPEND ALIROOTALIBS "${_submodule}")     
-         endforeach(_submodule)
-         
-         list(REMOVE_DUPLICATES ALIROOTALIBS)
+          
          if(EXTRADAMODULE)
            ##**set
          endif(EXTRADAMODULE)
@@ -175,34 +184,35 @@ foreach(detector ${ONLINEDETECTORS} )
 
 #----------- Targets ----------------------
 
-         set(CMAKE_CXX_FLAGS ${CXXFLAGS})
-         set(CMAKE_C_FLAGS ${CFLAGS})
+         set(CMAKE_CXX_FLAGS "${CXXFLAGS}")
+         set(CMAKE_C_FLAGS "${CFLAGS}")
          set(CMAKE_Fortran_FLAGS ${FFLAGS})
          set(CMAKE_SHARED_LINKER_FLAGS ${SOFLAGS}) 
          set(CMAKE_MODULE_LINKER_FLAGS ${LDFLAGS})
 
          set(ZIP)
+         message("${DAEXE}- ${DAMODULE} - ${ALIROOTALIBS}")
          foreach(_lib ${ALIROOTALIBS})
           string(REGEX REPLACE "-all" "_a" _lib ${_lib})
           list(APPEND ZIP && ar x "../lib${_lib}.a")
          endforeach(_lib)
-         list (APPEND ZIP && ar r "../${DALIB}.a" "*.o")
-         add_custom_target("${DALIB}_x" rm -rf junk && mkdir -p junk 
+         list (APPEND ZIP && ar r "../lib${DALIB}.a" "*.o")
+
+         add_custom_target( ${DALIB} COMMAND rm -rf junk && mkdir -p junk 
                                COMMAND cd junk ${ZIP}
                                COMMAND cd ../ && rm -rf junk
                                DEPENDS ${ALIROOTALIBS}
                                WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
 
-         add_custom_target(${DATARGETNAME} DEPENDS ${DAEXE} )
-         add_executable(${DAEXE} ${DASRC} )
+         add_custom_target(${DATARGETNAME})
+         add_executable(${DAEXE} ${DASRC})
          set_property(TARGET ${DAEXE} PROPERTY EXCLUDE_FROM_ALL TRUE)
-         add_dependencies(${DAEXE} ${DALIB}_x)
-         target_link_libraries(${DAEXE} "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DALIB}.a" ${EXTRAROOTLIB} "${ROOTLIBDIR}/libRoot.a" "${ROOTLIBDIR}/libfreetype.a" "${ROOTLIBDIR}/libpcre.a" ${SYSLIBS} ${DAQDALIB} ${MONITORLIBS} ${AMOREDALIBS})
+         add_dependencies(${DAEXE} ${DALIB})
+         add_dependencies(DA-all ${DATARGETNAME})
+         target_link_libraries(${DAEXE} "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${DALIB}.a" ${EXTRAROOTLIB} "${ROOTLIBDIR}/libRoot.a" "${ROOTLIBDIR}/libfreetype.a" "${ROOTLIBDIR}/libpcre.a" ${SYSLIBS} ${DAQDALIB} ${MONITORLIBS} ${AMOREDALIBS})
+         add_dependencies(${DATARGETNAME} ${DAEXE})
          
-#        add_custom_command(TARGET ${DAEXE} 
-#                      PRE_LINK
-#                      COMMAND ${CMAKE_AR} r ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${EXTRAROOTLIB} ${_extraroot})
+
        endif(match)
   endforeach(dafile)
 endforeach(detector)
index 5287bdddcfefe5bc277ea15e09201aa71ea25736..fc6a55cc7b3a55bcab07523d47eda26fa754f1fe 100644 (file)
@@ -10,7 +10,7 @@ if(AMORE_CONFIG)
   set(AMORE_FOUND TRUE)
   set(AMOREDEFINITIONS "-DALI_AMORE")
   execute_process(COMMAND ${AMORE_CONFIG} --cflags --includes OUTPUT_VARIABLE AMOREFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
-  execute_process(COMMAND ${AMORE_CONFIG} --ldflags-da-static OUTPUT_VARIABLE _lddaflags OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND ${AMORE_CONFIG} --ldflags --ldflags-da-static --libs OUTPUT_VARIABLE _lddaflags OUTPUT_STRIP_TRAILING_WHITESPACE)
   ALICE_CleanOutput(_lddaflags "${_lddaflags}")
   if(DATE_FOUND)
     execute_process(COMMAND ${DATE_CONFIG} --rcproxylibs OUTPUT_VARIABLE _rcproxylib OUTPUT_STRIP_TRAILING_WHITESPACE)