Eric Plante's updates for OSMesa16.
diff --git a/Make-config b/Make-config
index d81ce51..c32a9d5 100644
--- a/Make-config
+++ b/Make-config
@@ -678,12 +678,24 @@
 	"OSMESA16_LIB = libOSMesa16.so" \
 	"CC = gcc" \
 	"CXX = g++" \
-	"CFLAGS = -O3 -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
-	"CXXFLAGS = -O3 -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE" \
+	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
+	"CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE" \
 	"GLUT_CFLAGS = -fexceptions" \
 	"GL_LIB_DEPS = -lm -lpthread" \
 	"APP_LIB_DEPS = -lOSMesa16 -lGL"
 
+linux-osmesa16-static:
+	$(MAKE) $(MFLAGS) -f Makefile.OSMesa16 targets \
+	"OSMESA16_LIB = libOSMesa16.a" \
+	"CC = gcc" \
+	"CXX = g++" \
+	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
+	"CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE" \
+	"GLUT_CFLAGS = -fexceptions" \
+	"GL_LIB_DEPS = -lm -lpthread" \
+	"MAKELIB_FLAGS = -static" \
+	"APP_LIB_DEPS = -lOSMesa16 -lGL"
+
 # 32-bit/channel Mesa using OSMesa driver
 linux-osmesa32:
 	$(MAKE) $(MFLAGS) -f Makefile.OSMesa16 targets \
diff --git a/Makefile.X11 b/Makefile.X11
index 39fae1c..83e17bc 100644
--- a/Makefile.X11
+++ b/Makefile.X11
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.90 2003/10/03 14:03:14 brianp Exp $
+# $Id: Makefile.X11,v 1.91 2003/10/10 17:58:38 brianp Exp $
 
 # Mesa 3-D graphics library
 # Version:  5.1
@@ -33,69 +33,70 @@
 
 default:
 	@echo "Type one of the following:"
-	@echo "  make aix                  for IBM RS/6000 with AIX"
-	@echo "  make aix-sl               for IBM RS/6000, make shared libs"
-	@echo "  make beos-r4              for BeOS R4"
-	@echo "  make cygnus               for Win95/NT using Cygnus-Win32"
-	@echo "  make cygnus-linux         for Win95/NT using Cygnus-Win32 under Linux"
-	@echo "  make darwin               for Darwin - Mac OS X"
-	@echo "  make freebsd              for FreeBSD systems with GCC"
-	@echo "  make freebsd-386          for FreeBSD systems with GCC, w/ Intel assembly"
-	@echo "  make gcc-sl               for a generic system with GCC for shared libs"
-	@echo "  make hpux9                for HP systems with HPUX 9.x"
-	@echo "  make hpux9-sl             for HP systems with HPUX 9.x, make shared libs"
-	@echo "  make hpux9-gcc            for HP systems with HPUX 9.x using GCC"
-	@echo "  make hpux9-gcc-sl         for HP systems with HPUX 9.x, GCC, make shared libs"
-	@echo "  make hpux10               for HP systems with HPUX 10.x and 11.x"
-	@echo "  make hpux10-sl            for HP systems with HPUX 10.x and 11.x, shared libs"
-	@echo "  make hpux10-gcc           for HP systems with HPUX 10.x w/ GCC"
-	@echo "  make hpux10-gcc-sl        for HP systems with HPUX 10.x w/ GCC, shared libs"
-	@echo "  make irix6-o32            for SGI systems with IRIX 6.x, make o32-bit libs"
-	@echo "  make irix6-o32-dso        for SGI systems with IRIX 6.x, make o32-bit DSOs"
-	@echo "  make irix6-n32            for SGI systems with IRIX 6.x, make n32-bit libs"
-	@echo "  make irix6-n32-dso        for SGI systems with IRIX 6.x, make n32-bit DSOs"
-	@echo "  make irix6-gcc-n32-sl     for SGI systems with IRIX 6.x, GCC, make n32 DSOs"
-	@echo "  make irix6-64             for SGI systems with IRIX 6.x, make 64-bit libs"
-	@echo "  make irix6-64-dso         for SGI systems with IRIX 6.x, make 64-bit DSOs"
+	@echo "  make aix                   for IBM RS/6000 with AIX"
+	@echo "  make aix-sl                for IBM RS/6000, make shared libs"
+	@echo "  make beos-r4               for BeOS R4"
+	@echo "  make cygnus                for Win95/NT using Cygnus-Win32"
+	@echo "  make cygnus-linux          for Win95/NT using Cygnus-Win32 under Linux"
+	@echo "  make darwin                for Darwin - Mac OS X"
+	@echo "  make freebsd               for FreeBSD systems with GCC"
+	@echo "  make freebsd-386           for FreeBSD systems with GCC, w/ Intel assembly"
+	@echo "  make gcc-sl                for a generic system with GCC for shared libs"
+	@echo "  make hpux9                 for HP systems with HPUX 9.x"
+	@echo "  make hpux9-sl              for HP systems with HPUX 9.x, make shared libs"
+	@echo "  make hpux9-gcc             for HP systems with HPUX 9.x using GCC"
+	@echo "  make hpux9-gcc-sl          for HP systems with HPUX 9.x, GCC, make shared libs"
+	@echo "  make hpux10                for HP systems with HPUX 10.x and 11.x"
+	@echo "  make hpux10-sl             for HP systems with HPUX 10.x and 11.x, shared libs"
+	@echo "  make hpux10-gcc            for HP systems with HPUX 10.x w/ GCC"
+	@echo "  make hpux10-gcc-sl         for HP systems with HPUX 10.x w/ GCC, shared libs"
+	@echo "  make irix6-o32             for SGI systems with IRIX 6.x, make o32-bit libs"
+	@echo "  make irix6-o32-dso         for SGI systems with IRIX 6.x, make o32-bit DSOs"
+	@echo "  make irix6-n32             for SGI systems with IRIX 6.x, make n32-bit libs"
+	@echo "  make irix6-n32-dso         for SGI systems with IRIX 6.x, make n32-bit DSOs"
+	@echo "  make irix6-gcc-n32-sl      for SGI systems with IRIX 6.x, GCC, make n32 DSOs"
+	@echo "  make irix6-64              for SGI systems with IRIX 6.x, make 64-bit libs"
+	@echo "  make irix6-64-dso          for SGI systems with IRIX 6.x, make 64-bit DSOs"
 
