diff --git a/CASCADE/Makefile b/CASCADE/Makefile
index a95c7ddf6dee517e8209068bbd5757726ebb2e82..4aa150ef2769455e5f227d235d11ff498bf2f36f 100644
--- a/CASCADE/Makefile
+++ b/CASCADE/Makefile
@@ -51,14 +51,14 @@ del_flip.o
 #
 all: lib$(NAME).a
 lib$(NAME).a: $(OBJECTS) $(UTILS)
-	ar -X 64 -rv lib$(NAME).a $(OBJECTS)
+	$(AR) -rv lib$(NAME).a $(OBJECTS)
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
 
 .PHONY: objclean
 objclean:
-	rm -f *.o $(NAME).compile
+	rm -f *.o $(COMPILE_OUT)
 
 .PHONY: clean
 clean: objclean
diff --git a/Makefile b/Makefile
index 689d1de580cfbd24d893dab7d2895ae18a17e6ac..da0a886086a9aa2b139cb07292fa56cf4cf45ca0 100644
--- a/Makefile
+++ b/Makefile
@@ -72,12 +72,11 @@ wsmp_setup.o\
 DOUAR.o \
 write_global_output.o vrm.o
 
-OPTIONS=-bnoquiet
 
 all: $(NAME)
 $(NAME): subdirs $(OBJECTS)
-	$(F90) $(FLAGS) $(OPTIONS) $(OBJECTS) $(LIBS) -o $(NAME) \
- >$(NAME).link 2>&1
+	$(F90) $(FLAGS) $(OPTIONS) $(OBJECTS) $(LIBS) -o $(NAME)$(BITS) \
+ >$(NAME)$(BITS).link 2>&1
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
@@ -110,5 +109,5 @@ clean: objclean
 	cd NN;        make $@
 	cd OCTREE;    make $@
 	cd RESAMPLE;  make $@
-	rm -f $(NAME) $(NAME).link
+	rm -f $(NAME)$(BITS) $(NAME)$(BITS).link
 
diff --git a/Makefile.p690 b/Makefile.p690
index 74912f243d928d2f4af759d07695161933d1e123..a5ae11b2ac389e375056fc11d91ec06b796852b6 100644
--- a/Makefile.p690
+++ b/Makefile.p690
@@ -4,46 +4,45 @@ F90    = mpxlf90_r
 F77    = mpxlf_r
 CC     =  mpcc_r
 
+X11    = /usr/lpp/X11
+WSMP_DIR   = /home/beaumnt1/software/wsmp/lib/Power4
+
+# for 32 bit compile
+AR=ar
+BITS=-q32
+OPTIONS = -bmaxdata:0x80000000 -bhalt:0 -bnoquiet
+PGPLOT = /home/beaumnt1/software/pgplot-5.2.2
+WSMP_LIB = -L$(WSMP_DIR) -lpwsmp
+
+# for 64 bit compile
+# AR=ar -X 64
+# BITS=-q64
+# OPTIONS = -b 64 -bmaxdata:0x80000000 -bhalt:0 -bnoquiet
+# PGPLOT = /home/beaumnt1/software/pgplot-5.2.2-q64
+# WSMP_LIB = -L$(WSMP_DIR) -lpwsmp64
+
+
 # Define FORTRAN compiler flags
-#
 # I would like to add -u here, but Wow!  Just try it.
-# FFLAGS  = -O3 -qstrict -Q -qarch=auto -qtune=auto -qfloat=nomaf:nofold
+# FLAGS  = -O3 -qstrict -Q -qarch=auto -qtune=auto -qfloat=nomaf:nofold
 # Trouble on the p690; time to get serious.
-FFLAGS  = -O2 -qmaxmem=-1 -qstrict -Q -q64 -b64 -qarch=pwr4 -qtune=pwr4 \
+# take -qextchk out for the final compile
+FLAGS  = -O2 -qmaxmem=-1 -qstrict -Q $(BITS)  -qarch=pwr4 -qtune=pwr4 \
 -qfloat=nomaf:nofold:norsqrt:strictnmaf \
 -qflttrap=overflow:underflow:zerodivide:invalid:inexact:enable \
 -qsigtrap \
--qhalt=e \
--qextchk
+-qhalt=s -qextchk
+
 
 # Define C compiler flags
-CFLAGS  = -O2 -qstrict -Q -q64  -qarch=pwr4 -qtune=pwr4 \
+# take -qextchk out for the final compile
+CFLAGS  = -O2 -qstrict -Q $(BITS)  -qarch=pwr4 -qtune=pwr4 \
 -qfloat=nomaf:nofold:norsqrt \
 -qflttrap=overflow:underflow:zerodivide:invalid:inexact:enable \
