--- makes/Make.lib	2008-06-06 20:57:46.000000000 -0400
+++ makes/Make.lib.new	2008-12-21 15:36:21.000000000 -0500
@@ -3,6 +3,8 @@
 #
 # override with libatlas.so only when atlas is built to one lib
 #
+so_ver_major=3
+so_ver = $(so_ver_major).0
 DYNlibs = liblapack.so libf77blas.so libcblas.so libatlas.so 
 PTDYNlibs = liblapack.so libptf77blas.so libptcblas.so libatlas.so 
 CDYNlibs = liblapack.so libcblas.so libatlas.so 
@@ -32,38 +34,78 @@
 	mv $(tarnam).tar.gz $(tarnam).tgz
 
 ptshared :
-	- rm -f libatlas.so liblapack.so
-	$(MAKE) libatlas.so liblapack.so libptf77blas.so libf77blas.so \
-                libptcblas.so libcblas.so liblapack.so
+	- rm -f libatlas.so* liblapack.so* \
+                lib*blas.so* libclapack.so* 
+	$(MAKE) libatlas.so libcblas.so libptf77blas.so libf77blas.so \
+                libptcblas.so liblapack.so libclapack.so
 shared :
-	- rm -f libatlas.so liblapack.so
-	$(MAKE) libatlas.so liblapack.so libf77blas.so libcblas.so liblapack.so
+	- rm -f libatlas.so liblapack.so \
+                libatlas.so.$(so_ver) liblapack.so.$(so_ver)
+	$(MAKE) libatlas.so libcblas.so libf77blas.so liblapack.so libclapack.so
 cptshared :
-	- rm -f libatlas.so libclapack.so
-	$(MAKE) libatlas.so libclapack.so libptcblas.so libcblas.so
+	- rm -f libatlas.so libclapack.so \
+                libatlas.so.$(so_ver) libclapack.so.$(so_ver)
+	$(MAKE) libatlas.so libptcblas.so libcblas.so libclapack.so
 cshared :
-	- rm -f libatlas.so libclapack.so
-	$(MAKE) libatlas.so libclapack.so libcblas.so
+	- rm -f libatlas.so libclapack.so \
+                libatlas.so.$(so_ver) libclapack.so.$(so_ver)
+	$(MAKE) libatlas.so libcblas.so libclapack.so
 
 libatlas.so : libatlas.a
-	ld $(LDFLAGS) -shared -soname libatlas.so -o libatlas.so \
-        --whole-archive libatlas.a --no-whole-archive -lc $(LIBS)
+	mkdir static_libs ; cd static_libs ; ar x ../libatlas.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=libatlas.so.$(so_ver_major) \
+        -o libatlas.so.$(so_ver) static_libs/*.o -lc $(LIBS)
+	rm -rf static_libs
+	ln -s ./libatlas.so.$(so_ver) libatlas.so.$(so_ver_major)
+	ln -s ./libatlas.so.$(so_ver) libatlas.so
 liblapack.so : liblapack.a
-	ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive \
-           liblapack.a --no-whole-archive $(F77SYSLIB)
+	mkdir static_libs ; cd static_libs ; ar x ../liblapack.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=liblapack.so.$(so_ver_major) \
+           -o liblapack.so.$(so_ver) static_libs/*.o $(F77SYSLIB) \
+           libf77blas.so.$(so_ver_major) libcblas.so.$(so_ver_major)
+	rm -rf static_libs
+	ln -s ./liblapack.so.$(so_ver) liblapack.so.$(so_ver_major)
+	ln -s ./liblapack.so.$(so_ver) liblapack.so
 libclapack.so : libclapack.a
-	ld $(LDFLAGS) -shared -soname liblapack.so -o liblapack.so \
-           --whole-archive libclapack.a
+	mkdir static_libs ; cd static_libs ; ar x ../libclapack.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=libclapack.so.$(so_ver_major) \
+           -o libclapack.so.$(so_ver) static_libs/*.o \
+           libcblas.so.$(so_ver_major) -lc $(LIBS)
+	rm -rf static_libs
+	ln -s ./libclapack.so.$(so_ver) libclapack.so.$(so_ver_major)
+	ln -s ./libclapack.so.$(so_ver) libclapack.so
 libptf77blas.so : libptf77blas.a
-	ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libptf77blas.a \
-           --no-whole-archive $(F77SYSLIB)
+	mkdir static_libs ; cd static_libs ; ar x ../libptf77blas.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=libptf77blas.so.$(so_ver_major) \
+           -o libptf77blas.so.$(so_ver) static_libs/*.o \
+           libatlas.so.$(so_ver) $(F77SYSLIB)
+	rm -rf static_libs
+	ln -s ./libptf77blas.so.$(so_ver) libptf77blas.so.$(so_ver_major)
+	ln -s ./libptf77blas.so.$(so_ver) libptf77blas.so
 libf77blas.so : libf77blas.a
-	ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libf77blas.a \
-           --no-whole-archive $(F77SYSLIB)
+	mkdir static_libs ; cd static_libs ; ar x ../libf77blas.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=libf77blas.so.$(so_ver_major) \
+           -o libf77blas.so.$(so_ver) static_libs/*.o \
+           libatlas.so.$(so_ver) $(F77SYSLIB)
+	rm -rf static_libs
+	ln -s ./libf77blas.so.$(so_ver) libf77blas.so.$(so_ver_major)
+	ln -s ./libf77blas.so.$(so_ver) libf77blas.so
 libptcblas.so : libptcblas.a
-	ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libptcblas.a
+	mkdir static_libs ; cd static_libs ; ar x ../libptcblas.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=libptcblas.so.$(so_ver_major) \
+           -o libptcblas.so.$(so_ver) static_libs/*.o \
+           libatlas.so.$(so_ver) -lc $(LIBS)
+	rm -rf static_libs
+	ln -s ./libptcblas.so.$(so_ver) libptcblas.so.$(so_ver_major)
+	ln -s ./libptcblas.so.$(so_ver) libptcblas.so
 libcblas.so : libcblas.a
-	ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libcblas.a
+	mkdir static_libs ; cd static_libs ; ar x ../libcblas.a ; cd ../
+	gcc $(LDFLAGS) -shared -Wl,-soname=libcblas.so.$(so_ver_major) \
+           -o libcblas.so.$(so_ver) static_libs/*.o \
+           libatlas.so.$(so_ver) -lc $(LIBS)
+	rm -rf static_libs
+	ln -s ./libcblas.so.$(so_ver) libcblas.so.$(so_ver_major)
+	ln -s ./libcblas.so.$(so_ver) libcblas.so
 #
 # Builds one shared lib from all ATLAS files
 #
