+# Additional Modules
+# ------------------------------
+list(APPEND ALIROOTMODULES TUHKMgen EPOS)
+
+# EVE
+# ------------------------------
+ALICE_RootConfig(EVE --has-opengl)
+if(NOT EVE STREQUAL "no")
+ list(APPEND ALIROOTMODULES EVE)
+endif(NOT EVE STREQUAL "no")
+
+# CERN Modules
+# ------------------------------
+set(CERNMODULES LHAPDF HIJING MICROCERN HERWIG)
+
+# Check for Pythia 6
+if(EXISTS ${ROOTINCDIR}/TPythia6.h)
+ set(PYTHIA6 TRUE)
+ list(APPEND CERNMODULES PYTHIA6 EVGEN)
+elseif(NOT NOPYTHIA)
+ message(FATAL_ERROR "ROOT must have Pythia6 enabled !")
+endif(EXISTS ${ROOTINCDIR}/TPythia6.h)
+
+# Set Final list of modules
+set(MODULES ${ALIROOTMODULES} ${CERNMODULES} ALIROOT)
+
+# Set Module directories
+set(MODDIRS ${MODULES})
+
+# Libraries for Linking
+# ------------------------------
+set(ALILIBS MUON TPC PMD TRD FMD TOF ITS PHOS AD ACORDE HMPID VZERO ZDC STRUCT T0 EVGEN STEER TRIGGER MFT)
+set(LIBS ${ROOTCLIBS} ${ROOTPLIBS} ${SYSLIBS})
+
+# Configure ARVerion.h
+# ------------------------------
+# If the sources were taken from Git
+# Sets 3 git variables
+# - GIT_REFSPEC - complete name of the current reference
+# - ALIROOT_BRANCH - name of the branch or tag extracted from the current reference
+# - GIT_SHA1 - current hash in the long format
+# - GIT_SHORT_SHA1 - current hash in the short format
+if(EXISTS ${PROJECT_SOURCE_DIR}/.git/)
+ include(GetGitRevisionDescription)
+
+ find_package(Git)
+
+ if(GIT_FOUND)
+ get_git_head_revision(GIT_REFSPEC GIT_SHA1)
+
+ # GIT_REFSPEC is empty for detached mode = tags in detached mode or checkout to specific hash
+
+
+ # returns the closest reference to the current hash
+ # name of the current tag or heads/branch in the case of branches
+ git_describe(ALIROOT_GIT_TAG "--all" "--abbrev=0")
+
+ STRING(REGEX REPLACE "^(.+/)(.+)/(.*)$" "\\2" BRANCH_TYPE "${GIT_REFSPEC}" )
+
+ # the revision is not set in the case of a branch, it means we are doing development
+ # and the revision will trigger a reconfiguration
+ if(BRANCH_TYPE STREQUAL "heads")
+ set(ALIROOT_REVISION "ThisIsaBranchNoRevisionProvided")
+ STRING(REGEX REPLACE "^(.+/)(.+/)(.*)$" "\\3" SHORT_BRANCH "${GIT_REFSPEC}" )
+ else()
+ set(SHORT_BRANCH ${ALIROOT_GIT_TAG})
+ set(ALIROOT_REVISION ${GIT_SHA1})
+ endif()
+
+ set(ALIROOT_BRANCH ${SHORT_BRANCH})
+
+ # generate the short version of the revision hash
+ execute_process(COMMAND git rev-parse --short ${GIT_SHA1}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE GIT_SHORT_SHA1)
+
+ # if the rev-parse fails we set the short sha to the long initial one
+ if(NOT res EQUAL 0)
+ set(GIT_SHORT_SHA1 ${GIT_SHA1})
+ endif()
+
+ message(STATUS "Aliroot branch/tag: \"${ALIROOT_BRANCH}\" - Revision: \"${GIT_SHORT_SHA1}\" ")
+
+ else()
+ message("Git not installed. I can't tell you which revision you are using!")
+ endif(GIT_FOUND)
+else()
+ message("AliRoot sources not downloaded from a Version Control System. I can't tell which revision you are using!")
+endif(EXISTS ${PROJECT_SOURCE_DIR}/.git/)
+
+configure_file(${PROJECT_SOURCE_DIR}/cmake/ARVersion.h.tmp ${CMAKE_INCLUDE_EXPORT_DIRECTORY}/FromTemplate/ARVersion.h @ONLY)
+
+string (REPLACE "-" "." ALIROOT_BRANCH_SPEC "${ALIROOT_BRANCH}")
+
+#--------------------------------------------------------------------------------#
+# Build Modules #
+#--------------------------------------------------------------------------------#
+
+# Module Variables
+# ------------------------------
+set(ALLLIBS)
+set(ALLEXECS)
+set(INCLUDEFILES)
+set(BINLIBS)
+set(EXPORTFILES)
+
+# Top Level Build Targets
+# ------------------------------
+
+add_custom_target(alilibs-static)
+add_custom_target(include-headers ALL)
+add_custom_target(DA-all)
+add_custom_target(check-all)
+add_custom_target(check-hxml)
+add_custom_target(smell-all)
+add_custom_target(htmldoc)
+add_custom_target(par-all)
+add_custom_target(test-par-all)
+
+#NY file(GLOB CFILES_LIST ${CMAKE_SOURCE_DIR}/macros/*.C)
+
+add_custom_command(TARGET htmldoc
+ PRE_BUILD
+ COMMAND mkdir -p html
+ COMMAND rm -rf html/roothtml
+ COMMAND rm -f html/picts
+ COMMAND cd html && aliroot -q -b mkhtml.C\\\(0,1\\\)
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+
+# Include Vc, which provides the static libVc and the relevant CMake macros
+include(Vc/Vc.cmake)
+add_subdirectory(Vc)
+
+# Add Modules
+# ------------------------------
+foreach(MODULE ${MODDIRS})
+ set(${MODULE}ALIBS)
+#RS 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}-par-all)
+ add_custom_target(test-${MODULE}-par-all)
+ add_custom_target(${MODULE}-all-static)
+ add_dependencies(alilibs-static "${MODULE}-static")
+ add_subdirectory(${MODULE})
+
+#NY set(dir "${CMAKE_SOURCE_DIR}/${MODULE}")
+#NY if (EXISTS "${dir}")
+#NY file(GLOB CFILES_MOD ${dir}/*.C)
+#NY list(LENGTH CFILES_MOD len)
+#NY if (${len} GREATER 0)
+#NY list(APPEND CFILES_LIST "${CFILES_MOD}")
+#NY endif (${len} GREATER 0)
+#NY endif(EXISTS "${dir}")
+endforeach(MODULE)
+
+#NY foreach(cfile ${CFILES_LIST})
+#NY add_custom_command(TARGET htmldoc
+#NY PRE_BUILD
+#NY COMMAND cd html &&
+#NY aliroot -b -q \"mkhtml.C(\"${cfile}\")\" > /dev/null
+#NY WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+#NY endforeach(cfile)
+
+if(DATE_FOUND)
+ include (CMakeDA)
+endif(DATE_FOUND)
+
+if(RULECHECKER_FOUND)
+ add_custom_target(factfile DEPENDS ${FACTFILE})
+ add_custom_command( OUTPUT ${FACTFILE}
+ COMMAND ${CMAKE_COMMAND} -E echo "Re-generating factfile"
+ COMMAND ${JAVA_RUNTIME} -Xmx1024M -jar ${FACTEXTRACTOR_JAR} ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
+ DEPENDS check-hxml ${CMAKE_BINARY_DIR}/check-hxml-touchfile ${_factfile_deps}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+endif(RULECHECKER_FOUND)
+
+#--------------------------------------------------------------------------------#
+# Additional Targets #
+#--------------------------------------------------------------------------------#
+
+# AliMdc RPM
+# ------------------------------
+
+execute_process(
+COMMAND root-config --libdir
+OUTPUT_VARIABLE ROOTALIBDIR)
+string(REPLACE "\n" "" ROOTALIBDIR ${ROOTALIBDIR})
+
+execute_process(
+COMMAND root-config --arch
+OUTPUT_VARIABLE ARCHITECTURE)
+
+
+set(AEXT a)
+set(LIBPATH ${CMAKE_BINARY_DIR}/lib/tgt_${ALICE_TARGET})
+set(BINPATH ${CMAKE_BINARY_DIR}/bin/tgt_${ALICE_TARGET})
+set(EXPORTDIR ${ALICE_ROOT}/include)
+set(BINLIBDIRS -L${ALICE_ROOT}/${LIBPATH})
+set(RAWDIRO ${CMAKE_BINARY_DIR}/RAW)
+set(ALIMDCSPECFILE ${RAWDIRO}/alimdc.spec)
+set(RAWDatabaseALIB ${LIBPATH}/libRAWDatabase.${AEXT})
+set(ESDALIB ${LIBPATH}/libESD.${AEXT})
+set(STEERBaseALIB ${LIBPATH}/libSTEERBase.${AEXT})
+set(MDCALIB ${LIBPATH}/libMDC.${AEXT})
+set(MODDIRO RAW/tgt_${ALICE_TARGET})
+
+
+if( ${ARCHITECTURE} MATCHES "linuxx8664gcc" )
+set(ALIMDCARCHDIR x86_64)
+elseif( ${ARCHITECTURE} MATCHES "linux" )
+set(ALIMDCARCHDIR i386)
+elseif( ${ARCHITECTURE} MATCHES "linuxia64gcc" )
+set(ALIMDCARCHDIR ia64)
+elseif(NOT DEFINED ${ARCHITECTURE})
+message("alimdc-rpm: Unknown architecture" )
+else( ${ARCHITECTURE} MATCHES "linuxx8664gcc" )
+message("alimdc-rpm: Unknown architecture" )
+endif( ${ARCHITECTURE} MATCHES "linuxx8664gcc" )
+
+
+# Module version will be written in the generated header
+configure_file ("RAW/alimdc.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/RAW/alimdc.spec" @ONLY)
+
+add_custom_target( alimdc-rpm
+DEPENDS alimdc-static