-	@echo "  make linux                for Linux"
-	@echo "  make linux-x86            for Linux with x86 optimizations"
-	@echo "  make linux-ggi            for Linux with libggi driver"
-	@echo "  make linux-x86-ggi        for Linux with libggi driver and x86 optimizations"
-	@echo "  make linux-glide          for Linux with 3Dfx Glide driver"
-	@echo "  make linux-x86-glide      for Linux with 3Dfx Glide driver and x86 opts"
-	@echo "  make linux-alpha          for Linux with Alpha optimizations"
-	@echo "  make linux-alpha-static   for Linux with Alpha opts, make static libs"
-	@echo "  make linux-ppc            for Linux with PowerPC opts"
-	@echo "  make linux-ppc-static     for Linux with PowerPC opts, make static libs"
-	@echo "  make linux-sparc          for Linux with Sparc optimzations"
-	@echo "  make linux-sparc5         for Linux with Sparc5 optimizations"
-	@echo "  make linux-sparc-ultra    for Linux with UltraSparc optimizations"
-	@echo "  make linux-osmesa16       for 16-bit/channel OSMesa"
-	@echo "  make linux-osmesa32       for 32-bit/channel OSMesa"
-	@echo "  make linux-solo           for Linux standalone with dri drivers"
-	@echo "  make linux-icc            for Linux with the Intel C/C++ compiler"
-	@echo "  make lynxos               for LynxOS systems with GCC"
-	@echo "  make mklinux              for Linux on Power Macintosh"
-	@echo "  make netbsd               for NetBSD 1.0 systems with GCC"
-	@echo "  make openbsd              for OpenBSD systems"
-	@echo "  make openstep             for OpenStep/MacOSX Server systems"
-	@echo "  make osf1                 for DEC Alpha systems with OSF/1"
-	@echo "  make qnx                  for QNX V4 systems with Watcom compiler"
-	@echo "  make solaris-x86          for PCs with Solaris"
-	@echo "  make solaris-x86-gcc      for PCs with Solaris using GCC"
-	@echo "  make sunos4               for Suns with SunOS 4.x"
-	@echo "  make sunos4-sl            for Suns with SunOS 4.x, make shared libs"
-	@echo "  make sunos4-gcc           for Suns with SunOS 4.x and GCC"
-	@echo "  make sunos4-gcc-sl        for Suns with SunOS 4.x, GCC, make shared libs"
-	@echo "  make sunos5               for Suns with SunOS 5.x"
-	@echo "  make sunos5-smp           for Suns with SunOS 5.x, SMP optimization"
-	@echo "  make sunos5-gcc           for Suns with SunOS 5.x and GCC"
-	@echo "  make ultrix-gcc           for DEC systems with Ultrix and GCC"
-	@echo "  make unixware             for PCs running UnixWare"
-	@echo "  make unixware-shared      for PCs running UnixWare, shared libs"
-	@echo "  make clean                remove .o files"
-	@echo "  make realclean            remove .o, library and executable files"
+	@echo "  make linux                 for Linux"
+	@echo "  make linux-x86             for Linux with x86 optimizations"
+	@echo "  make linux-ggi             for Linux with libggi driver"
+	@echo "  make linux-x86-ggi         for Linux with libggi driver and x86 optimizations"
+	@echo "  make linux-glide           for Linux with 3Dfx Glide driver"
+	@echo "  make linux-x86-glide       for Linux with 3Dfx Glide driver and x86 opts"
+	@echo "  make linux-alpha           for Linux with Alpha optimizations"
+	@echo "  make linux-alpha-static    for Linux with Alpha opts, make static libs"
+	@echo "  make linux-ppc             for Linux with PowerPC opts"
+	@echo "  make linux-ppc-static      for Linux with PowerPC opts, make static libs"
+	@echo "  make linux-sparc           for Linux with Sparc optimzations"
+	@echo "  make linux-sparc5          for Linux with Sparc5 optimizations"
+	@echo "  make linux-sparc-ultra     for Linux with UltraSparc optimizations"
+	@echo "  make linux-osmesa16        for 16-bit/channel OSMesa"
+	@echo "  make linux-osmesa16-static for 16-bit/channel OSMesa, make static libs"
+	@echo "  make linux-osmesa32        for 32-bit/channel OSMesa"
+	@echo "  make linux-solo            for Linux standalone with dri drivers"
+	@echo "  make linux-icc             for Linux with the Intel C/C++ compiler"
+	@echo "  make lynxos                for LynxOS systems with GCC"
+	@echo "  make mklinux               for Linux on Power Macintosh"
+	@echo "  make netbsd                for NetBSD 1.0 systems with GCC"
+	@echo "  make openbsd               for OpenBSD systems"
+	@echo "  make openstep              for OpenStep/MacOSX Server systems"
+	@echo "  make osf1                  for DEC Alpha systems with OSF/1"
+	@echo "  make qnx                   for QNX V4 systems with Watcom compiler"
+	@echo "  make solaris-x86           for PCs with Solaris"
+	@echo "  make solaris-x86-gcc       for PCs with Solaris using GCC"
+	@echo "  make sunos4                for Suns with SunOS 4.x"
+	@echo "  make sunos4-sl             for Suns with SunOS 4.x, make shared libs"
+	@echo "  make sunos4-gcc            for Suns with SunOS 4.x and GCC"
+	@echo "  make sunos4-gcc-sl         for Suns with SunOS 4.x, GCC, make shared libs"
+	@echo "  make sunos5                for Suns with SunOS 5.x"
+	@echo "  make sunos5-smp            for Suns with SunOS 5.x, SMP optimization"
+	@echo "  make sunos5-gcc            for Suns with SunOS 5.x and GCC"
+	@echo "  make ultrix-gcc            for DEC systems with Ultrix and GCC"
+	@echo "  make unixware              for PCs running UnixWare"
+	@echo "  make unixware-shared       for PCs running UnixWare, shared libs"
+	@echo "  make clean                 remove .o files"
+	@echo "  make realclean             remove .o, library and executable files"
 
 
 
