$NetBSD$

--- ./src/mesa/drivers/dri/Makefile.template.orig	2009-03-13 05:28:49 +0200
+++ ./src/mesa/drivers/dri/Makefile.template	2009-05-17 15:52:13 +0300
@@ -1,6 +1,6 @@
 # -*-makefile-*-
 
-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
+MESA_MODULES = $(TOP)/src/mesa/libmesa.la
 
 COMMON_SOURCES = \
         ../common/utils.c \
@@ -48,25 +48,22 @@ SHARED_INCLUDES = \
 ##### RULES #####
 
 .c.o:
-	$(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
+	$(LIBTOOL) --mode=compile --tag=CC $(CC) -c -prefer-pic \
+		$(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $(@:.o=.lo)
 
 .S.o:
-	$(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES)  $< -o $@
+	$(LIBTOOL) --mode=compile --tag=CC $(CC) -c -prefer-pic \
+		$(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $(@:.o=.lo)
 
 
 ##### TARGETS #####
 
-default: symlinks depend $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME)
-
-
-$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
-	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
-
-
-$(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
-	$(INSTALL) $(LIBNAME) $(TOP)/$(LIB_DIR) 
+default: symlinks depend $(TOP)/$(LIB_DIR)/$(LIBNAME)
 
+$(TOP)/$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+	$(LIBTOOL) --mode=link $(CC) -o $(TOP)/$(LIB_DIR)/$(LIBNAME:.so=.la) \
+	$(OBJECTS:.o=.lo) $(WINOBJ:.o=.lo) $(DRI_LIB_DEPS) \
+	$(MESA_MODULES:.a=.la) -rpath $(PREFIX)/lib -module -avoid-version
 
 depend: $(C_SOURCES) $(ASM_SOURCES) $(SYMLINKS)
 	touch depend
@@ -85,9 +82,11 @@ clean:
 	-rm -f depend depend.bak
 
 
-install: $(LIBNAME)
-	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
-	$(INSTALL) -m 755 $(LIBNAME) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+install: $(TOP)/$(LIB_DIR)/$(LIBNAME)
+	$(BSD_INSTALL_LIB_DIR) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+	$(LIBTOOL) --mode=install \
+		$(BSD_INSTALL_LIB) $(TOP)/$(LIB_DIR)/$(LIBNAME:.so=.la) \
+		$(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
 
 
 -include depend
