--- Makefile.common.orig	Tue Mar 27 00:25:04 2001
+++ Makefile.common	Tue Mar 27 00:00:00 2001
@@ -151,24 +151,20 @@
 
 $(LIBOBJECTS): %.o: $(SRCSUBDIR)/%.c $(HEADERLINKS)
 # Note that the user may have configured -I options into CFLAGS.
+	$(CC) -c $(INCLUDE) $(CFLAGS) -o $@ $<
+
+$(SHLIBOBJECTS): %.lo: $(SRCSUBDIR)/%.c $(HEADERLINKS)
 	$(CC) -c $(INCLUDE) $(CFLAGS) $(CFLAGS_SHLIB) -o $@ $<
 
-SONAME = lib$(LIBROOT).so.$(MAJ)
+SONAME = lib$(LIBROOT).so.$(SOVER)
 
 # The libxxx.so link is needed to link the executables.
 lib$(LIBROOT).so: $(SONAME)
 	rm -f $@
 	ln -s $< $@
-# The $(SONAME) link is only needed to test the programs without
-# installing the libraries (in that case, you also need to direct the 
-# dynamic linker to the source directories, e.g. set LD_LIBRARY_PATH).
-$(SONAME): lib$(LIBROOT).so.$(MAJ).$(MIN)
-	rm -f $@
-	ln -s $< $@
-lib$(LIBROOT).so.$(MAJ).$(MIN): $(LIBOBJECTS) $(LIBOBJECTS_X) $(LIBLIBS) \
-                                $(LIBOPT)
-	$(LD) $(LDSHLIB) -o $@ $(LIBOBJECTS) $(LIBOBJECTS_X) \
-          `$(LIBOPT) $(LIBLIBS)` -lc
+$(SONAME): $(SHLIBOBJECTS) $(LIBOBJECTS_X) $(LIBLIBS) $(LIBOPT) lib$(LIBROOT).a
+	$(LD) $(LDSHLIB) -o $@ $(SHLIBOBJECTS) $(LIBOBJECTS_X) \
+          `$(LIBOPT) $(LIBLIBS)` $(LDFLAGS)
 
 # Static library.  Unused by default, but with a small change to make files...
 lib$(LIBROOT).a: $(LIBOBJECTS) $(LIBOBJECTS_X)
@@ -200,7 +196,7 @@
 install.merge.common: $(MERGENAME) $(NOMERGEBINARIES) install.script
 	cd $(INSTALLBINARIES) ; rm -f $(BINARIES) $(MERGE_ALIASES)
 ifneq ($(MERGENAME)x,x)
-	$(INSTALL) -c $(STRIPFLAG) -m $(INSTALL_PERM_BIN) \
+	${BSD_INSTALL_PROGRAM} \
             $(MERGENAME) $(INSTALLBINARIES)
 	cd $(INSTALLBINARIES) ; \
 	   for i in $(MERGEBINARIES) $(MERGE_ALIASES) ; \
@@ -210,7 +206,7 @@
 ifneq ($(NOMERGEBINARIES)x,x)
 	for x in $(NOMERGEBINARIES); \
         do \
-           $(INSTALL) -c $(STRIPFLAG) -m $(INSTALL_PERM_BIN) \
+           ${BSD_INSTALL_PROGRAM} \
                $$x $(INSTALLBINARIES); \
 	done
 endif
@@ -221,7 +217,7 @@
 # Make and Install know that pbmmake.exe counts as pbmmake.
 	for x in $(BINARIES); \
 	do \
-	   $(INSTALL) -c $(STRIPFLAG) -m $(INSTALL_PERM_BIN) \
+	   ${BSD_INSTALL_PROGRAM} \
                $$x $(INSTALLBINARIES); \
 	done
 
@@ -230,7 +226,7 @@
 ifneq ($(SCRIPTS)x,x)
 	for x in $(SCRIPTS); \
 	do \
-	   $(INSTALL) -c -m $(INSTALL_PERM_BIN) $(SRCSUBDIR)/$$x \
+	   ${BSD_INSTALL_SCRIPT} $(SRCSUBDIR)/$$x \
                $(INSTALLSCRIPTS); \
 	done
 endif
@@ -267,7 +263,7 @@
 # directory when you compile your programs.
 	for x in $(INTERFACE_HEADERS); \
 	do \
-	   $(INSTALL) -c -m $(INSTALL_PERM_HDR) $(SRCSUBDIR)/$$x \
+	   ${BSD_INSTALL_DATA} $(SRCSUBDIR)/$$x \
                $(INSTALLHDRS); \
 	done
 
@@ -275,15 +271,14 @@
 #
 .PHONY: install.staticlib
 install.staticlib: lib$(LIBROOT).a
-	$(INSTALL) -c -m $(INSTALL_PERM_LIBS) $< $(INSTALLLIBS)/$<
+	${BSD_INSTALL_DATA} $< $(INSTALLLIBS)/$<
 
 .PHONY: install.lib.common
 # install a shared library
-install.lib.common: lib$(LIBROOT).so.$(MAJ).$(MIN) 
-	cd $(INSTALLLIBS) ; rm -f lib$(LIBROOT).so.$(MAJ).*
-	$(INSTALL) -c -m $(INSTALL_PERM_LIBD) $< $(INSTALLLIBS)
+install.lib.common: $(SONAME)
+	cd $(INSTALLLIBS) ; rm -f lib$(LIBROOT).so.*
+	${BSD_INSTALL_DATA} $< $(INSTALLLIBS)
 	cd $(INSTALLLIBS) ; rm -f lib$(LIBROOT).so; ln -s $< lib$(LIBROOT).so
-	cd $(INSTALLLIBS) ; rm -f $(SONAME); ln -s $< $(SONAME)
 
 .PHONY: clean.common
 clean.common:
