package MEMPHYS
version v2r0

branches run

#//////////////////////////////////////////////////
#/// Uses needed to build this package ////////////
#//////////////////////////////////////////////////

use G4Lab v7r*


#//////////////////////////////////////////////////
#/// Over Geant4 kernel and AIDA interfaces only //
#//////////////////////////////////////////////////

build_strategy no_prototypes
include_path none

include_dirs $(MEMPHYSROOT)

# Over Geant4 and AIDA only :
library MEMPHYSCore ${G4Lab_libopts} -s=../source *.cxx

#JEC 17/11/05 add the G4readout_incs to manage G4DigiManager
macro MEMPHYSCore_cppflags "${G4Lab_Geant4_incs} ${G4readout_incs} ${G4particles_incs} ${G4processes_incs}"
macro MEMPHYSCore_shlibflags "${G4Lab_Geant4_linkopts} ${LibCore_linkopts} ${dld_linkopts} ${cxxstd_linkopts}"
macro MEMPHYSCore_linkopts "-L${MEMPHYSROOT}/$(Platform_bin) -lMEMPHYSCore" WIN32 "${MEMPHYSROOT}\$(Platform_bin)\MEMPHYSCore.lib"

#//////////////////////////////////////////////////
#/// DLD callbacks ////////////////////////////////
#//////////////////////////////////////////////////

library MEMPHYS -import=OpenInventor -s=../source/Callbacks Callbacks.cxx InventorCallbacks.cxx
macro MEMPHYS_cppflags "${G4Lab_Geant4_incs}"
macro MEMPHYS_shlibflags "${LibCore_linkopts} ${HEPVisPlotter_linkopts} ${HEPVisDetector_linkopts} ${HEPVisGeometry_linkopts} ${HEPVisUtils_linkopts} ${freetype_linkopts} ${jpeg_linkopts} ${dvi2bitmap_linkopts} ${OpenInventor_linkopts} ${OpenGL_linkopts} ${Xext_linkopts} ${X11_linkopts} ${dld_linkopts} ${cxxstd_linkopts}"

#//////////////////////////////////////////////////
#/// Application "a la Geant4 examples" ///////////
#//////////////////////////////////////////////////

# Over Geant4 and AIDA only :
application MEMPHYS_batch -import=expat ../applications/MEMPHYS_batch.cxx use_linkopts='"${MEMPHYSCore_linkopts} ${G4physics_lists_hadronic_linkopts} ${G4Lab_Geant4_linkopts} ${LabAnalysisFactory_linkopts} ${LibCore_linkopts} ${math_linkopts} ${dld_linkopts}"'
macro MEMPHYS_batch_cppflags "${MEMPHYSCore_cppflags} ${G4physics_lists_hadronic_incs}"

# Over G4Lab :
application MEMPHYS_session -import=expat ../applications/MEMPHYS_session.cxx use_linkopts='"${MEMPHYSCore_linkopts} ${G4physics_lists_hadronic_linkopts}  ${G4LabUIOnX_linkopts} ${G4LabCore_linkopts} ${G4Lab_Geant4_linkopts} ${G4LabHDUMMY_linkopts} ${HEPVisPlotter_linkopts} ${HEPVisDetector_linkopts} ${HEPVisGeometry_linkopts} ${HEPVisUtils_linkopts} ${freetype_linkopts} ${jpeg_linkopts} ${dvi2bitmap_linkopts} ${OpenInventor_linkopts} ${OnXCore_linkopts} ${LibXML_linkopts} ${expat_linkopts} ${LibZip_linkopts} ${zlib_linkopts} ${LibCore_linkopts} ${dld_linkopts} ${cxxstd_linkopts} ${Windows_linkopts} ${OpenGL_linkopts} ${Xext_linkopts} ${X11_linkopts} "' 
macro MEMPHYS_session_cppflags "${G4Lab_Geant4_incs} ${MEMPHYS_batch_cppflags}"


#JEC 18/11/05 not yet implemented: what's that Guy?
# Over AIDA / Lab :
#macro aida_config_libs "`aida-config --libs`" WIN32 "${LabAnalysisFactory_linkopts} ${LibCore_linkopts} ${math_linkopts} ${dld_linkopts}"
#application MEMPHYS_analysis ../applications/MEMPHYS_analysis.cxx use_linkopts='"$(aida_config_libs)"'


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

private
macro build_library_links "true" WIN32 ""
macro remove_library_links "true" WIN32 ""

# 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"

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

# SunOS : For std::map, std::list templates :
macro ar "$(ar)"  SunOS "CC -xar -o"
public

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

use Lab v11r*

path_remove LD_LIBRARY_PATH "${MEMPHYSROOT}/$(Platform_bin)" WIN32 "" Darwin ""
path_append LD_LIBRARY_PATH "${MEMPHYSROOT}/$(Platform_bin)" WIN32 "" Darwin ""

path_remove DYLD_LIBRARY_PATH "" Darwin "${MEMPHYSROOT}/$(Platform_bin)" WIN32 ""
path_append DYLD_LIBRARY_PATH "" Darwin "${MEMPHYSROOT}/$(Platform_bin)" WIN32 ""

path_remove PATH "" WIN32 "${MEMPHYSROOT}\$(Platform_bin)"
path_append PATH "" WIN32 "${MEMPHYSROOT}\$(Platform_bin)"


