Newer
Older
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.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;
#
# 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
}
LINE="===================================================================================================";
BARS="===== ";
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};
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};
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 "${LINE}";
echo "${BARS}";
echo "=======>> Successfully build configuration `pwd` ";
echo "${BARS}";
echo "${LINE}";
Markus Frank
committed
DEF_MODES="ON OFF";
G4_MODES="${DEF_MODES}";
XERCES_MODES="${DEF_MODES}";
LCIO_MODES="${DEF_MODES}";
Markus Frank
committed
#G4_MODES="ON";
Markus Frank
committed
#XERCES_MODES="OFF";
Markus Frank
committed
#LCIO_MODES="ON";
BUILD_TYPE=;
BUILD_TYPE="-DCMAKE_BUILD_TYPE=Debug";
Markus Frank
committed
for DOGEANT4 in ${G4_MODES}; do
for DOXERCESC in ${XERCES_MODES}; do
Markus Frank
committed
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;
#
#