@@ -224,11 +225,11 @@
 #	echo ".include $(DESTDIR)/etc/ggi/ggimesa.conf" >> $(DESTDIR)/etc/ggi/libggi.conf ; \
 #	fi
 
-linux-osmesa16 linux-osmesa32:
+linux-osmesa16 linux-osmesa16-static linux-osmesa32:
 	-mkdir lib
-	if [ -d src ] ; then touch src/depend ; fi
-	if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi
-	
+	if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
+	if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi
+
 linux-solo:
 	-mkdir lib
 	if [ -d src/mesa     ] ; then touch src/mesa/depend     ; fi
@@ -440,7 +441,7 @@
 	$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/Makefile.am		\
 	$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/Makefile.in		\
 	$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h			\
-  	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.am			\
+	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.am			\
 	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.in			\
 	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win			\
 	$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def				\
diff --git a/bin/mklib b/bin/mklib
index b207ade..a0d6115 100755
--- a/bin/mklib
+++ b/bin/mklib
@@ -110,29 +110,40 @@
 
     'Linux')
 	LIBNAME="lib${LIBNAME}"     # prefix with "lib"
-	OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
-	VERSION="${MAJOR}.${MINOR}.${PATCH}"
 
-	echo "mklib: Making Linux shared library: " ${LIBNAME}.so.${VERSION}
+        if [ $STATIC = 1 ] ; then
+            echo "mklib: Making Linux static library: " ${LIBNAME}.a
+            LINK="ar"
+            OPTS="-ruv"
+            # make lib
+            ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
+            # finish up
+            FINAL_LIBS="${LIBNAME}.a"
+        else
+            OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
+            VERSION="${MAJOR}.${MINOR}.${PATCH}"
 
