$NetBSD: patch-ab,v 1.19 2012/02/16 18:56:23 hans Exp $

--- src/glu/sgi/Makefile.orig	2008-08-25 14:46:42.000000000 +0000
+++ src/glu/sgi/Makefile
@@ -8,7 +8,8 @@ include $(TOP)/configs/current
 
 GLU_MAJOR = 1
 GLU_MINOR = 3
-GLU_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
+GLU_TINY= 0 # What is the point of having such a strange versioning scheme?
+	    # It breaks libtool, but I hate to say it: libtool is right!
 
 INCDIRS = -I$(TOP)/include -Iinclude -Iinternals -Ilibnurbs/internals -Ilibnurbs/interface -Ilibnurbs/nurbtess
 
@@ -115,10 +116,12 @@ OBJECTS = $(C_OBJECTS) $(CC_OBJECTS)
 ##### RULES #####
 
 .c.o:
-	$(CC) -c $(INCDIRS) $(CFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $@
+	$(LIBTOOL) --mode=compile --tag=CC $(CC) -c $(INCDIRS) \
+		$(CFLAGS) $(COPTS) -DNDEBUG -DLIBRARYBUILD $< -o $(@:.o=.lo)
 
 .cc.o:
-	$(CXX) -c $(INCDIRS) $(CXXFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $@
+	$(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(INCDIRS) \
+		$(CXXFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $(@:.o=.lo)
 
 
 ##### TARGETS #####
@@ -134,14 +137,19 @@ default:
 $(TOP)/$(LIB_DIR):
 	-mkdir $(TOP)/$(LIB_DIR)
 
-# Make the library:
-$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
-	$(MKLIB) -o $(GLU_LIB) -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
-		-major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \
-		-cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
-		-exports glu.exports -id $(INSTALL_LIB_DIR)/lib$(GLU_LIB).$(GLU_MAJOR).dylib \
-		$(GLU_LIB_DEPS) $(OBJECTS)
+# Make the exports file with the mangled or unmangled names per $CFLAGS
+glu.exports: glu.exports.in
+	$(CC) -E -I $(TOP)/include/GL $(CFLAGS) -xc-header $< | \
+		awk '/^[^#]+/ {print}' > $@
+
 
+# Make the library:
+$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS) glu.exports
+	$(LIBTOOL) --mode=link $(CXX) \
+		-o $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME:.so=.la) $(LDFLAGS) \
+		-rpath $(PREFIX)/lib $(GLU_LIB_DEPS) $(OBJECTS:.o=.lo) \
+		-version-info $(GLU_MAJOR):$(GLU_MINOR):$(GLU_TINY) \
+		-export-symbols glu.exports
 
 clean:
 	-rm -f *.o */*.o */*/*.o
