Eric Plante's updates for OSMesa16.
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 10 Oct 2003 17:58:38 +0000 (17:58 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 10 Oct 2003 17:58:38 +0000 (17:58 +0000)
Make-config
Makefile.X11
bin/mklib
src/mesa/Makefile.OSMesa16 [new file with mode: 0644]

index d81ce51ae4a4d89592f62d2d9192dc5c8d30b80d..c32a9d5e95b45375812d31f796ea2d2c3216e0bb 100644 (file)
@@ -678,10 +678,22 @@ linux-osmesa16:
        "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
index 39fae1ccffb26c528927f9020bcb4d9abe901b83..83e17bca1f3c2c9dee0b7d1e1b89f586095eef45 100644 (file)
@@ -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 @@ SHELL = /bin/sh
 
 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 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 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-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 @@ linux-ggi-install linux-x86-ggi-install:
 #      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 @@ LIB_FILES = \
        $(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                         \
index b207ade5e13d4441cb814335a5438fa04650a9a8..a0d6115f2ef8174dff8aab91584cfa72de4ba519 100755 (executable)
--- a/bin/mklib
+++ b/bin/mklib
@@ -110,29 +110,40 @@ case $ARCH in
 
     '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 [ $CPLUSPLUS = 1 ] ; then
-           LINK="g++"
-       else
-           LINK="gcc"
-       fi
-
-       # 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"
+        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}"
+
+            echo "mklib: Making Linux shared library: " ${LIBNAME}.so.${VERSION}
+
+            if [ $CPLUSPLUS = 1 ] ; then
+                LINK="g++"
+            else
+                LINK="gcc"
+            fi
+
+            # 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 (file)
index 0000000..f451685
--- /dev/null
@@ -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