$NetBSD: patch-aa,v 1.1.1.1 1998/10/21 19:59:30 garbled Exp $

--- glunix/src/Makefile.orig	Wed Nov  5 15:30:39 1997
+++ glunix/src/Makefile	Mon Oct 12 21:31:58 1998
@@ -2,7 +2,7 @@
 #
 # Basic path definitions
 #
-GLUNIX_BASE = /disks/barad-dur/now/glunix
+GLUNIX_BASE = $(GLUNIX_SOURCE)/glunix
 
 #
 # This lists all of the modules in the system that should be compiled
@@ -50,6 +50,11 @@
 # If this Makefile was NOT invoked by glubuild, then we need to set up
 # the architecture stuff here.  glubuild does this for us if it was run.
 #
+GLUNIX_ARCH= $(ARCH)
+GLUNIX_OS= $(OPSYS)
+GLUNIX_NET:=tcp
+INSTALL := /usr/bin/install
+
 ifndef GLUNIX_ARCH
   GLUNIX_ARCH = sun4
 endif
@@ -59,11 +64,8 @@
   GLUNIX_NET := tcp
   INSTALL := /usr/sww/bin/ginstall
 endif
-ifeq ($(GLUNIX_ARCH),i386)
-  GLUNIX_OS := solaris2.6
-  GLUNIX_NET := tcp
-  INSTALL := /usr/now/bin/install
-endif
+#ifeq ($(GLUNIX_ARCH),i386)
+#endif
 GLUNIX_PLATFORM = $(GLUNIX_ARCH)-$(GLUNIX_OS)-$(GLUNIX_NET)
 
 MKDIR        = $(INSTALL) -d -m 0775 -g glunix
@@ -71,34 +73,43 @@
 INSTALL_MAN  = $(INSTALL) -m 0664 -g glunix
 
 OBJROOT := ../obj
-BINROOT := ../../bin
-LIBROOT := ../../lib
+BINROOT := ../bin
+LIBROOT := ../lib
 OBJDIR := $(OBJROOT)/$(GLUNIX_PLATFORM)
 BINDIR := $(BINROOT)/$(GLUNIX_PLATFORM)
 LIBDIR := $(LIBROOT)/$(GLUNIX_PLATFORM)
 
 CC := gcc
-LD := gcc
+LD := ld
 
 INCLUDE_DIRS := -I../include $(addprefix -I./,$(ALL_MODULES))
 #CFLAGS += -pipe -g -Wall -DDEBUG -DGLUNIX_PLATFORM=$(GLUNIX_PLATFORM) $(INCLUDE_DIRS)
-CFLAGS += -Wall -g -O2 -DDEBUG -DGLUNIX_PLATFORM=$(GLUNIX_PLATFORM) $(INCLUDE_DIRS)
+CFLAGS += -Wall -g -O2 $(FLAGS) -DDEBUG -DGLUNIX_PLATFORM=$(GLUNIX_PLATFORM) $(INCLUDE_DIRS)
 #CFLAGS += -pipe -Wall -O4 -DGLUNIX_PLATFORM=$(GLUNIX_PLATFORM) $(INCLUDE_DIRS)
 
-MLDLIBS += -lsocket -lnsl \
-           -L$(GLUNIX_BASE)/release/lib/$(GLUNIX_PLATFORM)
-DLDLIBS += -R/usr/lib -lsocket -lnsl -lm -lelf -lkvm \
-           -L$(GLUNIX_BASE)/release/lib/$(GLUNIX_PLATFORM)
+MLDLIBS += -L$(GLUNIX_BASE)/release/lib/$(GLUNIX_PLATFORM)
+DLDLIBS += -R/usr/lib -lm -lkvm -L$(GLUNIX_BASE)/release/lib/$(GLUNIX_PLATFORM)
+
+#MLDLIBS += -lsocket -lnsl \
+#           -L$(GLUNIX_BASE)/release/lib/$(GLUNIX_PLATFORM)
+#DLDLIBS += -R/usr/lib -lsocket -lnsl -lm -lelf -lkvm \
+#           -L$(GLUNIX_BASE)/release/lib/$(GLUNIX_PLATFORM)
 
 MOBJS := $(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(MSRC:.cc=.o)))
 DOBJS := $(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(DSRC:.cc=.o)))
 LOBJS := $(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(LSRC:.cc=.o)))
+SOBJS := $(addprefix $(OBJDIR)/,$(patsubst %.c,%.so,$(LSRC:.cc=.so)))
 
 vpath %.cc $(ALL_BUILD_MODULES)
 vpath %.c list
 vpath %.o $(OBJDIR)
 vpath %.a $(OBJDIR)
 
+$(OBJDIR)/%.so : %.cc $(OBJDIR)
+	"rm" -f $@ ; \
+	echo $(CC) -fpic -DPIC -c $(CFLAGS) $(CPPFLAGS) $< -o $@ ; \
+	$(CC) -fpic -DPIC -c $(CFLAGS) $(CPPFLAGS) $< -o $@ ; \
+
 $(OBJDIR)/%.o : %.cc $(OBJDIR)
 	"rm" -f $@ ; \
 	echo $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ ; \
@@ -136,6 +147,7 @@
 	"rm" -f $(DOBJS) $(OBJDIR)/daemon; \
 	echo Deleting library objects; \
 	"rm" -f $(LOBJS) $(OBJDIR)/libglunix.*
+	"rm" -f $(SOBJS) $(OBJDIR)/libglunix.*
 
 tags:
 	echo 'etags -C ../include/*.h ../include/glib/*.h */*.h */*.cc */*.c'
@@ -143,7 +155,7 @@
 
 master:  $(OBJDIR)/master
 daemon:  $(OBJDIR)/daemon
