diff --git a/CASCADE/Makefile b/CASCADE/Makefile
index 4aa150ef2769455e5f227d235d11ff498bf2f36f..80c671ef0013f3dffe08fbba1350a06eaee37bef 100644
--- a/CASCADE/Makefile
+++ b/CASCADE/Makefile
@@ -9,6 +9,7 @@
 
 NAME=cascade
 include ../Makefile.p690
+LIBFILE=lib$(NAME)$(BITS).a
 
 # object (all the interesting bits to do the erosion/sedimentation
 #         computations)
@@ -49,9 +50,9 @@ del_flip.o
 
 # make the library
 #
-all: lib$(NAME).a
-lib$(NAME).a: $(OBJECTS) $(UTILS)
-	$(AR) -rv lib$(NAME).a $(OBJECTS)
+all: $(LIBFILE)
+$(LIBFILE): $(OBJECTS) $(UTILS)
+	$(AR) -rv $(LIBFILE) $(OBJECTS) >$(LIBFILE).ar
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
@@ -62,5 +63,5 @@ objclean:
 
 .PHONY: clean
 clean: objclean
-	rm -f lib$(NAME).a
+	rm -f $(LIBFILE)
 
diff --git a/Makefile.p690 b/Makefile.p690
index a5ae11b2ac389e375056fc11d91ec06b796852b6..c6dc6004b5e4e6f73fa98b3745ba8a71b2fe8ab4 100644
--- a/Makefile.p690
+++ b/Makefile.p690
@@ -45,10 +45,10 @@ CFLAGS  = -O2 -qstrict -Q $(BITS)  -qarch=pwr4 -qtune=pwr4 \
 # -lacml
 
 LIBS = \
--LOCTREE -lOctree \
--LNN -lnn \
--LCASCADE -lcascade \
--LRESAMPLE -lresample \
+-LOCTREE -lOctree$(BITS) \
+-LNN -lnn$(BITS) \
+-LCASCADE -lcascade$(BITS) \
+-LRESAMPLE -lresample$(BITS) \
 $(WSMP_LIB) \
 -L$(X11) -lX11 \
 -L$(PGPLOT) -lpgplot \
diff --git a/NN/Makefile b/NN/Makefile
index e78329de372c0565eb52ffc0e87ab3d02671300f..78897ae5513de2babdad52c011d04b2c51dcc106 100644
--- a/NN/Makefile
+++ b/NN/Makefile
@@ -1,5 +1,6 @@
 NAME=nn
 include ../Makefile.p690
+LIBFILE=lib$(NAME)$(BITS).a
 
 OBJECTS_NN = \
 delaun.o \
@@ -11,9 +12,9 @@ stack.o \
 stackpair.o \
 volume.o
 
-all: lib$(NAME).a
-lib$(NAME).a: $(OBJECTS_NN)
-	$(AR) rcv lib$(NAME).a $(OBJECTS_NN)
+all: $(LIBFILE)
+$(LIBFILE): $(OBJECTS_NN)
+	$(AR) -rv $(LIBFILE) $(OBJECTS_NN) >$(LIBFILE).ar
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
@@ -24,5 +25,5 @@ objclean:
 
 .PHONY: clean
 clean: objclean
-	rm -f lib$(NAME).a
+	rm -f $(LIBFILE)
 
diff --git a/OCTREE/Makefile b/OCTREE/Makefile
index 7b3f1416add3b70ded3b71c57c5b61115a6588a5..30f85da8ca8dd6e24e1a55c8f46cf6cc708f422a 100644
--- a/OCTREE/Makefile
+++ b/OCTREE/Makefile
@@ -1,5 +1,6 @@
 NAME=Octree
 include ../Makefile.p690
+LIBFILE=lib$(NAME)$(BITS).a
 
 OBJECTS_OCTREE = \
 OctreeBitPlus.o \
@@ -12,9 +13,9 @@ profil_sloan.o \
 rootls_sloan.o
 
 
-all: lib$(NAME).a
-lib$(NAME).a: $(OBJECTS_OCTREE)
-	$(AR) rcv lib$(NAME).a $(OBJECTS_OCTREE)
+all: $(LIBFILE)
+$(LIBFILE): $(OBJECTS_OCTREE)
+	$(AR) -rv $(LIBFILE) $(OBJECTS_OCTREE) >$(LIBFILE).ar
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
@@ -25,5 +26,5 @@ objclean:
 
 .PHONY: clean
 clean: objclean
-	rm -f lib$(NAME).a
+	rm -f $(LIBFILE)
 
diff --git a/RESAMPLE/Makefile b/RESAMPLE/Makefile
index 0883e3b456213d284be15b134c66679ee4967dcd..ee403f928bfab2058011ab41be1d309e0b84b944 100644
--- a/RESAMPLE/Makefile
+++ b/RESAMPLE/Makefile
@@ -1,5 +1,6 @@
 NAME=resample
 include ../Makefile.p690
+LIBFILE=lib$(NAME)$(BITS).a
 
 OBJECTS = \
 curfit.o \
@@ -16,9 +17,9 @@ curfit.o \
 splev.o \
 resample.o
 
-all: lib$(NAME).a
-lib$(NAME).a: $(OBJECTS)
-	$(AR) rcv lib$(NAME).a $(OBJECTS)
+all: $(LIBFILE)
+$(LIBFILE): $(OBJECTS)
+	$(AR) -rv $(LIBFILE) $(OBJECTS) >$(LIBFILE).ar
 	echo "--"
 	echo "compiler output...."
 	more $(COMPILE_OUT)
@@ -29,5 +30,5 @@ objclean:
 
 .PHONY: clean
 clean: objclean
-	rm -f lib$(NAME).a
+	rm -f $(LIBFILE)