# $Id: architecture.gmk,v 1.36 1999/07/06 17:54:49 johna Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # # First implementation: July 7th 1995 # # Description # ----------- # to override variables defined in this script, use "gmake -e", this will # cause environment variables to take precedence. In this case watch for # inadvertant overrides! # # List of the supported architectures/compilers and related flavors for # the environment variable G4SYSTEM: # # AIX-xlC AIX 4.3, (xlC) C Set ++ for AIX (default) # # SUN-CC SunOS 5.6, CC 4.2 compiler # # HP-aCC HP-UX 10.20, aCC A.01.09 compiler # # SGI-CC SGI-IRIX 6.2, C++ 7.2 compiler # # DEC-cxx DEC-OSF/1 4.0, DEC C++ 6.1 # # Linux-g++ Linux (Red Hat 5.1), egcs 1.1 # # WIN32-VC NT and Microsoft Visual C++ 5.0 or Microsoft Visual C++ 6.0 # and using CYGWIN32 tools ( make, g++ as "makedepend", sh...) # ( Note: you will need to set your environment, see installation # guide.) # # WIN32-VC-NICE alias for the above, although NICE is not used anymore. # # WIN32-G++-NICE NiceNT and CYGWIN32 with g++ as base compiler # ex. NiceNT at CERN (but CYGWIN32 and RogueWave # for g++ installed locally, because not full # installation on NICE) # MAKEFLAGS= --no-print-directory # Specify G4USE_STL when using STL, even for using our "temporary" # STLinterface to RogueWave. # ifdef G4USE_STL CPPFLAGS += -DG4USE_STL endif # If not specified, the default platform for G4SYSTEM is IBM-AIX ... # ifndef G4SYSTEM G4SYSTEM := AIX-xlC endif # If not specified, the default path for G4 installation G4INSTALL is # set to $HOME/geant4 ... # ifndef G4INSTALL G4INSTALL := $(HOME)/geant4 endif # If not specified, the default path for G4 source G4BASE is # set to $G4INSTALL/source ... # ifndef G4BASE G4BASE := $(G4INSTALL)/source endif # If not specified, the default path for the user's workdir is the same # as G4INSTALL ... # ifndef G4WORKDIR G4WORKDIR := $(G4INSTALL) endif # If not specified, the default path for temporary files G4TMP is # set to $G4WORKDIR/tmp/$G4SYSTEM ... # ifndef G4TMP G4TMP := $(G4WORKDIR)/tmp endif G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4TMP) ] && mkdir -p $(G4TMP) ) # If not specified, the default path for G4 libraries G4LIB is # set to $G4INSTALL/lib/$G4SYSTEM ... # ifndef G4LIB G4LIB := $(G4INSTALL)/lib endif G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4LIB) ] && mkdir -p $(G4LIB) ) G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4LIB)/$(G4SYSTEM) ] && mkdir -p $(G4LIB)/$(G4SYSTEM) ) # If not specified, the default path for G4 binaries G4BIN is # set to $G4WORKDIR/bin/$G4SYSTEM ... # ifndef G4BIN G4BIN := $(G4WORKDIR)/bin endif G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4BIN) ] && mkdir -p $(G4BIN) ) # If not specified, the default path for G4 schema G4SCHEMA_DIR is # set to $G4WORKDIR/schema ... # ifndef G4SCHEMA_DIR G4SCHEMA_DIR := $(G4WORKDIR)/schema G4SCHEMA_FDID := 207 endif ifdef G4ODBMS G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4SCHEMA_DIR) ] && mkdir -p $(G4SCHEMA_DIR) ) endif # If not specified, the default path for G4 example federated database is # set to $HOME/G4EXAMPLE ... # ifndef G4EXAMPLE_BOOT_DIR G4EXAMPLE_BOOT_DIR := $(HOME)/G4EXAMPLE G4EXAMPLE_BOOT := $(G4EXAMPLE_BOOT_DIR)/G4EXAMPLE endif ifdef G4ODBMS G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4EXAMPLE_BOOT_DIR) ] && mkdir -p $(G4EXAMPLE_BOOT_DIR) ) endif # If G4DEBUG not specified, the default compilation is optimised ... # ifndef G4DEBUG G4OPTIMISE := 1 endif # # CLHEP path, etc. # ifndef CLHEP_BASE_DIR CLHEP_BASE_DIR := /afs/cern.ch/sw/geant4/dev/CLHEP/$(G4SYSTEM)/pro endif CLHEP_INCLUDE_DIR := $(CLHEP_BASE_DIR)/include CLHEP_LIB_DIR := $(CLHEP_BASE_DIR)/lib ifndef CLHEP_LIB CLHEP_LIB := CLHEP endif ifeq ($(G4SYSTEM),WIN32-VC-NICE) G4SYSTEM:=WIN32-VC endif ifeq ($(G4SYSTEM),WIN32-VC) # CLHEP_BASE_DIR must be defined in the environment CLHEP_INCLUDE_DIR := $(CLHEP_BASE_DIR)/include CLHEP_LIB_DIR := $(CLHEP_BASE_DIR)/lib CLHEP_LIB := CLHEP.lib endif # # Rogue Wave Tools.h++ path & ObjectSpace STL # ifdef G4USE_OSPACE #Object Space STL implementation RWINC := $(G4BASE)/global/STLInterface OSPACEDIR := /afs/cern.ch/sw/geant4/dev/ObjectSpace/$(G4SYSTEM)/pro/ToolKit OSPACEINC := -I$(OSPACEDIR)/ospace/std -I$(OSPACEDIR)/ospace/stl OSPACELIBS := -L$(OSPACEDIR)/lib -lospace CPPFLAGS += -DG4USE_STL ifeq ($(G4SYSTEM),WIN32-VC) OSPACEDIR := $(OBJECT_SPACE_BASE) OSPACEINC := -I$(OSPACEDIR)/ospace/std -I$(OSPACEDIR)/ospace/stl -I$(OSPACEDIR) OSPACELIBS := '-libpath:c:\dev\ospace\lib std-2.1-vc5.0-mt.lib' CPPFLAGS += -DG4USE_STL -DG4USE_OLDSTL CPPFLAGS += -DOS_WIN_NT_4_0 -DOS_MULTI_THREADED -D_WIN32_WINNT $(OSPACEINC) endif else ifdef G4USE_STL # Native STL implemetation RWINC := $(G4BASE)/global/STLInterface else ifdef G4USE_STLPORT # STLport STL implementation (free) ( derived from SGI implementaion) ifeq ($(G4SYSTEM),WIN32-VC) RWINC := $(G4BASE)/global/STLInterface STLPORTDIR := $(STLPORT_BASE) OSPACEINC := -I$(STLPORTDIR)/stl CPPFLAGS += -DG4USE_STL -DG4USE_OLDSTL CPPFLAGS += -D_NOTHREADS -D__STL_NO_NEW_IOSTREAMS -D__STL_NO_NAMESPACES -D__STL_NO_NEW_STYLE_HEADERS endif endif #STLport endif #STL endif #OPSPACE # default to RW if RWINC is not set... ifndef RWINC ifndef RWBASE RWBASE := /afs/cern.ch/sw/geant4/dev/rogue/$(G4SYSTEM) endif RWINC := $(RWBASE) RWLIBDIR := $(RWBASE)/lib RWLIB := rwtool ifeq ($(G4SYSTEM),HP-aCC) RWBASE := /opt/aCC RWINC := $(RWBASE)/include RWLIBDIR := /usr/lib endif ifeq ($(G4SYSTEM),WIN32-VC) # RWBASE must be defined in the environment RWINC := $(RWBASE) RWLIBDIR := $(RWBASE)"\lib" RWLIB := mtlmt.lib endif ifeq ($(G4SYSTEM),WIN32-G++-NICE) # # locally installed RogueWave for g++ (mount mapping) # RWBASE := /rogue RWINC := $(RWBASE) RWLIBDIR := $(RWBASE)/lib RWLIB := rwtool endif # # Make dependencies files by g++ then need right RW include # ifdef RWINCGPP RWINCGPP := -I$(RWINCGPP) endif endif # ifndef RWINC # # Paths for G4 data # ifndef G4DATA G4DATA := $(G4INSTALL)/data endif # Photon evaporation data ifndef G4LEVELGAMMADATA G4LEVELGAMMADATA := $(G4DATA)/PhotonEvaporation endif # # Toggle variables (positional qualifiers) between WIN32-VC and UNIX... # ifeq ($(G4SYSTEM),WIN32-VC) OUT_OBJ := -TP '-Fo' FOR_OBJ := '-Fo' OUT_LIB := '-out:' OUT_EXE := '-Fe' LIB_PATH := '-libpath:' CERNLIB_PATH := "z:\p32\cern\new\df\lib" PATH_DEL := \\ # # pattern for next substitution # LIB_PATT := lib(LibName).a FLIB_PATT := (LibName).lib else OUT_OBJ := -o FOR_OBJ := -o OUT_LIB := OUT_EXE := -o LIB_PATH := -L CERNLIB_PATH := /cern/pro/lib PATH_DEL := / # # pattern for next substitution # LIB_PATT := -l(LibName) FLIB_PATT := $(LIB_PATT) endif # # Variables for implicit rules, etc., as suggested in GNU Make manual... # CPPFLAGS += -Iinclude -I$(RWINC) CPPFLAGS += -I$(CLHEP_INCLUDE_DIR) # # Positional qualifiers in action... # ifeq ($(G4SYSTEM),WIN32-VC) LDFLAGS := -link $(LIB_PATH)$(CLHEP_LIB_DIR) ifdef RWLIBDIR LDFLAGS += $(LIB_PATH)$(RWLIBDIR) endif LOADLIBS := $(CLHEP_LIB) ifdef RWLIB LOADLIBS += $(RWLIB) endif else ## LDFLAGS := -L$(CLHEP_LIB_DIR) LDFLAGS := ifdef RWLIBDIR LDFLAGS += -L$(RWLIBDIR) endif ## LOADLIBS := -l$(CLHEP_LIB) LOADLIBS := $(CLHEP_LIB_DIR)/lib$(CLHEP_LIB).a ifdef RWLIB LOADLIBS += -l$(RWLIB) endif LOADLIBS += -lm endif # # Graphic variables... # ifndef VISLIBS VISLIBS := endif # ------------------ X11 --------------------- X11FLAGS := X11LIBS := -lXmu -lXt -lXext -lX11 # ----------------- Motif -------------------- XMFLAGS := XMLIBS := -lXm # ---------------- Athena -------------------- XAWFLAGS := XAWLIBS := -lXaw # ---------------- OpenGL -------------------- # The user can define his own values of OGLFLAGS and OGLLIBS. # OGLFLAGS gives the directory containing include files. # E.g.: OGLFLAGS := -I$(OGLHOME)/include # OGLLIBS gives the libraries. # E.g.: OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL # Or : OGLLIBS := -L$(OGLHOME)/lib -lMesaGLU -lMesaGL # OGLHOME is often /usr or /usr/local. Or it can point to a special # installation. # If the user does not set his/her own values, system-dependent values # are set below. Most system-dependent code assumes OGLHOME is set. # ------------- OpenInventor ----------------- ifndef HEPVISINC HEPVISINC := $(HEPVISDIR)/include endif ifndef HEPVISLIB HEPVISLIB := $(HEPVISDIR)/source endif ifndef OIVFLAGS OIVFLAGS := -I${HEPVISINC} endif ifndef OIVLIBS OIVLIBS := -L${HEPVISLIB} -lHEPVis -lInventorXt -lInventor -lGLU -lGL endif # ----------------- OPACS -------------------- ifndef G4_OPACS_WIDGET_SET G4_OPACS_WIDGET_SET := Xm endif # # For cfront compilers the repository location is set to # $G4TMP/$G4SYSTEM/g4.ptrepository. # G4TEMPLATE_REPOSITORY := $(G4SYSTEM)/g4.ptrepository G4TEMPEXEC_REPOSITORY := $(G4TEMPLATE_REPOSITORY)/exec G4TREP := $(G4TMP)/$(G4TEMPLATE_REPOSITORY) # Default archive call. Changed for: SUN-CC. AR := ar r # Default echo used with makedepend. Changed for SUN-CC, Linux-g++. ECHO:= echo # Default grep used with source/GNUmakfile. Changed for SUN-CC. GREP := grep # # Architecture dependent variables... # # -------- AIX ---------- # ifeq ($(G4SYSTEM),AIX-xlC) CXX := xlC ifdef G4OPTIMISE CXXFLAGS := -O3 -qtwolink -+ else CXXFLAGS := -g -qdbxextra -qcheck=all -qfullpath -qtwolink -+ FCFLAGS := -g CCFLAGS := -g endif FC := xlf FCFLAGS += -qextname FCLIBS := -lxlf90 -lxlf X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 X11LIBS := -L/usr/lib -lXmu -lX11 -lXext XMFLAGS := -I/usr/include/Motif1.2 XMLIBS := -L/usr/lib -lXm -lXt -lX11 XAWFLAGS := -I/usr/include/X11 XAWLIBS := -L/usr/lib -lXaw -lXmu -lXt -lX11 -lXext ifndef OGLFLAGS OGLFLAGS := -I$(OGLHOME)/include endif ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif ifdef G4ODBMS ifeq ($(OBJY_VERS),4.0.2) OBJY_LDLIB := oo_shar.4.02 endif endif CPPFLAGS += -DG4NOT_ISO_DELETES ifdef G4USE_STL CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) endif ifdef G4USE_OSPACE CPPFLAGS += -DOS_AIX_4 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) $(OSPACEINC) -I$(OSPACEDIR) endif endif # -------- SUN --------- # ifeq ($(G4SYSTEM),SUN-CC) CXX := CC ifdef G4OPTIMISE CXXFLAGS := -O else CXXFLAGS := -g FCFLAGS := -g CCFLAGS := -g endif # CXXFLAGS += -fnonstd CFRONT_G4TEMPLATE_REPOSITORY := true FC := f77 SHEXT := so AR := $(CXX) -xar -ptr$(G4TREP) -o ECHO := /bin/echo GREP := /usr/xpg4/bin/grep FCLIBS := -lM77 -lF77 -lsunmath X11FLAGS := -I/usr/openwin/include/X11/extensions -I/usr/openwin/include/X11 -I/usr/openwin/include X11LIBS := -L/usr/openwin/lib -L/usr/dt/lib -L/usr/ucblib -R/usr/openwin/lib -lXmu -lX11 -lXext XMLIBS := -L/usr/openwin/lib -L/usr/dt/lib -L/usr/ucblib -R/usr/openwin/lib -lXt -lXm -lX11 XAWFLAGS := -I/usr/openwin/include/X11 XAWLIBS := -L/usr/openwin/lib -L/usr/dt/lib -L/usr/ucblib -R/usr/openwin/lib -lXaw -lXmu -lXt -lX11 -lXext ifndef OGLFLAGS OGLFLAGS := -I$(OGLHOME)/include endif ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif ifdef G4ODBMS ifeq ($(OBJY_VERS),4.0.2) OBJY_LDLIB := oo endif endif CPPFLAGS += -DSOCKET_IRIX_SOLARIS LOADLIBS += -L/usr/lib -lsocket -lnsl CPPFLAGS += -DG4NOT_ISO_DELETES ifdef G4USE_STL CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) endif ifdef G4USE_OSPACE CPPFLAGS += -DOS_SOLARIS_2_5 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) $(OSPACEINC) -I$(OSPACEDIR) endif endif # -------- HP --------- # ifeq ($(G4SYSTEM),HP-aCC) CXX := aCC ifdef G4OPTIMISE CXXFLAGS := +O2 +Onolimit else CXXFLAGS := -g FCFLAGS := -g CCFLAGS := -g endif CXXFLAGS += +DAportable CPPFLAGS += -I/usr ifdef G4MAKESHLIB CXXFLAGS += +Z endif G4_HAVE_BOOL := yes FC := f77 FCFLAGS += +E6 +ppu CCFLAGS += -Ae +DAportable X11FLAGS := -I/usr/include/X11/extensions -I/usr/contrib/X11R6/include -I/usr/contrib/X11R6/include/X11 X11LIBS := -L/usr/contrib/X11R6/lib -lXmu -L/usr/lib -lXt -lXext -lX11 XMFLAGS := -I/usr/include/Motif1.2 XMLIBS := -L/usr/lib/Motif1.2_R6 -lXm XAWFLAGS := -I/usr/contrib/X11R6/include -I/usr/contrib/X11R6/include/X11 XAWLIBS := -L/usr/contrib/X11R6/lib -lXaw ifndef OGLFLAGS OGLFLAGS := -I$(OGLHOME)/include endif ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL OGLLIBS += -L/opt/graphics/common/lib -lXwindow -lhpgfx -lXhp11 -ldld endif ifdef G4ODBMS ifeq ($(OBJY_VERS),4.0.2) OBJY_LDLIB := oo endif endif CPPFLAGS += -DG4NOT_ISO_DELETES ifdef G4USE_STL CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) -DG4USE_EXPLICIT_TYPES_IN_TEMPLATES endif ifdef G4USE_OSPACE CPPFLAGS += -DOS_HPUX_10_20 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += -DOS_NO_TYPEDEF_5 -D__HPACC_NOEH -DG4USE_EXPLICIT_TYPES_IN_TEMPLATES CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) $(OSPACEINC) -I$(OSPACEDIR) endif endif # -------- SGI --------- # ifeq ($(G4SYSTEM),SGI-CC) CXX := CC ifdef G4OPTIMISE CXXFLAGS := -O -Olimit 5000 else CXXFLAGS := -g FCFLAGS := -g CCFLAGS := -g endif CXXFLAGS += -ptused FC := f77 FCLIBS := -lftn SHEXT := so X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 X11LIBS := -L/usr/lib -lXmu -lXt -lXext -lX11 XMLIBS := -L/usr/lib -lXm ifndef OGLFLAGS OGLFLAGS := endif ifndef OGLLIBS OGLLIBS := -L/usr/lib -lGLU -lGL endif CPPFLAGS += -DSOCKET_IRIX_SOLARIS ifdef G4USE_OSPACE CPPFLAGS += -DOS_IRIX_6_2 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += $(OSPACEINC) -I$(OSPACEDIR) endif endif # -------- DEC --------- # ifeq ($(G4SYSTEM),DEC-cxx) CXX := cxx ifdef G4OPTIMISE CXXFLAGS := -O else CXXFLAGS := -gall FCFLAGS := -g CCFLAGS := -g endif CFRONT_G4TEMPLATE_REPOSITORY := true G4_HAVE_BOOL := yes LDFLAGS += -taso CXXFLAGS += -ieee -timplicit_local FC := f77 FCLIBS := -lUfor -lfor -lFutil -lots X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 ifndef OGLFLAGS OGLFLAGS := -I$(OGLHOME)/include # OGLFLAGS := -I/usr/include -I/usr/local/include endif ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL # OGLLIBS := -lMesaGLU -lMesaGL endif ifdef G4USE_STL CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) CXXFLAGS += -nostdnew endif ifdef G4USE_OSPACE CPPFLAGS += -DOS_OSF1_4 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_NO_ALLOCATORS -D__NO_EDG_EXCEPTION_CLASSES CPPFLAGS += -I$(RWINC)/wrappers/$(G4SYSTEM) $(OSPACEINC) -I$(OSPACEDIR) CXXFLAGS += -nostdnew endif endif # ------ GNU/LINUX ------ # ifeq ($(G4SYSTEM),Linux-g++) CXX := g++ GNU_GCC = 1 CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC ifdef G4OPTIMISE CXXFLAGS += -O else CXXFLAGS += -g FCFLAGS := -g CCFLAGS := -g endif FC := g77 FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore FCLIBS := -lf2c ECHO := /bin/echo X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lSM -lICE XMFLAGS := -I/usr/X11R6/include XMLIBS := -lXm -lXpm ifndef OGLFLAGS OGLFLAGS := -I$(OGLHOME)/include endif ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif OIVFLAGS += -I$(OIHOME)/include ifdef G4USE_OSPACE CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_NO_ALLOCATORS CPPFLAGS += -I$(OSPACEDIR)/ospace/std -I$(OSPACEDIR) endif endif # ------ WIN32/VC ------ # ifeq ($(G4SYSTEM),WIN32-VC) CXX := CL G4_HAVE_BOOL := yes G4_NO_CBRT := yes ifdef G4OPTIMISE CXXFLAGS += -Ox else CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name) endif CXXFLAGS += -MD -GX -Zm200 -nologo -DWIN32 -D_CONSOLE CXXFLAGS += -D_WIN32 -DOS -DG4NOT_ISO_DELETES CPPFLAGS += -DWIN32 -DRW_NO_XMSG # # Should set $INCLUDE environment, if not set as below # ifdef G4USE_OSPACE CXXFLAGS += $(OSPACEINC) else ifdef G4USE_STLPORT CXXFLAGS += $(OSPACEINC) endif #stlport endif #ospace LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll # # Should set $LIB environment to include VC++ Studio lib directories, e.g. # # $(LIB_PATH)"c:\ProgramFiles\DevStudio\vc\lib" \ # $(LIB_PATH)'\\srv1_info\v2\vc50pro1\DEVSTUDIO\VC\LIB' \ # $(LIB_PATH)'\\srv1_info\v2\DecFtn5\x86\df\lib' AR := LIB ECHO := echo -e FC := f77 # FCLIBS := -lf2c ifndef OGLFLAGS OGLFLAGS := endif ifndef OGLLIBS OGLLIBS := -lGLU -lGL endif endif # ------ WIN32/G++/NICE ------ # ifeq ($(G4SYSTEM),WIN32-G++-NICE) CXX := g++ CXXFLAGS := -fno-for-scope G4_HAVE_BOOL := yes ifdef G4OPTIMISE CXXFLAGS += -O else CXXFLAGS += -g endif CXXFLAGS += -DCYGWIN32 ECHO := echo -e FC := g77 FCLIBS := -lf2c ifndef OGLFLAGS OGLFLAGS := endif ifndef OGLLIBS OGLLIBS := -lGLU -lGL endif endif # If compiler recognises implicit C++ type bool... ifdef G4_HAVE_BOOL CPPFLAGS += -DG4_HAVE_BOOL endif # If there is no cbrt() function... ifdef G4_NO_CBRT CPPFLAGS += -DG4_NO_CBRT endif # Standard Template Library (STL) not installed ifndef G4USE_STL ifndef G4USE_OSPACE CPPFLAGS += -DRW_NO_STL endif endif # Verbosity code can be left out (for better performance) # by defining G4_NO_VERBOSE. ifndef G4_NO_VERBOSE CPPFLAGS += -DG4VERBOSE endif # Trajectory related classes can be left out (for better performance) # by defining G4_NO_STORE_TRAJECTORY. ifndef G4_NO_STORE_TRAJECTORY CPPFLAGS += -DG4_STORE_TRAJECTORY endif # # Enable/disable G4cout/G4cerr # # Set G4STREAM for all platforms. G4STREAM = 1 # Set G4STREAM_STREAMBUF_IMPLEMENTATION for selected platforms. ifeq ($(findstring AIX,$(G4SYSTEM)),AIX) G4STREAM_STREAMBUF_IMPLEMENTATION = 1 endif ifeq ($(findstring WIN32,$(G4SYSTEM)),WIN32) G4STREAM_STREAMBUF_IMPLEMENTATION = 1 endif ifdef G4STREAM CPPFLAGS += -DG4STREAM endif ifdef G4STREAM_STREAMBUF_IMPLEMENTATION CPPFLAGS += -DG4STREAM_STREAMBUF_IMPLEMENTATION endif # # Template setup - repositories, special options etc # ifdef CFRONT_G4TEMPLATE_REPOSITORY ifeq ($(findstring DEC,$(G4SYSTEM)),DEC) ifdef G4EXEC_BUILD CXXTEMPLATE_FLAGS := -ptr $(G4TREP)/exec -ptr $(G4TREP) else CXXTEMPLATE_FLAGS := -ptr $(G4TREP) endif else ifdef G4EXEC_BUILD CXXTEMPLATE_FLAGS := -ptr$(G4TREP)/exec -ptr$(G4TREP) else CXXTEMPLATE_FLAGS := -ptr$(G4TREP) endif endif CXXFLAGS += $(CXXTEMPLATE_FLAGS) CFRONT := true endif ifdef CFRONT G4TEMPLATE_REPOSITORY_PARENT := $(shell echo $(G4TREP) | sed 's!/[^/][^/]*/*$$!!' ) G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4TEMPLATE_REPOSITORY_PARENT) ] && mkdir -p $(G4TEMPLATE_REPOSITORY_PARENT) ) G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4TREP) ] && mkdir -p $(G4TREP) ) G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4TREP)/exec ] &&mkdir -p $(G4TREP)/exec ) endif