# Define our compilers.................................
#
# The default - OpenMPI 1.2.7
F90    = mpif90
F77    = mpif77
CC     = mpicc
# wsmp wants mpich, so we try this
# F90    = /usr/local/mpich.pgi.64/bin/mpif90
# F77    = /usr/local/mpich.pgi.64/bin/mpif77
# CC     = /usr/local/mpich.pgi.64/bin/mpicc

# Libraries................
#
# PGPLOT=/home/dguptill/software/pgplot-5.2.2
# -L$(PGPLOT) -lpgplot \
# -L/usr/X11R6/lib64 -lX11 \

LIBS = \
 -LOCTREE -lOctree$(BITS) \
 -LNN -lnn_f$(BITS) \
 -LNN -lnn_c$(BITS) \
 -LCASCADE -lcascade$(BITS) \
 -LRESAMPLE -lresample$(BITS) \
 $(WSMP_LIB) \
 -lpthread -lacml

# The Makefiles look at compile output with this
PAGER=less

# wsmp lives here.
#
WSMP_DIR   = /home/dguptill/software/wsmp/wsmp-Linux/lib/X86_64/PGI

# Miscellaneous things
#
AR=ar
OPTIONS=
WSMP_LIB=-L$(WSMP_DIR) -lpwsmp64

# Define FORTRAN compiler flags.......................
#
# Initial guess at flags:
# Using these, douar works much as it does on grace.
FFLAGS=-fastsse -pc 64 -Kieee -tp amd64
# These might be better
FFLAGS=-gopt -O2 -fastsse -Kieee
# Some debugging options; trying for a failure like on the p690
# We get a consistent crash where make_cut calls itself.
# "Error: floating point exception, integer divide by zero"
FFLAGS=-gopt -O0 -Kieee -Ktrap=inv,divz,ovf -mcmodel=medium \
-Mnofprelaxed -Mbounds -Mchkstk -Mnofpapprox \
-Mchkptr -Mnoonetrip -Mrecursive
# trying these; we get less information from the debugger.
# FFLAGS=-O2 -fastsse -gopt -Kieee -Ktrap=inv,divz,ovf -mcmodel=medium -Mbounds

#-traceback

# Define C compiler flags.............................
#
# Initial guess at flags:
# Using these, douar works much as it does on grace.
CFLAGS=-fastsse -pc 64 -Kieee -tp amd64
# These might be better
CFLAGS=-fastsse -Kieee
# Some debugging options; trying for a failure like on the p690
CFLAGS=-gopt -O0 -Kieee -Ktrap=inv,divz,ovf -mcmodel=medium \
-Mnofprelaxed -Mbounds -Mchkstk -Mnofpapprox \
-Mzerotrip
# CFLAGS=-O2 -fastsse -gopt -Kieee -Ktrap=inv,divz,ovf -mcmodel=medium -Mbounds

# compile rules.......................................
#
COMPILE_OUT=$(NAME).compile
.SUFFIXES:
.SUFFIXES: .o .c .f .f90
.f90.o:
	@echo "--"                      >>$(COMPILE_OUT) 2>&1
	@echo "$(F90) $(FFLAGS) -c $<"  >>$(COMPILE_OUT) 2>&1
	$(F90) $(FFLAGS) -c $<          >>$(COMPILE_OUT) 2>&1

.f.o:
	@echo "--"                      >>$(COMPILE_OUT) 2>&1
	@echo "$(F90) $(FFLAGS) -c $<"  >>$(COMPILE_OUT) 2>&1
	$(F90) $(FFLAGS) -c $<          >>$(COMPILE_OUT) 2>&1

.c.o:
	@echo "--"                     >>$(COMPILE_OUT) 2>&1
	@echo "$(CC) $(CFLAGS) -c $<"  >>$(COMPILE_OUT) 2>&1
	$(CC) $(CFLAGS) -c $<          >>$(COMPILE_OUT) 2>&1