# FLASH makefile definitions for Titania (SUN) #---------------------------------------------------------------------------- # Set the HDF/HDF5 and PAPI library paths # -- these need to be updated for your system # If PAPI does not exist on your system, comment them out #---------------------------------------------------------------------------- HDF5_PATH = /opt/local #HDF4_PATH = #PAPI_PATH = /usr/local #PAPI_FLAGS = -c -I$(PAPI_PATH)/include -qsuffix=f=F90:cpp=F90 -qfree #---------------------------------------------------------------------------- # Compiler and linker commands # # Use the MPICH wrappers around the compilers -- these will automatically # load the proper libraries and include files. Version of MPICH prior # to 1.2.2 (?) do not recognize .F90 as a valid Fortran file extension. # You need to edit mpif90 and add .F90 to the test of filename extensions, # or upgrade your MPICH. #---------------------------------------------------------------------------- FCOMP = mpf95 CCOMP = mpcc CPPCOMP = mpCC LINK = mpf95 #---------------------------------------------------------------------------- # Compilation flags # # Three sets of compilation/linking flags are defined: one for optimized # code, one for testing, and one for debugging. The default is to use the # _OPT version. Specifying -debug to setup will pick the _DEBUG version, # these should enable bounds checking. Specifying _TEST is used for # flash_test, and is set for quick code generation, and (sometimes) # profiling. The Makefile generated by setup will assign the generic token # (ex. FFLAGS) to the proper set of flags (ex. FFLAGS_OPT). #---------------------------------------------------------------------------- FFLAGS_OPT = -fast -xarch=v9b -xchip=ultra3 -fpp -xtypemap=real:64,integer:32 -xcache=64/32/4:8192/512/1 -c FFLAGS_DEBUG = -xarch=v9b -xchip=ultra3 -fpp -xtypemap=real:64,integer:32 -g -c -DDEBUG FFLAGS_TEST = -O2 -xarch=v9b -xchip=ultra3 -fpp -xtypemap=real:64,integer:32 -xcache=64/32/4:8192/512/1 -c F90FLAGS = CFLAGS_HDF5 = -I$(HDF5_PATH)/include/sparcv9 # -DNOUNDERSCORE CFLAGS_OPT = -fast -xarch=v9b -xchip=ultra3 -c CFLAGS_DEBUG = -xarch=v9b -xchip=ultra3 -g -c CFLAGS_TEST = -O2 -xarch=v9b -xchip=ultra3 -c .SUFFIXES: .o .c .f .F .h .fh .F90 .f90 #---------------------------------------------------------------------------- # Linker flags # # There is a seperate version of the linker flags for each of the _OPT, # _DEBUG, and _TEST cases. #---------------------------------------------------------------------------- LFLAGS_OPT = -fast -xarch=v9b -xchip=ultra3 -R/opt/local/lib/sparcv9:/opt/gm/lib/sparcv9 -xtypemap=real:64,integer:32 -o LFLAGS_DEBUG = -xarch=v9b -xchip=ultra3 -R/opt/local/lib/sparcv9:/opt/gm/lib/sparcv9 -xtypemap=real:64,integer:32 -g -o LFLAGS_TEST = -xarch=v9b -xchip=ultra3 -R/opt/local/lib/sparcv9:/opt/gm/lib/sparcv9 -xtypemap=real:64,integer:32 -o #---------------------------------------------------------------------------- # Library specific linking # # If a FLASH module has a 'LIBRARY xxx' line in its Config file, we need to # create a macro in this Makefile.h for LIB_xxx, which will be added to the # link line when FLASH is built. This allows us to switch between different # (incompatible) libraries. We also create a _OPT, _DEBUG, and _TEST # library macro to add any performance-minded libraries (like fast math), # depending on how FLASH was setup. #---------------------------------------------------------------------------- #LIB_HDF4 = -L$(HDF4_PATH)/lib -lmfhdf -ldf -lz LIB_HDF5 = -L$(HDF5_PATH)/lib/sparcv9 -lhdf5 -L/usr/local/lib -lz #LIB_PAPI = -L$(PAPI_PATH)/lib -lpapi -L/usr/lpp/pmtoolkit/lib -lpmapi LIB_OPT = -lmpi LIB_DEBUG = -lmpi LIB_TEST = -lmpi #---------------------------------------------------------------------------- # Additional machine-dependent object files # # Add any machine specific files here -- they will be compiled and linked # when FLASH is built. #---------------------------------------------------------------------------- MACHOBJ = #---------------------------------------------------------------------------- # Additional commands #---------------------------------------------------------------------------- MV = mv -f AR = ar -r RM = rm -f CD = cd RL = ranlib ECHO = echo