--qsigtrap \
--qhalt=e \
--qextchk
-
-
-# define pgplot
-# pgplot - 32bit
-# PGPLOT = /home/beaumnt1/software/pgplot-5.2.2
-# pgplot - 64bit
-PGPLOT = /home/beaumnt1/software/pgplot-5.2.2-q64
-
-# define X11
-X11    = /usr/lpp/X11
-
-# define wsmp
-WSMP_DIR   = /home/beaumnt1/software/wsmp/lib/Power4
-# wsmp - 32bit
-# WSMP_LIB = -L$(WSMP_DIR) -lpwsmp
-# wsmp - 64bit
-WSMP_LIB = -L$(WSMP_DIR) -lpwsmp64
+-qhalt=e -qextchk
 
 # libs removed on p690...
 # -lacml
-# -L$(WSMP) -lpwsmp \
 
 LIBS = \
 -LOCTREE -lOctree \
@@ -55,28 +54,27 @@ $(WSMP_LIB) \
 -L$(PGPLOT) -lpgplot \
 -lpthread 
 
-# INCLUDE = -I$(MUMPS)/include
-
-OPTIONS = -bmaxdata:0x80000000 -bhalt:0 -bnoquiet
-
 # compile rules
 #
-COMPILE_OUT=$(NAME).compile
+COMPILE_OUT=$(NAME)$(BITS).compile
 .SUFFIXES:
 .SUFFIXES: .o .c .f .f90
 .f90.o:
 	@echo "--"                                               >>$(COMPILE_OUT) 2>&1
+	@echo "xlf is `which xlf`"                               >>$(COMPILE_OUT) 2>&1
 	@echo "$(F90) -qsuffix=f=f90 $(FFLAGS) $(INCLUDE) -c $<" >>$(COMPILE_OUT) 2>&1
-	$(F90) -qsuffix=f=f90 $(FFLAGS) $(INCLUDE) -c $<  >>$(COMPILE_OUT) 2>&1
+	$(F90) -qsuffix=f=f90 $(FLAGS) $(INCLUDE) -c $<          >>$(COMPILE_OUT) 2>&1
 
 .f.o:
 	@echo "--"                                   >>$(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
+	$(F77) -qsuffix=f=f $(FLAGS) -c $<           >>$(COMPILE_OUT) 2>&1
 
 .c.o:
-	@echo "--"                                               >>$(COMPILE_OUT) 2>&1
+	@echo "--"                     >>$(COMPILE_OUT) 2>&1
+	@echo "cc is `which cc`"       >>$(COMPILE_OUT) 2>&1
 	@echo "$(CC) $(CFLAGS) -c $<"  >>$(COMPILE_OUT) 2>&1
-	$(CC) $(CFLAGS) -c $<         >>$(COMPILE_OUT) 2>&1
+	$(CC) $(CFLAGS) -c $<          >>$(COMPILE_OUT) 2>&1
 
 
diff --git a/NN/Makefile b/NN/Makefile
index fc378ab7a9eaae233ba4efdc0e3914efc481947e..e78329de372c0565eb52ffc0e87ab3d02671300f 100644
--- a/NN/Makefile
+++ b/NN/Makefile
@@ -13,7 +13,7 @@ volume.o
 
 all: lib$(NAME).a
 lib$(NAME).a: $(OBJECTS_NN)
-	ar -X 64 rcv lib$(NAME).a $(OBJECTS_NN)
+	$(AR) rcv lib$(NAME).a $(OBJECTS_NN)
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
diff --git a/OCTREE/Makefile b/OCTREE/Makefile
index 1265a636162ad54364c7d69d788127329898927a..7b3f1416add3b70ded3b71c57c5b61115a6588a5 100644
--- a/OCTREE/Makefile
+++ b/OCTREE/Makefile
@@ -14,7 +14,7 @@ rootls_sloan.o
 
 all: lib$(NAME).a
 lib$(NAME).a: $(OBJECTS_OCTREE)
-	ar -X 64 rcv lib$(NAME).a $(OBJECTS_OCTREE)
+	$(AR) rcv lib$(NAME).a $(OBJECTS_OCTREE)
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
diff --git a/RESAMPLE/Makefile b/RESAMPLE/Makefile
index b3adaf379e92d367e83aa7b056daf1bd7735b692..0883e3b456213d284be15b134c66679ee4967dcd 100644
--- a/RESAMPLE/Makefile
+++ b/RESAMPLE/Makefile
@@ -18,14 +18,14 @@ resample.o
 
 all: lib$(NAME).a
 lib$(NAME).a: $(OBJECTS)
-	ar -X 64 rcv lib$(NAME).a $(OBJECTS)
+	$(AR) rcv lib$(NAME).a $(OBJECTS)
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
 
 .PHONY: objclean
 objclean:
-	rm -f *.o $(NAME).compile
+	rm -f *.o $(COMPILE_OUT)
 
 .PHONY: clean
 clean: objclean