dir_name=`pwd`; SW=/home/frankm/SW; INSTALL_LCIO=${SW}/lcio/v02-04-03; INSTALL_XERCESC=${SW}/xercesc; INSTALL_G4=${SW}/g4_10.01.p02_dbg/lib/Geant4-10.1.2; CHECKOUT=${dir_name}/../../DD4hep.trunk/checkout; GEANT_VERSION=10.01.p02; #ROOT_VERSION=5.34.25 GEANT_VERSION=10.02.p02; INSTALL_G4=${SW}/g4_${GEANT_VERSION}_dbg/lib/Geant4-10.2.2; #ROOT_VERSION=6.06.06; ROOT_VERSION=6.08.00; source ${INSTALL_G4}/../../bin/geant4.sh; num_threads=2 # # Root version < 6.08 : #export CXX="`which g++-5` -D_GLIBCXX_USE_CXX11_ABI=0"; #export CC="`which gcc-5` -D_GLIBCXX_USE_CXX11_ABI=0"; # export CXX="`which g++-5`"; export CC="`which gcc-5`"; # ============================================================================== # Parse arguments # ============================================================================== parse_command_line_args() { MULTITHREADED=""; ARG_ERROR=""; PLATFORMS="dbg opt"; while [[ "$1" == -* ]]; do #echo "Arg:$1 $2"; a1=`echo $1 | tr A-Z a-z`; case ${a1} in -root) ROOT_VERSION=$2; shift ;; -geant4) GEANT_VERSION=$2; shift ;; -build) PLATFORMS="$2"; shift ;; -mt) MULTITHREADED="YES"; ;; -st) MULTITHREADED=""; ;; -threads) num_threads=$2; shift ;; -j) num_threads=$2; shift ;; *) ARG_ERROR=$1; ;; esac shift done } #cat ${ROOTSYS}/bin/thisroot.sh; # LINE="==================================================================================================="; BARS="===== "; # make_output() { echo "${LINE}"; echo "${BARS}"; echo "=====>> `pwd` "; if test -n "${1}"; then echo " +++++ ${1}"; fi; if test -n "${2}"; then echo " +++++ ${2}"; fi; echo "${BARS}"; echo "${LINE}"; } make_opt() { if test "$1" = "ON"; then arg="${2}=${1}";shift;shift; echo ${arg} $*; #else # echo ${1}; fi; } make_build() { echo ${CMD}; eval ${CMD}; if [ $? -ne 0 ]; then make_output "DANGER WILL ROBINSON DANGER!" "++++ Failed CMAKE command:" echo ${CMD}; exit 1 fi make install VERBOSE=1 -j ${num_threads}; if [ $? -ne 0 ]; then make_output "DANGER WILL ROBINSON DANGER!" "++++ Failed BUILD!" echo ${CMD}; exit 1 fi; make test; if [ $? -ne 0 ]; then make_output "DANGER WILL ROBINSON DANGER!" "++++ Failed TESTS!" echo ${CMD}; exit 1 fi; echo "${LINE}"; echo "${BARS}"; echo "=======>> Successfully build configuration `pwd` "; echo "${BARS}"; echo "${LINE}"; } build_all() { DEF_MODES="ON OFF"; G4_MODES="${DEF_MODES}"; XERCES_MODES="${DEF_MODES}"; LCIO_MODES="${DEF_MODES}"; #XERCES_MODES="OFF"; #G4_MODES="ON"; #XERCES_MODES="OFF"; #LCIO_MODES="ON"; BUILD_TYPE=; BUILD_TYPE="-DCMAKE_BUILD_TYPE=Debug"; for DOGEANT4 in ${G4_MODES}; do for DOXERCESC in ${XERCES_MODES}; do for DOGEAR in OFF; do for DOLCIO in ${LCIO_MODES}; do folder=build_Xer${DOXERCESC}_Geant${DOGEANT4}_Gear${DOGEAR}_Lcio${DOLCIO} WORK_DIR=${dir_name}/${folder}; mkdir -p ${WORK_DIR}/EX; cd ${WORK_DIR}; make_output; #-DDD4HEP_DEBUG_CMAKE=ON \ unset DD4hep_DIR; OPTS="`make_opt ${DOGEANT4} -DDD4HEP_USE_GEANT4 -DGeant4_DIR=${INSTALL_G4}`\ `make_opt ${DOLCIO} -DDD4HEP_USE_LCIO -DLCIO_DIR=${INSTALL_LCIO}` \ `make_opt ${DOXERCESC} -DDD4HEP_USE_XERCESC -DXERCESC_ROOT_DIR=${INSTALL_XERCESC}` \ -DCLHEP_INCLUDE_DIR=${INSTALL_G4}/../../include/Geant4/CLHEP \ -DCLHEP_LIBRARY=${INSTALL_G4}/libG4clhep.so \ -DDD4HEP_NO_REFLEX=ON -DDD4HEP_USE_CXX11=ON \ -DROOTSYS=${ROOTSYS} -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/DD4hep"; CMD="cd ${dir_name}/$folder ; cmake ${BUILD_TYPE} ${OPTS} ${CHECKOUT};"; make_build; unset ROOTSYS; DD4hep_DIR=${WORK_DIR}/DD4hep; OPTS_ex="`make_opt ${DOGEANT4} -DDD4HEP_USE_GEANT4 -DGeant4_DIR=${INSTALL_G4}`\ `make_opt ${DOLCIO} -DDD4HEP_USE_LCIO -DLCIO_DIR=${INSTALL_LCIO}` \ `make_opt ${DOXERCESC} -DDD4HEP_USE_XERCESC -DXERCESC_ROOT_DIR=${INSTALL_XERCESC}` \ -DCLHEP_INCLUDE_DIR=${INSTALL_G4}/../../include/Geant4/CLHEP \ -DCLHEP_LIBRARY=${INSTALL_G4}/libG4clhep.so \ -DDD4HEP_NO_REFLEX=ON -DDD4HEP_USE_CXX11=ON \ -DROOTSYS=${ROOTSYS}"; source ${DD4hep_DIR}/bin/thisdd4hep.sh; CMD="cd ${WORK_DIR}/EX; cmake ${BUILD_TYPE} ${OPTS} -DDD4hep_DIR=${DD4hep_DIR} ${CHECKOUT}/examples;"; make_build; # cd ../..; done; done; done; done; } parse_command_line_args $*; if [ "$ARG_ERROR" != "" ]; then echo "Unknown option: ERROR CONDITION"; exit 0; elif [ "$ROOT_VERSION" == "" ] || [ "$PLATFORMS" == "" ]; then echo "ERROR CONDITION ROOT_VERSION=${ROOT_VERSION} PLATFORMS=${PLATFORMS}"; exit 0; fi; export INSTALL_G4=${SW}/g4_${GEANT_VERSION}_dbg/lib/Geant4-10.1.2; export ROOTSYS=${SW}/root_v${ROOT_VERSION}_dbg; . ${ROOTSYS}/bin/thisroot.sh; # # build_all; # # #