-library: $(OBJDIR)/libglunix.so
+library: $(OBJDIR)/libglunix.so.1.0
 
 install: master daemon library
 	$(MKDIR) $(BINDIR); \
@@ -155,9 +167,9 @@
 	$(INSTALL_BIN) $(OBJDIR)/daemon $(BINDIR)/daemon; \
 	echo Installing library; \
 	$(MKDIR) $(LIBDIR); \
-	$(INSTALL_BIN) $(LIBDIR)/libglunix.so $(LIBDIR)/libglunix.so.old; \
+	$(INSTALL_BIN) $(LIBDIR)/libglunix.so.1.0 $(LIBDIR)/libglunix.so.old; \
 	$(INSTALL_BIN) $(LIBDIR)/libglunix.a $(LIBDIR)/libglunix.a.old; \
-	$(INSTALL_BIN) $(OBJDIR)/libglunix.so $(LIBDIR)/libglunix.so; \
+	$(INSTALL_BIN) $(OBJDIR)/libglunix.so.1.0 $(LIBDIR)/libglunix.so.1.0; \
 	$(INSTALL_BIN) $(OBJDIR)/libglunix.a $(LIBDIR)/libglunix.a
 endif
 
@@ -165,30 +177,32 @@
 	echo " " ; \
 	echo Linking master; \
 	$(INSTALL_BIN) $(OBJDIR)/master $(OBJDIR)/master.old ; \
-	echo $(PURIFY_COMMAND) $(LD) -g -o $(OBJDIR)/master $(MOBJS) $(MLDLIBS) ; \
-	$(PURIFY_COMMAND) $(LD) -g -o $(OBJDIR)/master $(MOBJS) $(MLDLIBS); \
+	echo $(PURIFY_COMMAND) $(CC) -o $(OBJDIR)/master $(MOBJS) $(MLDLIBS) ; \
+	$(PURIFY_COMMAND) $(CC) -o $(OBJDIR)/master $(MOBJS) $(MLDLIBS); \
 	echo Master done.
 
 $(OBJDIR)/daemon: $(DOBJS)
 	echo " " ; \
 	echo Linking daemon; \
 	$(INSTALL_BIN) $(OBJDIR)/daemon $(OBJDIR)/daemon.old ; \
-	echo $(PURIFY_COMMAND) $(LD) -g -o $(OBJDIR)/daemon $(DOBJS) $(DLDLIBS) ; \
-	$(PURIFY_COMMAND) $(LD) -g -o $(OBJDIR)/daemon $(DOBJS) $(DLDLIBS); \
+	echo $(PURIFY_COMMAND) $(CC) -o $(OBJDIR)/daemon $(DOBJS) $(DLDLIBS) ; \
+	$(PURIFY_COMMAND) $(CC) -o $(OBJDIR)/daemon $(DOBJS) $(DLDLIBS); \
 	echo Daemon done.
 
-$(OBJDIR)/libglunix.so: $(LOBJS)
+$(OBJDIR)/libglunix.so.1.0: $(LOBJS) $(SOBJS)
 	echo " " ; \
 	echo "Building library" ; \
 	rm -f $(OBJDIR)/libglunix.a ; \
 	echo ar ruc $(OBJDIR)/libglunix.a $(LOBJS) ; \
 	ar ruc $(OBJDIR)/libglunix.a $(LOBJS) ; \
-	echo $(LD) -g -o $(OBJDIR)/libglunix.so -G $(LOBJS) ; \
-	$(LD) -g -o $(OBJDIR)/libglunix.so -G $(LOBJS) ; \
+	echo ranlib $(OBJDIR)/libglunix.a ; \
+	ranlib $(OBJDIR)/libglunix.a ; \
+	echo $(LD) -x -Bshareable -Bforcearchive -o $(OBJDIR)/libglunix.so.1.0 $(SOBJS) ; \
+	$(LD) -x -Bshareable -Bforcearchive -o $(OBJDIR)/libglunix.so.1.0 $(SOBJS) ; \
 	touch $(OBJDIR)/libglunix.a ; \
-	touch $(OBJDIR)/libglunix.so ; \
-	chgrp glunix $(OBJDIR)/libglunix.a $(OBJDIR)/libglunix.so; \
-	chmod g+w $(OBJDIR)/libglunix.a $(OBJDIR)/libglunix.so; \
+	touch $(OBJDIR)/libglunix.so.1.0 ; \
+	chgrp glunix $(OBJDIR)/libglunix.a $(OBJDIR)/libglunix.so.1.0; \
+	chmod g+w $(OBJDIR)/libglunix.a $(OBJDIR)/libglunix.so.1.0; \
 	echo Library done.
 
 #$(sort $(MOBJS) $(DOBJS) $(LOBJS)): $(OBJDIR)
@@ -202,7 +216,7 @@
 	echo Rebuilding dependencies.; \
 	touch $@.new; \
 	echo makedepend -f$@ -p$(OBJDIR)/ -- $(CFLAGS) -- ... ; \
-	makedepend -f$@.new -w256 -p$(OBJDIR)/ -- $(CFLAGS) -- $(DEPEND_SRC) ;\
+	../../makedepend/makedepend -f$@.new -w256 -p$(OBJDIR)/ -- $(CFLAGS) -- $(DEPEND_SRC) ;\
 	cat $@.new | sed -e 's,/usr/include[^ ]*,,g' | sed -e 's,[^:]*: *$$,,' | sed -e 's,$(OBJDIR)/[^/]*,$(OBJDIR),' | uniq >$@ ; \
 	rm -f $@.new.bak $@.new ; \
 	echo " " ; \
