package snova
version v0r1p02

#//////////////////////////////////////////////////
#
#  This file assumes the following 
# directory structure :
#    snova/<version>/cmt
#    snova/<version>/source/GeomUtils/...
#    snova/<version>/source/SNgeom2/...
#    snova/<version>/source/snova/...
# and a :
#    snova/<version>/snova
# containing a copy of the .h from the source/snova
# directory. The creation of the
# snova include directory can be done with
# the cpincs.sh script.
#
#//////////////////////////////////////////////////

#//////////////////////////////////////////////////
use bhep v1r*
use Geant4 v2r* cmt
#//////////////////////////////////////////////////

build_strategy no_prototypes
include_path none

include_dirs $(SNOVAROOT)/source/GeomUtils/include $(SNOVAROOT)/source/SNgeom2/include $(SNOVAROOT)/source/SNvertex/include

#//////////////////////////////////////////////////

library geomutils ../source/GeomUtils/src/*.cc
macro geomutils_shlibflags "${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro geomutils_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lgeomutils"

library sngeom ../source/SNgeom2/src/*.cc
macro sngeom_shlibflags "${geomutils_linkopts} ${bhep_linkopts} ${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro sngeom_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lsngeom"

library snvertex ../source/SNvertex/src/*.cc
#macro sngeom_shlibflags "${geomutils_linkopts} ${bhep_linkopts} ${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro snvertex_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lsnvertex"

library snova -s=../source/snova \
# Do not have the below *.cc because of old_gen.cc, OpenGLXVisManager.cc
#   base/*.cc \  
   base/event.cc \
   base/generator.cc \
   base/run.cc \
   base/snova_const.cc \
   base/snova_mgr.cc \
   base/stacking.cc \
   base/stepping.cc \
   base/stepping_verbose.cc \
   base/tracking.cc \
#
   geom/*.cc \
   physics/*.cc \
   vertex/*.cc
macro snova_cppflags "-I.. -I$(Geant4_include)"
macro snova_shlibflags "${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro snova_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lsnova"

application prog_snova ../source/snova/prog_snova2.cxx use_linkopts='"${snova_linkopts} ${Geant4_interfaces_linkopts} ${Geant4_linkopts} ${snvertex_linkopts} ${sngeom_linkopts} ${geomutils_linkopts} ${bhep_linkopts} ${CLHEP_linkopts}"'

#//////////////////////////////////////////////////
#/// compile, link flags //////////////////////////
#//////////////////////////////////////////////////
private
# WIN32 : /GR to enable RTTI and dynamic cast.
# WIN32 : /GX to enable exception handling (for STL).
macro_append cppflags  "" WIN32 " /GX /GR"

# DEBUG :
#macro_append cflags  " -g" WIN32 " /ZI /Od"
#macro_append cppflags  " -g" WIN32 " /ZI /Od"
#macro_append cpplinkflags  " -g" WIN32 " /DEBUG /VERBOSE:LIB"

# OPTIMIZE :
macro_append cflags  " -O" WIN32 " /O2"
macro_append cppflags  " -O" WIN32 " /O2"
macro_append cpplinkflags  " -O" WIN32 ""

macro build_library_links "true" WIN32 ""
macro remove_library_links "true" WIN32 ""
public

#//////////////////////////////////////////////////
#/// Run time /////////////////////////////////////
#//////////////////////////////////////////////////

apply_pattern setup_paths

