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
# with all .h having been copied from the source/snova
# directory with something like :
#    find ../source/snova -name "*.h" -exec cp {} ../snova/. {};
#
#//////////////////////////////////////////////////

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

build_strategy no_prototypes
include_path none

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

#//////////////////////////////////////////////////
# No dependency over other libs.

#library geomutils -import=bhep -import=CLHEP  -import=HDF5 ../source/GeomUtils/src/*.cc
library geomutils ../source/GeomUtils/src/*.cc
macro geomutils_cppflags ""
macro geomutils_shlibflags "${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro geomutils_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lgeomutils"

#-import=bhep -import=CLHEP  -import=HDF5 
library sngeom ../source/SNgeom2/src/*.cc
macro sngeom_cppflags ""
macro sngeom_shlibflags "${geomutils_linkopts} ${bhep_linkopts} ${dld_linkopts} ${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro sngeom_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lsngeom"

#-import=bhep -import=CLHEP  -import=HDF5
library snova \
  -s=../source \
   snova/base/*.cc \
   snova/geom/*.cc \
   snova/physics/*.cc \
   snova/vertex/*.cc
macro snova_cppflags "-I$(SNOVAROOT) -I$(Geant4_include)"
macro snova_shlibflags "${dld_linkopts} ${CLHEP_linkopts} ${HDF5_linkopts} ${zlib_linkopts}"
macro snova_linkopts "-L${SNOVAROOT}/$(CMTCONFIG) -lsnova"

application prog_snova ../source/snova/prog_snova.cc use_linkopts='"${snova_linkopts} ${Geant4_interfaces_linkopts} ${Geant4_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

