# Define our compilers.................................
#
F90    = mpxlf90_r
F77    = mpxlf_r
CC     = mpcc_r

# Libraries................
#
# libs removed on p690...
# -lacml
# -L/usr/lpp/X11 -lX11 \
# PGPLOT = /home/beaumnt1/software/pgplot-5.2.2-q64
# -L$(PGPLOT) -lpgplot \

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


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

# wsmp lives here.
#
WSMP_DIR   = /home/beaumnt1/software/wsmp/lib/Power4

# for 64 bit compile..................................
#
AR =ar -X 64
BITS=-q64
OPTIONS = -b64 -bmaxdata:0x80000000 -bhalt:0 -bnoquiet
WSMP_LIB = -L$(WSMP_DIR) -lpwsmp64
FLG64=-b64


# Define FORTRAN compiler flags.......................
#
# I would like to add -u here, but Wow!  Just try it.
# FLAGS  = -O3 -qstrict -Q -qarch=auto -qtune=auto -qfloat=nomaf:nofold
# Trouble on the p690; time to get serious.
# douar bombs quickly; removing qflttrap=inexact
# -qport options might be worth looking at later
# -qwarn64 casues interesting messages in NN
#
# for xlf 8.1
# -qflttrap=overflow:underflow:zerodivide:invalid:enable 
# for xlf 10.1
# -qflttrap=overflow:underflow:zerodivide:invalid:NANQ:enable 
#
# take -qextchk out for the final compile
# Need -qhalt=s, else the compiler stops on the multiple errors from MPI calls.
# For no optimzation, use "-O0" and remove "-qstrict"
FFLAGS  = -g -O2 -qstrict -Q $(BITS) $(FLG64) -qarch=auto -qtune=auto \
-qmaxmem=-1 \
-qcheck -qwarn64  \
-qfloat=nomaf:nofold:norsqrt:strictnmaf \
-qflttrap=overflow:underflow:zerodivide:invalid:NANQ:enable \
-qsigtrap -qnosave -qhalt=s -qextchk

# Define C compiler flags.............................
#
# take -qextchk out for the final compile
# For no optimzation, remove the "-O" option and remove "-qstrict"
CFLAGS  = -g -O2 -qstrict -Q $(BITS) $(FLG64) -qarch=auto -qtune=auto \
-qcheck -qwarn64 \
-qfloat=nomaf:nofold:norsqrt \
-qflttrap=overflow:underflow:zerodivide:invalid:enable \
-qhalt=e -qextchk

# full speed ahead and damn the torpedos..................
#
# FFLAGS  = -O2 -qstrict -Q $(BITS) $(FLG64) -qarch=auto -qtune=auto \
# -qmaxmem=-1 \
# -qfloat=nomaf:nofold:norsqrt:strictnmaf \
# -qhalt=e
# CFLAGS  = -O2 -qstrict -Q $(BITS) $(FLG64) -qarch=auto -qtune=auto \
# -qfloat=nomaf:nofold:norsqrt \
# -qhalt=e


# compile rules.......................................
#
COMPILE_OUT=$(NAME)$(BITS).compile
.SUFFIXES:
.SUFFIXES: .o .c .f .f90
.f90.o:
	@echo "--"                                          >>$(COMPILE_OUT) 2>&1
	@echo "OBJECT_MODE should be 64, is ${OBJECT_MODE}" >>$(COMPILE_OUT) 2>&1
	@echo "xlf is `which xlf`"                          >>$(COMPILE_OUT) 2>&1
	@echo "$(F90) -qsuffix=f=f90 $(FFLAGS) -c $<"       >>$(COMPILE_OUT) 2>&1
	$(F90) -qsuffix=f=f90 $(FFLAGS) -c $<               >>$(COMPILE_OUT) 2>&1

.f.o:
	@echo "--"                                          >>$(COMPILE_OUT) 2>&1
	@echo "OBJECT_MODE should be 64, is ${OBJECT_MODE}" >>$(COMPILE_OUT) 2>&1
	@echo "xlf is `which xlf`"                          >>$(COMPILE_OUT) 2>&1
	@echo "$(F77) -qsuffix=f=f $(FFLAGS) -c $<"         >>$(COMPILE_OUT) 2>&1
	$(F77) -qsuffix=f=f $(FFLAGS) -c $<                 >>$(COMPILE_OUT) 2>&1

.c.o:
	@echo "--"                                          >>$(COMPILE_OUT) 2>&1
	@echo "OBJECT_MODE should be 64, is ${OBJECT_MODE}" >>$(COMPILE_OUT) 2>&1
	@echo "$(CC) $(CFLAGS) -c $<"                       >>$(COMPILE_OUT) 2>&1
	$(CC) $(CFLAGS) -c $<                               >>$(COMPILE_OUT) 2>&1