-	if [ $CPLUSPLUS = 1 ] ; then
-	    LINK="g++"
-	else
-	    LINK="gcc"
-	fi
+            echo "mklib: Making Linux shared library: " ${LIBNAME}.so.${VERSION}
 
-	# rm any old libs
-	rm -f ${LIBNAME}.so.${VERSION}
-	rm -f ${LIBNAME}.so.${MAJOR}
-	rm -f ${LIBNAME}.so
+            if [ $CPLUSPLUS = 1 ] ; then
+                LINK="g++"
+            else
+                LINK="gcc"
+            fi
 
-	# make lib
-	${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
-	# make usual symlinks
-	ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
-	ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
-	# finish up
-	FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
+            # rm any old libs
+            rm -f ${LIBNAME}.so.${VERSION}
+            rm -f ${LIBNAME}.so.${MAJOR}
+            rm -f ${LIBNAME}.so
+
+            # make lib
+            ${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
+            # make usual symlinks
+            ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
+            ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
+            # finish up
+            FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
+        fi
 	;;
 
     'SunOS')
diff --git a/src/mesa/Makefile.OSMesa16 b/src/mesa/Makefile.OSMesa16
new file mode 100644
index 0000000..f451685
--- /dev/null
+++ b/src/mesa/Makefile.OSMesa16
@@ -0,0 +1,300 @@
+
+# Mesa 3-D graphics library
+# Version:  5.1
+# Copyright (C) 1995-2003  Brian Paul
+
+# Makefile for building Mesa for 16/32-bit/channel rendering with the OSMesa
+# driver.
+
+
+##### MACROS #####
+
+TOP = ../..
+
+GL_MAJOR = 1
+GL_MINOR = 4
+GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
+
+GL_LIB_NAME = "GL"  # may be overridden in Make-config
+OSMESA_LIB_NAME = "OSMesa16"  # may be overridden in Make-config
+
+VPATH = RCS
+
+LIBDIR = $(TOP)/lib
+
+
+### Lists of source files
+
+MAIN_SOURCES = \
+	main/api_arrayelt.c \
+	main/api_loopback.c \
+	main/api_noop.c \
+	main/api_validate.c \
+	main/accum.c \
+	main/arbprogram.c \
+	main/arbfragparse.c \
+	main/arbvertparse.c \
+	main/attrib.c \
+	main/blend.c \
+	main/bufferobj.c \
+	main/buffers.c \
+	main/clip.c \
+	main/colortab.c \
+	main/context.c \
+	main/convolve.c \
+	main/debug.c \
+	main/depth.c \
+	main/dispatch.c \
+	main/dlist.c \
+	main/drawpix.c \
+	main/enable.c \
+	main/enums.c \
+	main/eval.c \
+	main/extensions.c \
+	main/feedback.c \
+	main/fog.c \
+	main/get.c \
+	main/hash.c \
+	main/hint.c \
+	main/histogram.c \
+	main/image.c \
+	main/imports.c \
+	main/light.c \
+	main/lines.c \
+	main/matrix.c \
+	main/nvprogram.c \
+	main/nvfragparse.c \
+	main/nvvertexec.c \
+	main/nvvertparse.c \
+	main/occlude.c \
+	main/pixel.c \
+	main/points.c \
+	main/polygon.c \
+	main/program.c \
+	main/rastpos.c \
+	main/state.c \
+	main/stencil.c \
+	main/texcompress.c \
+	main/texformat.c \
+	main/teximage.c \
+	main/texobj.c \
+	main/texstate.c \
+	main/texstore.c \
+	main/texutil.c \
+	main/varray.c \
+	main/vtxfmt.c
+
+GLAPI_SOURCES = \
+	glapi/glapi.c \
+	glapi/glthread.c
+
+MATH_SOURCES = \
+	math/m_debug_clip.c \
+	math/m_debug_norm.c \
+	math/m_debug_xform.c \
+	math/m_eval.c \
+	math/m_matrix.c \
+	math/m_translate.c \
+	math/m_vector.c \
+	math/m_xform.c
+
+ARRAY_CACHE_SOURCES = \
+	array_cache/ac_context.c \
+	array_cache/ac_import.c
+
+SWRAST_SOURCES = \
+	swrast/s_aaline.c \
+	swrast/s_aatriangle.c \
+	swrast/s_accum.c \
+	swrast/s_alpha.c \
+	swrast/s_alphabuf.c \
+	swrast/s_bitmap.c \
+	swrast/s_blend.c \
+	swrast/s_buffers.c \
+	swrast/s_copypix.c \
+	swrast/s_context.c \
+	swrast/s_depth.c \
+	swrast/s_drawpix.c \
+	swrast/s_feedback.c \
+	swrast/s_fog.c \
+	swrast/s_imaging.c \
+	swrast/s_lines.c \
+	swrast/s_logic.c \
+	swrast/s_masking.c \
+	swrast/s_nvfragprog.c \
+	swrast/s_pixeltex.c \
+	swrast/s_points.c \
+	swrast/s_readpix.c \
+	swrast/s_span.c \
+	swrast/s_stencil.c \
+	swrast/s_texture.c \
+	swrast/s_texstore.c \
+	swrast/s_triangle.c \
+	swrast/s_zoom.c
+
+SWRAST_SETUP_SOURCES = \
+	swrast_setup/ss_context.c \
+	swrast_setup/ss_triangle.c \
+	swrast_setup/ss_vb.c
+
+TNL_SOURCES = \
+	tnl/t_array_api.c \
+	tnl/t_array_import.c \
+	tnl/t_context.c \
+	tnl/t_eval_api.c \
+	tnl/t_imm_alloc.c \
+	tnl/t_imm_api.c \
+	tnl/t_imm_debug.c \
+	tnl/t_imm_dlist.c \
+	tnl/t_imm_elt.c \
+	tnl/t_imm_eval.c \
+	tnl/t_imm_exec.c \
+	tnl/t_imm_fixup.c \
+	tnl/t_pipeline.c \
+	tnl/t_vb_fog.c \
+	tnl/t_vb_light.c \
+	tnl/t_vb_normals.c \
+	tnl/t_vb_points.c \
+	tnl/t_vb_program.c \
+	tnl/t_vb_render.c \
+	tnl/t_vb_texgen.c \
+	tnl/t_vb_texmat.c \
+	tnl/t_vb_vertex.c
+
+ASM_C_SOURCES = \
+	x86/x86.c \
+	x86/common_x86.c \
+	x86/3dnow.c \
+	x86/sse.c \
+	sparc/sparc.c
+
+X86_SOURCES =			\
+	x86/common_x86_asm.S	\
+	x86/glapi_x86.S		\
+	x86/x86_xform2.S	\
+	x86/x86_xform3.S	\
+	x86/x86_xform4.S	\
+	x86/x86_cliptest.S	\
+	x86/mmx_blend.S		\
+	x86/3dnow_xform1.S	\
+	x86/3dnow_xform2.S	\
+	x86/3dnow_xform3.S	\
+	x86/3dnow_xform4.S	\
+	x86/3dnow_normal.S	\
+	x86/sse_xform1.S	\
+	x86/sse_xform2.S	\
+	x86/sse_xform3.S	\
+	x86/sse_xform4.S	\
+	x86/sse_normal.S
+
+SPARC_SOURCES =			\
+	sparc/clip.S		\
+	sparc/glapi_sparc.S	\
+	sparc/norm.S		\
+	sparc/xform.S
+
+### Groups of files
+
+CORE_SOURCES = \
+	$(MAIN_SOURCES)		\
+	$(GLAPI_SOURCES)	\
+	$(MATH_SOURCES)		\
+	$(ARRAY_CACHE_SOURCES)	\
+	$(SWRAST_SOURCES)	\
+	$(SWRAST_SETUP_SOURCES)	\
+	$(TNL_SOURCES)		\
+	$(ASM_C_SOURCES)
+
+# This will probably get set to $(X86_SOURCES) in Make-config:
+ASM_SOURCES =
+
+OSMESA_DRIVER_SOURCES = \
+	drivers/osmesa/osmesa.c
+
+### Object files
+
+CORE_OBJECTS = $(CORE_SOURCES:.c=.o)
+
+ASM_OBJECTS = $(ASM_SOURCES:.S=.o)
+
+OSMESA_OBJECTS = $(OSMESA_DRIVER_SOURCES:.c=.o)
+
+OBJECTS = \
+	$(CORE_OBJECTS) \
+	$(ASM_OBJECTS) \
+	$(OSMESA_OBJECTS)
+
+
+### Include directories
+
+INCLUDE_DIRS = \
+	-I$(TOP)/include \
+	-I$(TOP)/src/mesa \
+	-I$(TOP)/src/mesa/main \
+	-I$(TOP)/src/mesa/glapi \
+	-I$(TOP)/src/mesa/math \
+	-I$(TOP)/src/mesa/transform \
+	-I$(TOP)/src/mesa/swrast \
+	-I$(TOP)/src/mesa/swrast_setup
+
+##### RULES #####
+
+.c.o:
+	$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+.S.o:
+	$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+
+x86/matypes.h: main/mtypes.h tnl/t_context.h x86/gen_matypes.c
+	$(CC) $(INCLUDE_DIRS) $(CFLAGS) x86/gen_matypes.c -o x86/gen_matypes
+	./x86/gen_matypes > x86/matypes.h
+	rm -f x86/gen_matypes x86/*.o
+
+x86/common_x86_asm.o: x86/matypes.h
+
+
+
+##### TARGETS #####
+
+default:
+	@echo "Specify a target configuration"
+
+
+targets: $(LIBDIR)/$(OSMESA16_LIB)
+
+# Make the 16-bit/channel OSMesa library
+$(LIBDIR)/$(OSMESA16_LIB): $(OBJECTS)
+	$(TOP)/bin/mklib $(MAKELIB_FLAGS) -o $(OSMESA_LIB_NAME) -major $(GL_MAJOR) \
+		-minor $(GL_MINOR) -patch $(GL_TINY) -install $(LIBDIR) \
+		$(GL_LIB_DEPS) $(OBJECTS)
+
+
+
+
+#
+# Run 'make dep' to update the dependencies if you change what's included
+# by any source file.
+#
+dep: $(CORE_SOURCES) $(OSMESA_DRIVER_SOURCES) $(ASM_SOURCES)
+	makedepend -fdepend -Y $(INCLUDE_DIRS) -DGGI -DSVGA -DFX \
+		$(CORE_SOURCES) $(OSMESA_DRIVER_SOURCES) \
+		$(ASM_SOURCES)
+
+dep: $(CORE_SOURCES)
+	makedepend -fdepend -Y -I../include $(CORE_SOURCES)
+
+tags:
+	etags `find . -name \*.[ch]` `find ../include`
+
+
+# Remove .o and backup files
+clean:
+	-rm *.a
+	-rm -f */*.o */*~ */*.o */*~
+	-rm -f drivers/*/*.o
+
+
+include $(TOP)/Make-config
+
+include depend