--- lib/makefile.src.orig	Thu Mar  5 04:32:53 1992
+++ lib/makefile.src	Sat Dec 28 00:41:59 2002
@@ -26,7 +26,10 @@
 	vaxshort.o \
 	$(OPT_OBJS)
 
-LIBNAME = librle.a
+SOOBJS = $(OBJS:.o=.so)
+
+LIBANAME = librle.a
+LIBSONAME = librle.so.1
 
 # Just rebuild the object files.
 objs: $(OBJS)
@@ -37,40 +44,40 @@
 # Do nothing if $(DEST) is empty (or not defined)
 install: buildlib
 	@sh -c "if test '$(DEST)x' != x ; then \
-		echo cp $(LIBNAME) $(DEST)/$(LIBNAME) ; \
-		cp $(LIBNAME) $(DEST)/$(LIBNAME) ; \
+		echo install $(LIBANAME) $(DEST)/$(LIBANAME) ; \
+		${BSD_INSTALL_DATA} $(LIBANAME) $(DEST)/$(LIBANAME) ; \
+		echo install $(LIBSONAME) $(DEST)/$(LIBSONAME) ; \
+		${BSD_INSTALL_DATA} $(LIBSONAME) $(DEST)/$(LIBSONAME) ; \
+		ln -sf $(LIBSONAME) $(DEST)/librle.so ; \
 		if test x$(RANLIB) != x ; then \
-			echo ranlib $(DEST)/$(LIBNAME) ; \
-			ranlib $(DEST)/$(LIBNAME) ; \
-		else \
-			true ; \
-		fi ; \
-		if test -d $(DEST)/debug ; then \
-			echo cp $(LIBNAME) $(DEST)/debug/$(LIBNAME) ; \
-			if test x$(RANLIB) != x ; then \
-				cp $(LIBNAME) $(DEST)/debug/$(LIBNAME) ; \
-				echo ranlib $(DEST)/debug/$(LIBNAME) ; \
-			else \
-				true ; \
-			fi ; \
-			ranlib $(DEST)/debug/$(LIBNAME) ; \
+			echo ranlib $(DEST)/$(LIBANAME) ; \
+			ranlib $(DEST)/$(LIBANAME) ; \
 		else \
 			true ; \
 		fi ; \
 	else \
 		true ; \
 	fi"
-	touch install
 
 # Rebuild the library from all the .o files.
-buildlib: $(OBJS)
-	-rm -f $(LIBNAME)
-	ar rc $(LIBNAME)
-	ar q $(LIBNAME) $(OBJS)
+buildlib: $(LIBANAME) $(LIBSONAME)
+
+$(LIBANAME): $(OBJS)
+	-rm -f $@
+	ar rc $@ $(OBJS)
 #ifndef NO_RANLIB
-	ranlib $(LIBNAME)
+	ranlib $@
 #endif
-	touch buildlib
+
+.SUFFIXES: .so .o
+
+.c.so:
+	$(CC) -fPIC -DPIC $(CFLAGS) -c $*.c -o $*.so
+	$(LD) -X -r $*.so
+
+$(LIBSONAME): $(SOOBJS)
+	-rm -f $@
+	ld -shared -soname $@ -o $@ $(SOOBJS)
 
 # Clean up installed stuff and binaries
 pristine: clean
@@ -86,9 +99,12 @@
 # Get rid of everything which must be recompiled on a different computer.
 clean:
 	-rm -f *.o
+	-rm -f *.so
 	-@if test x$(DEST) != x ; then \
-		echo rm -f $(LIBNAME) ; \
-		rm -f $(LIBNAME) ; \
+		echo rm -f $(LIBANAME) ; \
+		rm -f $(LIBANAME) ; \
+		echo rm -f $(LIBSONAME) ; \
+		rm -f $(LIBSONAME) ; \
 	else \
 		true ; \
 	fi
