#!/bin/sh -f platform=`uname` uname_s=`uname -s` uname_m=`uname -m` platform_nemo="${uname_s}-${uname_m}" # Customize the below xxx_home to reach used packages : osc_home="/Users/barrand/OpenScientist/v16r0" bhep_home="/Users/barrand/dev/exp/nemo/bhep/v1r4p1/${platform}" HDF5_home=/usr/local/HDF5/1.6.5 CLHEP_home=/usr/local/CLHEP/2.0.3.1 G4_home=/geant4/geant4.8.2 GeomUtils_home="/Users/barrand/dev/exp/nemo/SNgeom/v0r1p0/build_area/GeomUtils" SNgeom2_home="/Users/barrand/dev/exp/nemo/SNgeom/v0r1p0/build_area/SNgeom2" snova_home="/Users/barrand/dev/exp/nemo/SNgeom/v0r1p0/build_area/snova" . ${osc_home}/aida-setup.sh if test "`onx-config --version`" = "" ; then echo "onx-config not available." exit fi if test "`aida-config --version`" = "" ; then echo "aida-config not available." exit fi if test "`g4lab-config --version`" = "" ; then echo "g4lab-config not available." exit fi #args=$* obuild_set_x=no do_snova=yes do_snovis=yes do_prog_snova=yes do_snovis_session=yes while test $# -ge 1 ; do case $1 in -h) echo "Usage :" echo " UNIX> ./build [Options] [Target]" echo "Options :" echo " -x : execute with set -x." echo "Target :" echo " If no option is specify and a ending" echo " string is given ; this string is given" echo " to a find command of the form :" echo ' find ./sh -name "*target*" -exec {} \;' echo " in order to execute selected scripts under" echo " the sh directory." echo "Examples :" echo " UNIX> sh/build app" echo " UNIX> sh/build -v _lib" echo " UNIX> sh/build -v -g dll_" echo "" exit ;; -x) obuild_set_x=yes;obuild_args="${obuild_args} $1" ;; -*) echo "unknwon option : $1" ; exit ;; *) if [ $# = 1 ] ; then if [ $1 = all ] ; then do_snova=yes do_snovis=yes do_prog_snova=yes do_snovis_session=yes elif [ $1 = snova ] ; then do_snova=yes do_snovis=no do_prog_snova=no do_snovis_session=no elif [ $1 = snovis ] ; then do_snovis=yes do_snova=no do_prog_snova=no do_snovis_session=no elif [ $1 = prog_snova ] ; then do_prog_snova=yes do_snova=no do_snovis=no do_snovis_session=no elif [ $1 = sess ] ; then do_snovis_session=yes do_snova=no do_snovis=no do_prog_snova=no fi else echo "unknwon option : $1" exit fi ;; esac shift done if [ ${obuild_set_x} = yes ] ; then set -x fi compiler=c++ bin="../${platform}" /bin/mkdir -p ${bin} # snova library : if [ ${do_snova} = yes ] ; then snova_source="${snova_home}" cppflags="" #cppflags="${cppflags} -g -Wall" cppflags="${cppflags} -I${HDF5_home}/include -I${CLHEP_home}/include -I${bhep_home}/include -I${G4_home}/include" cppflags="${cppflags} -I${GeomUtils_home}/include" cppflags="${cppflags} -I${SNgeom2_home}/include" cppflags="${cppflags} -I${snova_home}" eval ${compiler} -c ${cppflags} -o ${bin}/snova_const.o ${snova_source}/base/snova_const.cc eval ${compiler} -c ${cppflags} -o ${bin}/event.o ${snova_source}/base/event.cc eval ${compiler} -c ${cppflags} -o ${bin}/generator.o ${snova_source}/base/generator.cc eval ${compiler} -c ${cppflags} -o ${bin}/run.o ${snova_source}/base/run.cc eval ${compiler} -c ${cppflags} -o ${bin}/stepping.o ${snova_source}/base/stepping.cc eval ${compiler} -c ${cppflags} -o ${bin}/stepping_verbose.o ${snova_source}/base/stepping_verbose.cc eval ${compiler} -c ${cppflags} -o ${bin}/tracking.o ${snova_source}/base/tracking.cc eval ${compiler} -c ${cppflags} -o ${bin}/stacking.o ${snova_source}/base/stacking.cc eval ${compiler} -c ${cppflags} -o ${bin}/gen_vtx.o ${snova_source}/vertex/gen_vtx.cc eval ${compiler} -c ${cppflags} -o ${bin}/visibilities2.o ${snova_source}/geom/visibilities2.cc eval ${compiler} -c ${cppflags} -o ${bin}/nemo_field2.o ${snova_source}/geom/nemo_field2.cc eval ${compiler} -c ${cppflags} -o ${bin}/materials.o ${snova_source}/geom/materials.cc eval ${compiler} -c ${cppflags} -o ${bin}/geometry2.o ${snova_source}/geom/geometry2.cc eval ${compiler} -c ${cppflags} -o ${bin}/physics.o ${snova_source}/physics/physics.cc objs="${bin}/snova_const.o ${bin}/event.o ${bin}/generator.o ${bin}/run.o ${bin}/stacking.o ${bin}/stepping.o ${bin}/stepping_verbose.o ${bin}/tracking.o ${bin}/geometry2.o ${bin}/materials.o ${bin}/nemo_field2.o ${bin}/visibilities2.o ${bin}/physics.o ${bin}/gen_vtx.o" #/bin/rm -f ${bin}/libsnova.a #ar cr ${bin}/libsnova.a ${objs} if test `uname` = "Darwin" ; then /bin/rm -f ${bin}/libsnova.dylib eval c++ -dynamiclib -twolevel_namespace -undefined dynamic_lookup -dynamic -single_module -o ${bin}/libsnova.dylib ${objs} fi if test `uname` = "Linux" ; then /bin/rm -f ${bin}/libsnova.so eval g++ -shared -o ${bin}/libsnova.dylib ${objs} fi fi # snovis dll : if [ ${do_snovis} = yes ] ; then cppflags="-I.." cppflags="${cppflags} `g4lab-config --cppflags`" cppflags="${cppflags} `onx-config --iv_cppflags`" cppflags="${cppflags} `aida-config --cppflags`" eval ${compiler} -c ${cppflags} -o ${bin}/Callbacks.o ../source/Callbacks.cxx eval ${compiler} -c ${cppflags} -o ${bin}/InventorCallbacks.o ../source/InventorCallbacks.cxx eval ${compiler} -c ${cppflags} -o ${bin}/Layouts.o ../source/Layouts.cxx objs="${bin}/Callbacks.o ${bin}/InventorCallbacks.o ${bin}/Layouts.o" libs="" libs="${libs} `g4lab-config --libs`" libs="${libs} `onx-config --iv_libs`" if test `uname` = "Darwin" ; then /bin/rm -f ${bin}/snovis.bundle eval c++ -bundle -twolevel_namespace -Wl,-headerpad_max_install_names -Wl,-headerpad,800 -o ${bin}/snovis.bundle ${objs} ${libs} fi if test `uname` = "Linux" ; then /bin/rm -f ${bin}/libsnovis.so eval g++ -shared -o ${bin}/libsnovis.so ${objs} ${libs} fi fi # prog_snova application : if [ ${do_prog_snova} = yes ] ; then cppflags="" #cppflags="${cppflags} -g" cppflags="${cppflags} -I${snova_home}" cppflags="${cppflags} -I${SNgeom2_home}/include" cppflags="${cppflags} -I${GeomUtils_home}/include" cppflags="${cppflags} -I${bhep_home}/include" cppflags="${cppflags} -I${G4_home}/include" cppflags="${cppflags} -I${HDF5_home}/include" cppflags="${cppflags} -I${CLHEP_home}/include" libs="-L${bin} -lsnova" libs="${libs} -L${SNgeom2_home}/${platform_nemo}/lib -lsngeom" libs="${libs} -L${GeomUtils_home}/${platform_nemo}/lib -lgeomutils" libs="${libs} -L${bhep_home}/lib -lbhep" libs="${libs} -L${G4_home}/Darwin/lib/Darwin-g++ -lG4interfaces -lG4physicslists -lG4readout -lG4run -lG4event -lG4tracking -lG4processes -lG4digits_hits -lG4track -lG4particles -lG4geometry -lG4graphics_reps -lG4materials -lG4intercoms -lG4global" libs="${libs} -L${CLHEP_home}/lib -lCLHEP" libs="${libs} -L${HDF5_home}/lib -lhdf5" libs="${libs} -lz" #echo ${libs} opts= #opts="${opts} -g" #if test `uname` = "Darwin" ; then #opts="${opts} -bind_at_load -multiply_defined suppress" #fi /bin/rm -f ${bin}prog_snova eval ${compiler} -c ${cppflags} -o ${bin}/prog_snova.o ../applications/prog_snova.cc eval ${compiler} ${opts} -o ${bin}/prog_snova ${bin}/prog_snova.o ${libs} fi # snovis_session application : if [ ${do_snovis_session} = yes ] ; then cppflags="" #cppflags="${cppflags} -g" cppflags="${cppflags} -I${snova_home}" cppflags="${cppflags} -I${SNgeom2_home}/include" cppflags="${cppflags} -I${GeomUtils_home}/include" cppflags="${cppflags} -I${bhep_home}/include" cppflags="${cppflags} -I${HDF5_home}/include" cppflags="${cppflags} `g4lab-config --cppflags`" cppflags="${cppflags} `aida-config --cppflags`" libs="-L${bin} -lsnova" libs="${libs} -L${SNgeom2_home}/${platform_nemo}/lib -lsngeom" libs="${libs} -L${GeomUtils_home}/${platform_nemo}/lib -lgeomutils" libs="${libs} -L${bhep_home}/lib -lbhep" libs="${libs} `g4lab-config --libs`" libs="${libs} `onx-config --iv_libs`" #libs="${libs} -L${CLHEP_home}/lib -lCLHEP" libs="${libs} -L${HDF5_home}/lib -lhdf5" libs="${libs} -lz" #echo ${libs} opts= #opts="${opts} -g" if test `uname` = "Darwin" ; then opts="${opts} -bind_at_load -multiply_defined suppress" fi eval ${compiler} -c ${cppflags} -o ${bin}/snovis_session.o ../applications/snovis_session.cc /bin/rm -f ${bin}snovis_session eval ${compiler} ${opts} -o ${bin}/snovis_session ${bin}/snovis_session.o ${libs} fi find ${bin} -name '*.o' -exec /bin/rm {} \;