aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/GL/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver/GL/mesa')
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/GLcore/Imakefile52
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/Imakefile26
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/Imakefile.inc51
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/X/Imakefile63
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/X/Imakefile.inc98
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c950
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.c151
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.h105
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/X/xf86glxint.h101
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile36
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile.inc28
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/main/Imakefile40
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/main/Imakefile.inc481
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/math/Imakefile35
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/math/Imakefile.inc76
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/Imakefile40
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/Imakefile.inc100
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile37
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile.inc23
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile40
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile.inc84
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile30
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile.inc12
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile42
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile.inc212
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile34
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile.inc30
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile45
-rw-r--r--nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile.inc219
29 files changed, 3241 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/GL/mesa/GLcore/Imakefile b/nx-X11/programs/Xserver/GL/mesa/GLcore/Imakefile
new file mode 100644
index 000000000..5fb93b364
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/GLcore/Imakefile
@@ -0,0 +1,52 @@
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define MesaInXServer
+#define MesaBuildDir ../main/
+#define MesaACBuildDir ../array_cache/
+#define MesaMathBuildDir ../math/
+#define MesaSwrastBuildDir ../swrast/
+#define MesaSwrastSetupBuildDir ../swrast_setup/
+#define MesaTnlBuildDir ../tnl/
+#define MesaShaderBuildDir ../shader/
+#define MesaGrammarBuildDir ../shader/grammar/
+#define MesaSlangBuildDir ../shader/slang/
+#define MesaXBuildDir ../X/
+
+#include "../array_cache/Imakefile.inc"
+#include "../swrast/Imakefile.inc"
+#include "../swrast_setup/Imakefile.inc"
+#include "../tnl/Imakefile.inc"
+#include "../main/Imakefile.inc"
+#include "../math/Imakefile.inc"
+#include "../shader/Imakefile.inc"
+#include "../shader/grammar/Imakefile.inc"
+#include "../shader/slang/Imakefile.inc"
+#include "../X/Imakefile.inc"
+#include "../Imakefile.inc"
+
+ XOBJS = ../X/?*.o
+
+ OBJS = $(COREMESAOBJS) $(MOBJS)
+
+ DONES = ../main/DONE ../X/DONE ../array_cache/DONE \
+ ../math/DONE ../swrast/DONE ../swrast_setup/DONE \
+ ../tnl/DONE ../shader/DONE ../shader/grammar/DONE \
+ ../shader/slang/DONE
+
+ INCLUDES = -I$(INCLUDESRC) -I$(XINCLUDESRC) -I$(EXTINCSRC) \
+ -I$(MESASRCDIR)/include \
+ -I$(MESASRCDIR)/src/mesa \
+ -I$(SERVERSRC)/include
+
+ DEFINES = $(GLX_DEFINES)
+
+NormalDepLibraryTarget(GLcore, $(DONES) $(OBJS), $(OBJS) $(XOBJS))
+NormalLibraryObjectRule()
+
+InstallDriverSDKLibraryModule(GLcore,$(DRIVERSDKMODULEDIR),extensions)
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
diff --git a/nx-X11/programs/Xserver/GL/mesa/Imakefile b/nx-X11/programs/Xserver/GL/mesa/Imakefile
new file mode 100644
index 000000000..f1dbbe101
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/Imakefile
@@ -0,0 +1,26 @@
+#define IHaveSubdirs
+ SUBDIRS = main math array_cache swrast swrast_setup tnl shader X GLcore $(MODSUBDIR)
+
+#include <Server.tmpl>
+
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaBuildDir /**/
+#include "Imakefile.inc"
+
+ INCLUDES = -I$(INCLUDESRC) -I$(XINCLUDESRC) -I$(EXTINCSRC) \
+ -I$(MESASRCDIR)/include -I$(GLXLIBSRC)/include \
+ -I$(MESASRCDIR)/src/mesa \
+ -I$(SERVERSRC)/include
+
+ DEFINES = $(GLX_DEFINES)
+
+NormalLibraryObjectRule()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
+DependTarget()
diff --git a/nx-X11/programs/Xserver/GL/mesa/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/Imakefile.inc
new file mode 100644
index 000000000..1bff5782e
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/Imakefile.inc
@@ -0,0 +1,51 @@
+MESABUILDDIR = MesaBuildDir
+
+COREMESASRCS = $(COREMESABASESRCS) \
+ $(MESA_AC_SRCS) \
+ $(MESA_MATH_SRCS) \
+ $(MESA_SWRAST_SRCS) \
+ $(MESA_SWR_SETUP_SRCS) \
+ $(MESA_TNL_SRCS) \
+ $(MESA_SHADER_SRCS) \
+ $(MESA_GRAMMAR_SRCS) \
+ $(MESA_SLANG_SRCS)
+
+COREMESAOBJS = $(COREMESABASEOBJS) \
+ $(MESA_AC_OBJS) \
+ $(MESA_MATH_OBJS) \
+ $(MESA_SWRAST_OBJS) \
+ $(MESA_SWR_SETUP_OBJS) \
+ $(MESA_TNL_OBJS) \
+ $(MESA_SHADER_OBJS) \
+ $(MESA_GRAMMAR_OBJS) \
+ $(MESA_SLANG_OBJS)
+
+COREMESAUOBJS = $(COREMESABASEUOBJS) \
+ $(MESA_AC_UOBJS) \
+ $(MESA_MATH_UOBJS) \
+ $(MESA_SWRAST_UOBJS) \
+ $(MESA_SWR_SETUP_UOBJS) \
+ $(MESA_TNL_UOBJS) \
+ $(MESA_SHADER_UOBJS) \
+ $(MESA_GRAMMAR_UOBJS) \
+ $(MESA_SLANG_UOBJS)
+
+COREMESADOBJS = $(COREMESABASEDOBJS) \
+ $(MESA_AC_DOBJS) \
+ $(MESA_MATH_DOBJS) \
+ $(MESA_SWRAST_DOBJS) \
+ $(MESA_SWR_SETUP_DOBJS) \
+ $(MESA_TNL_DOBJS) \
+ $(MESA_SHADER_DOBJS) \
+ $(MESA_GRAMMAR_DOBJS) \
+ $(MESA_SLANG_DOBJS)
+
+COREMESAPOBJS = $(COREMESABASEPOBJS) \
+ $(MESA_AC_POBJS) \
+ $(MESA_MATH_POBJS) \
+ $(MESA_SWRAST_POBJS) \
+ $(MESA_SWR_SETUP_POBJS) \
+ $(MESA_TNL_POBJS) \
+ $(MESA_SHADER_POBJS) \
+ $(MESA_GRAMMAR_POBJS) \
+ $(MESA_SLANG_POBJS)
diff --git a/nx-X11/programs/Xserver/GL/mesa/X/Imakefile b/nx-X11/programs/Xserver/GL/mesa/X/Imakefile
new file mode 100644
index 000000000..f8812e096
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/X/Imakefile
@@ -0,0 +1,63 @@
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaXBuildDir /**/
+#define MesaInXServer
+#include "Imakefile.inc"
+
+
+LinkSourceFile(compsize.c,$(MESASRCDIR)/src/glx/x11)
+
+ DRIVER_SRCS = $(XMESA_SRCS)
+ DRIVER_OBJS = $(XMESA_OBJS)
+
+ COMMON_SRCS = driverfuncs.c
+ COMMON_OBJS = driverfuncs.o
+
+ GLX_SRCS = xf86glx.c xf86glx_util.c compsize.c
+ GLX_OBJS = xf86glx.o xf86glx_util.o compsize.o
+
+ SRCS = $(DRIVER_SRCS) $(GLX_SRCS) $(COMMON_SRCS)
+ OBJS = $(DRIVER_OBJS) $(GLX_OBJS) $(COMMON_OBJS)
+
+ INCLUDES = -I$(SERVERSRC)/GL/mesa/X -I$(XINCLUDESRC) \
+ -I$(EXTINCSRC) \
+ -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src -I$(MESASRCDIR)/src/mesa/drivers/x11 \
+ -I$(MESASRCDIR)/include \
+ -I$(LIBSRC)/GL/glx -I$(LIBSRC)/GL/include \
+ -I$(SERVERSRC)/include -I$(SERVERSRC)/GL/include \
+ -I$(SERVERSRC)/GL/glx \
+ -I$(XF86OSSRC) \
+ -I$(DRMSRCDIR)/shared-core \
+ `pkg-config --cflags-only-I pixman-1`
+
+ DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
+
+#ifndef MesaDrvSrcDir
+#define MesaDrvSrcDir $(MESASRCDIR)/src/mesa/drivers/dri
+#endif
+
+MESADRVSRCDIR = MesaDrvSrcDir
+
+
+LinkSourceFile(driverfuncs.c, $(MESADRVSRCDIR)/../common)
+LinkSourceFile(driverfuncs.h, $(MESADRVSRCDIR)/../common)
diff --git a/nx-X11/programs/Xserver/GL/mesa/X/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/X/Imakefile.inc
new file mode 100644
index 000000000..67eaf7804
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/X/Imakefile.inc
@@ -0,0 +1,98 @@
+MESAXBUILDDIR = MesaXBuildDir
+
+#ifndef MesaInXServer
+XMESA_GLX_SRCS = $(MESAXBUILDDIR)fakeglx.c \
+ $(MESAXBUILDDIR)glxapi.c \
+ $(MESAXBUILDDIR)realglx.c \
+ $(MESAXBUILDDIR)xfonts.c
+#endif
+
+ XMESA_SRCS = $(XMESA_GLX_SRCS) \
+ $(MESAXBUILDDIR)xm_api.c \
+ $(MESAXBUILDDIR)xm_buffer.c \
+ $(MESAXBUILDDIR)xm_dd.c \
+ $(MESAXBUILDDIR)xm_line.c \
+ $(MESAXBUILDDIR)xm_span.c \
+ $(MESAXBUILDDIR)xm_tri.c
+
+#ifdef NeedToLinkMesaSrc
+#ifndef MesaInXServer
+LinkSourceFile(fakeglx.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(glxapi.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(glxapi.h, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(realglx.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(xfonts.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+#endif
+LinkSourceFile(xm_api.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(xm_buffer.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(xm_dd.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(xm_line.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(xm_span.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+LinkSourceFile(xm_tri.c, $(MESASRCDIR)/src/mesa/drivers/x11)
+#endif
+
+#ifndef MesaInXServer
+XMESA_GLX_OBJS = $(MESAXBUILDDIR)fakeglx.o \
+ $(MESAXBUILDDIR)glxapi.o \
+ $(MESAXBUILDDIR)realglx.o \
+ $(MESAXBUILDDIR)xfonts.o
+#endif
+
+ XMESA_OBJS = $(XMESA_GLX_OBJS) \
+ $(MESAXBUILDDIR)xm_api.o \
+ $(MESAXBUILDDIR)xm_buffer.o \
+ $(MESAXBUILDDIR)xm_dd.o \
+ $(MESAXBUILDDIR)xm_line.o \
+ $(MESAXBUILDDIR)xm_span.o \
+ $(MESAXBUILDDIR)xm_tri.o
+
+#if defined(DoSharedLib) && DoSharedLib
+#ifndef MesaInXServer
+XMESA_GLX_UOBJS = $(MESAXBUILDDIR)unshared/fakeglx.o \
+ $(MESAXBUILDDIR)unshared/glxapi.o \
+ $(MESAXBUILDDIR)unshared/realglx.o \
+ $(MESAXBUILDDIR)unshared/xfonts.o
+#endif
+
+ XMESA_UOBJS = $(XMESA_GLX_UOBJS) \
+ $(MESAXBUILDDIR)unshared/xm_api.o \
+ $(MESAXBUILDDIR)unshared/xm_buffer.o \
+ $(MESAXBUILDDIR)unshared/xm_dd.o \
+ $(MESAXBUILDDIR)unshared/xm_line.o \
+ $(MESAXBUILDDIR)unshared/xm_span.o \
+ $(MESAXBUILDDIR)unshared/xm_tri.o
+#else
+XMESA_GLX_UOBJS = $(XMESA_GLX_OBJS)
+ XMESA_UOBJS = $(XMESA_OBJS)
+#endif
+
+#ifndef MesaInXServer
+XMESA_GLX_DOBJS = $(MESAXBUILDDIR)debugger/fakeglx.o \
+ $(MESAXBUILDDIR)debugger/glxapi.o \
+ $(MESAXBUILDDIR)debugger/realglx.o \
+ $(MESAXBUILDDIR)debugger/xfonts.o
+#endif
+
+ XMESA_DOBJS = $(XMESA_GLX_DOBJS) \
+ $(MESAXBUILDDIR)debugger/xm_api.o \
+ $(MESAXBUILDDIR)debugger/xm_buffer.o \
+ $(MESAXBUILDDIR)debugger/xm_dd.o \
+ $(MESAXBUILDDIR)debugger/xm_line.o \
+ $(MESAXBUILDDIR)debugger/xm_span.o \
+ $(MESAXBUILDDIR)debugger/xm_tri.o
+
+#ifndef MesaInXServer
+XMESA_GLX_POBJS = $(MESAXBUILDDIR)profiled/fakeglx.o \
+ $(MESAXBUILDDIR)profiled/glxapi.o \
+ $(MESAXBUILDDIR)profiled/realglx.o \
+ $(MESAXBUILDDIR)profiled/xfonts.o
+#endif
+
+ XMESA_POBJS = $(XMESA_GLX_POBJS) \
+ $(MESAXBUILDDIR)profiled/xm_api.o \
+ $(MESAXBUILDDIR)profiled/xm_buffer.o \
+ $(MESAXBUILDDIR)profiled/xm_dd.o \
+ $(MESAXBUILDDIR)profiled/xm_line.o \
+ $(MESAXBUILDDIR)profiled/xm_span.o \
+ $(MESAXBUILDDIR)profiled/xm_tri.o
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c b/nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c
new file mode 100644
index 000000000..da0e77134
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c
@@ -0,0 +1,950 @@
+/**************************************************************************
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <kevin@precisioninsight.com>
+ * Brian E. Paul <brian@precisioninsight.com>
+ *
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include <regionstr.h>
+#include <resource.h>
+#include <GL/gl.h>
+#include <GL/glxint.h>
+#include <GL/glxtokens.h>
+#include <scrnintstr.h>
+#include <config.h>
+#include <glxserver.h>
+#include <glxscreens.h>
+#include <glxdrawable.h>
+#include <glxcontext.h>
+#include <glxext.h>
+#include <glxutil.h>
+#include "xf86glxint.h"
+#include "context.h"
+#include "xmesaP.h"
+#include "context.h"
+
+/*
+ * This define is for the glcore.h header file.
+ * If you add it here, then make sure you also add it in
+ * ../../../glx/Imakefile.
+ */
+#if 0
+#define DEBUG
+#include <GL/internal/glcore.h>
+#undef DEBUG
+#else
+#include <GL/internal/glcore.h>
+#endif
+
+#include "glcontextmodes.h"
+
+#ifdef NXAGENT_SERVER
+#include "../main/WSDrawBuffer.h"
+#endif
+
+/*
+ * This structure is statically allocated in the __glXScreens[]
+ * structure. This struct is not used anywhere other than in
+ * __glXScreenInit to initialize each of the active screens
+ * (__glXActiveScreens[]). Several of the fields must be initialized by
+ * the screenProbe routine before they are copied to the active screens
+ * struct. In particular, the contextCreate, pGlxVisual, numVisuals,
+ * and numUsableVisuals fields must be initialized.
+ */
+static __GLXscreenInfo __glDDXScreenInfo = {
+ __MESA_screenProbe, /* Must be generic and handle all screens */
+ __MESA_createContext, /* Substitute screen's createContext routine */
+ __MESA_createBuffer, /* Substitute screen's createBuffer routine */
+ NULL, /* Set up modes in probe */
+ NULL, /* Set up pVisualPriv in probe */
+ 0, /* Set up numVisuals in probe */
+ 0, /* Set up numUsableVisuals in probe */
+ NULL, /* GLextensions is overwritten by __glXScreenInit */
+ "Vendor String", /* GLXvendor is overwritten by __glXScreenInit */
+ "Version String", /* GLXversion is overwritten by __glXScreenInit */
+ "Extensions String", /* GLXextensions is overwritten by __glXScreenInit */
+ NULL /* WrappedPositionWindow is overwritten */
+};
+
+#ifdef NXAGENT_SERVER
+WSDrawBufferPtr pWSDrawBuffer = NULL;
+
+void AddWSDrawBuffer(GLframebuffer *mesa_buffer)
+{
+ WSDrawBufferPtr prevWSDB;
+ WSDrawBufferPtr newWSDB;
+ WSDrawBufferPtr p;
+
+ prevWSDB = NULL;
+ newWSDB = NULL;
+ p = pWSDrawBuffer;
+ while (p != NULL) {
+ prevWSDB = p;
+ if (prevWSDB -> DrawBuffer == mesa_buffer) {
+ return;
+ }
+ p = p -> next;
+ }
+ newWSDB = malloc(sizeof(WSDrawBufferRec));
+ newWSDB -> DrawBuffer = mesa_buffer;
+ newWSDB -> next = NULL;
+
+ if (pWSDrawBuffer == NULL)
+ pWSDrawBuffer = newWSDB;
+ else
+ prevWSDB -> next = newWSDB;
+}
+#endif
+
+void *__glXglDDXScreenInfo(void) {
+ return &__glDDXScreenInfo;
+}
+
+static __GLXextensionInfo __glDDXExtensionInfo = {
+ GL_CORE_MESA,
+ __MESA_resetExtension,
+ __MESA_initVisuals,
+ __MESA_setVisualConfigs
+};
+
+void *__glXglDDXExtensionInfo(void) {
+ return &__glDDXExtensionInfo;
+}
+
+static __MESA_screen MESAScreens[MAXSCREENS];
+static __GLcontext *MESA_CC = NULL;
+
+static int numConfigs = 0;
+static __GLXvisualConfig *visualConfigs = NULL;
+static void **visualPrivates = NULL;
+
+
+static int count_bits(unsigned int n)
+{
+ int bits = 0;
+
+ while (n > 0) {
+ if (n & 1) bits++;
+ n >>= 1;
+ }
+ return bits;
+}
+
+
+static XMesaVisual find_mesa_visual(int screen, VisualID vid)
+{
+ __MESA_screen * const pMScr = &MESAScreens[screen];
+ const __GLcontextModes *modes;
+ unsigned i = 0;
+
+ for ( modes = pMScr->modes ; modes != NULL ; modes = modes->next ) {
+ if ( modes->visualID == vid ) {
+ break;
+ }
+
+ i++;
+ }
+
+ return (modes != NULL) ? pMScr->xm_vis[i] : NULL;
+}
+
+
+/*
+ * In the case the driver defines no GLX visuals we'll use these.
+ * Note that for TrueColor and DirectColor visuals, bufferSize is the
+ * sum of redSize, greenSize, blueSize and alphaSize, which may be larger
+ * than the nplanes/rootDepth of the server's X11 visuals
+ */
+#define NUM_FALLBACK_CONFIGS 5
+static __GLXvisualConfig FallbackConfigs[NUM_FALLBACK_CONFIGS] = {
+ /* [0] = RGB, double buffered, Z */
+ {
+ -1, /* vid */
+ -1, /* class */
+ True, /* rgba */
+ -1, -1, -1, 0, /* rgba sizes */
+ -1, -1, -1, 0, /* rgba masks */
+ 0, 0, 0, 0, /* rgba accum sizes */
+ True, /* doubleBuffer */
+ False, /* stereo */
+ -1, /* bufferSize */
+ 16, /* depthSize */
+ 0, /* stencilSize */
+ 0, /* auxBuffers */
+ 0, /* level */
+ GLX_NONE, /* visualRating */
+ GLX_NONE, /* transparentPixel */
+ 0, 0, 0, 0, /* transparent rgba color (floats scaled to ints) */
+ 0 /* transparentIndex */
+ },
+ /* [1] = RGB, double buffered, Z, stencil, accum */
+ {
+ -1, /* vid */
+ -1, /* class */
+ True, /* rgba */
+ -1, -1, -1, 0, /* rgba sizes */
+ -1, -1, -1, 0, /* rgba masks */
+ 16, 16, 16, 0, /* rgba accum sizes */
+ True, /* doubleBuffer */
+ False, /* stereo */
+ -1, /* bufferSize */
+ 16, /* depthSize */
+ 8, /* stencilSize */
+ 0, /* auxBuffers */
+ 0, /* level */
+ GLX_NONE, /* visualRating */
+ GLX_NONE, /* transparentPixel */
+ 0, 0, 0, 0, /* transparent rgba color (floats scaled to ints) */
+ 0 /* transparentIndex */
+ },
+ /* [2] = RGB+Alpha, double buffered, Z, stencil, accum */
+ {
+ -1, /* vid */
+ -1, /* class */
+ True, /* rgba */
+ -1, -1, -1, 8, /* rgba sizes */
+ -1, -1, -1, -1, /* rgba masks */
+ 16, 16, 16, 16, /* rgba accum sizes */
+ True, /* doubleBuffer */
+ False, /* stereo */
+ -1, /* bufferSize */
+ 16, /* depthSize */
+ 8, /* stencilSize */
+ 0, /* auxBuffers */
+ 0, /* level */
+ GLX_NONE, /* visualRating */
+ GLX_NONE, /* transparentPixel */
+ 0, 0, 0, 0, /* transparent rgba color (floats scaled to ints) */
+ 0 /* transparentIndex */
+ },
+ /* [3] = RGB+Alpha, single buffered, Z, stencil, accum */
+ {
+ -1, /* vid */
+ -1, /* class */
+ True, /* rgba */
+ -1, -1, -1, 8, /* rgba sizes */
+ -1, -1, -1, -1, /* rgba masks */
+ 16, 16, 16, 16, /* rgba accum sizes */
+ False, /* doubleBuffer */
+ False, /* stereo */
+ -1, /* bufferSize */
+ 16, /* depthSize */
+ 8, /* stencilSize */
+ 0, /* auxBuffers */
+ 0, /* level */
+ GLX_NONE, /* visualRating */
+ GLX_NONE, /* transparentPixel */
+ 0, 0, 0, 0, /* transparent rgba color (floats scaled to ints) */
+ 0 /* transparentIndex */
+ },
+ /* [4] = CI, double buffered, Z */
+ {
+ -1, /* vid */
+ -1, /* class */
+ False, /* rgba? (false = color index) */
+ -1, -1, -1, 0, /* rgba sizes */
+ -1, -1, -1, 0, /* rgba masks */
+ 0, 0, 0, 0, /* rgba accum sizes */
+ True, /* doubleBuffer */
+ False, /* stereo */
+ -1, /* bufferSize */
+ 16, /* depthSize */
+ 0, /* stencilSize */
+ 0, /* auxBuffers */
+ 0, /* level */
+ GLX_NONE, /* visualRating */
+ GLX_NONE, /* transparentPixel */
+ 0, 0, 0, 0, /* transparent rgba color (floats scaled to ints) */
+ 0 /* transparentIndex */
+ },
+};
+
+
+static Bool init_visuals(int *nvisualp, VisualPtr *visualp,
+ VisualID *defaultVisp,
+ int ndepth, DepthPtr pdepth,
+ int rootDepth)
+{
+ int numRGBconfigs;
+ int numCIconfigs;
+ int numVisuals = *nvisualp;
+ int numNewVisuals;
+ int numNewConfigs;
+ VisualPtr pVisual = *visualp;
+ VisualPtr pVisualNew = NULL;
+ VisualID *orig_vid = NULL;
+ __GLcontextModes *modes;
+ __GLXvisualConfig *pNewVisualConfigs = NULL;
+ void **glXVisualPriv;
+ void **pNewVisualPriv;
+ int found_default;
+ int i, j, k;
+
+ if (numConfigs > 0)
+ numNewConfigs = numConfigs;
+ else
+ numNewConfigs = NUM_FALLBACK_CONFIGS;
+
+ /* Alloc space for the list of new GLX visuals */
+ pNewVisualConfigs = (__GLXvisualConfig *)
+ malloc(numNewConfigs * sizeof(__GLXvisualConfig));
+ if (!pNewVisualConfigs) {
+ return FALSE;
+ }
+
+ /* Alloc space for the list of new GLX visual privates */
+ pNewVisualPriv = (void **) malloc(numNewConfigs * sizeof(void *));
+ if (!pNewVisualPriv) {
+ free(pNewVisualConfigs);
+ return FALSE;
+ }
+
+ /*
+ ** If SetVisualConfigs was not called, then use default GLX
+ ** visual configs.
+ */
+ if (numConfigs == 0) {
+ memcpy(pNewVisualConfigs, FallbackConfigs,
+ NUM_FALLBACK_CONFIGS * sizeof(__GLXvisualConfig));
+ memset(pNewVisualPriv, 0, NUM_FALLBACK_CONFIGS * sizeof(void *));
+ }
+ else {
+ /* copy driver's visual config info */
+ for (i = 0; i < numConfigs; i++) {
+ pNewVisualConfigs[i] = visualConfigs[i];
+ pNewVisualPriv[i] = visualPrivates[i];
+ }
+ }
+
+ /* Count the number of RGB and CI visual configs */
+ numRGBconfigs = 0;
+ numCIconfigs = 0;
+ for (i = 0; i < numNewConfigs; i++) {
+ if (pNewVisualConfigs[i].rgba)
+ numRGBconfigs++;
+ else
+ numCIconfigs++;
+ }
+
+ /* Count the total number of visuals to compute */
+ numNewVisuals = 0;
+ for (i = 0; i < numVisuals; i++) {
+ numNewVisuals +=
+ (pVisual[i].class == TrueColor || pVisual[i].class == DirectColor)
+ ? numRGBconfigs : numCIconfigs;
+ }
+
+ /* Reset variables for use with the next screen/driver's visual configs */
+ visualConfigs = NULL;
+ numConfigs = 0;
+
+ /* Alloc temp space for the list of orig VisualIDs for each new visual */
+ orig_vid = (VisualID *)malloc(numNewVisuals * sizeof(VisualID));
+ if (!orig_vid) {
+ free(pNewVisualPriv);
+ free(pNewVisualConfigs);
+ return FALSE;
+ }
+
+ /* Alloc space for the list of glXVisuals */
+ modes = _gl_context_modes_create(numNewVisuals, sizeof(__GLcontextModes));
+ if (modes == NULL) {
+ free(orig_vid);
+ free(pNewVisualPriv);
+ free(pNewVisualConfigs);
+ return FALSE;
+ }
+
+ /* Alloc space for the list of glXVisualPrivates */
+ glXVisualPriv = (void **)malloc(numNewVisuals * sizeof(void *));
+ if (!glXVisualPriv) {
+ _gl_context_modes_destroy( modes );
+ free(orig_vid);
+ free(pNewVisualPriv);
+ free(pNewVisualConfigs);
+ return FALSE;
+ }
+
+ /* Alloc space for the new list of the X server's visuals */
+ pVisualNew = (VisualPtr)malloc(numNewVisuals * sizeof(VisualRec));
+ if (!pVisualNew) {
+ free(glXVisualPriv);
+ _gl_context_modes_destroy( modes );
+ free(orig_vid);
+ free(pNewVisualPriv);
+ free(pNewVisualConfigs);
+ return FALSE;
+ }
+
+ /* Initialize the new visuals */
+ found_default = FALSE;
+ MESAScreens[screenInfo.numScreens-1].modes = modes;
+ for (i = j = 0; i < numVisuals; i++) {
+ int is_rgb = (pVisual[i].class == TrueColor ||
+ pVisual[i].class == DirectColor);
+
+ for (k = 0; k < numNewConfigs; k++) {
+ if (pNewVisualConfigs[k].rgba != is_rgb)
+ continue;
+
+ assert( modes != NULL );
+
+ /* Initialize the new visual */
+ pVisualNew[j] = pVisual[i];
+ pVisualNew[j].vid = FakeClientID(0);
+
+ /* Check for the default visual */
+ if (!found_default && pVisual[i].vid == *defaultVisp) {
+ *defaultVisp = pVisualNew[j].vid;
+ found_default = TRUE;
+ }
+
+ /* Save the old VisualID */
+ orig_vid[j] = pVisual[i].vid;
+
+ /* Initialize the glXVisual */
+ _gl_copy_visual_to_context_mode( modes, & pNewVisualConfigs[k] );
+ modes->visualID = pVisualNew[j].vid;
+
+ /*
+ * If the class is -1, then assume the X visual information
+ * is identical to what GLX needs, and take them from the X
+ * visual. NOTE: if class != -1, then all other fields MUST
+ * be initialized.
+ */
+ if (modes->visualType == GLX_NONE) {
+ modes->visualType = _gl_convert_from_x_visual_type( pVisual[i].class );
+ modes->redBits = count_bits(pVisual[i].redMask);
+ modes->greenBits = count_bits(pVisual[i].greenMask);
+ modes->blueBits = count_bits(pVisual[i].blueMask);
+ modes->alphaBits = modes->alphaBits;
+ modes->redMask = pVisual[i].redMask;
+ modes->greenMask = pVisual[i].greenMask;
+ modes->blueMask = pVisual[i].blueMask;
+ modes->alphaMask = modes->alphaMask;
+ modes->rgbBits = (is_rgb)
+ ? (modes->redBits + modes->greenBits +
+ modes->blueBits + modes->alphaBits)
+ : rootDepth;
+ }
+
+ /* Save the device-dependent private for this visual */
+ glXVisualPriv[j] = pNewVisualPriv[k];
+
+ j++;
+ modes = modes->next;
+ }
+ }
+
+ assert(j <= numNewVisuals);
+
+ /* Save the GLX visuals in the screen structure */
+ MESAScreens[screenInfo.numScreens-1].num_vis = numNewVisuals;
+ MESAScreens[screenInfo.numScreens-1].private = glXVisualPriv;
+
+ /* Set up depth's VisualIDs */
+ for (i = 0; i < ndepth; i++) {
+ int numVids = 0;
+ VisualID *pVids = NULL;
+ int k, n = 0;
+
+ /* Count the new number of VisualIDs at this depth */
+ for (j = 0; j < pdepth[i].numVids; j++)
+ for (k = 0; k < numNewVisuals; k++)
+ if (pdepth[i].vids[j] == orig_vid[k])
+ numVids++;
+
+ /* Allocate a new list of VisualIDs for this depth */
+ pVids = (VisualID *)malloc(numVids * sizeof(VisualID));
+
+ /* Initialize the new list of VisualIDs for this depth */
+ for (j = 0; j < pdepth[i].numVids; j++)
+ for (k = 0; k < numNewVisuals; k++)
+ if (pdepth[i].vids[j] == orig_vid[k])
+ pVids[n++] = pVisualNew[k].vid;
+
+ /* Update this depth's list of VisualIDs */
+ free(pdepth[i].vids);
+ pdepth[i].vids = pVids;
+ pdepth[i].numVids = numVids;
+ }
+
+ /* Update the X server's visuals */
+ *nvisualp = numNewVisuals;
+ *visualp = pVisualNew;
+
+ /* Free the old list of the X server's visuals */
+ free(pVisual);
+
+ /* Clean up temporary allocations */
+ free(orig_vid);
+ free(pNewVisualPriv);
+ free(pNewVisualConfigs);
+
+ /* Free the private list created by DDX HW driver */
+ if (visualPrivates)
+ free(visualPrivates);
+ visualPrivates = NULL;
+
+ return TRUE;
+}
+
+void __MESA_setVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
+ void **privates)
+{
+ numConfigs = nconfigs;
+ visualConfigs = configs;
+ visualPrivates = privates;
+}
+
+Bool __MESA_initVisuals(VisualPtr *visualp, DepthPtr *depthp,
+ int *nvisualp, int *ndepthp, int *rootDepthp,
+ VisualID *defaultVisp, unsigned long sizes,
+ int bitsPerRGB)
+{
+ /*
+ * Setup the visuals supported by this particular screen.
+ */
+ return init_visuals(nvisualp, visualp, defaultVisp,
+ *ndepthp, *depthp, *rootDepthp);
+}
+
+static void fixup_visuals(int screen)
+{
+ ScreenPtr pScreen = screenInfo.screens[screen];
+ __MESA_screen *pMScr = &MESAScreens[screen];
+ int j;
+ __GLcontextModes *modes;
+
+ for ( modes = pMScr->modes ; modes != NULL ; modes = modes->next ) {
+ const int vis_class = _gl_convert_to_x_visual_type( modes->visualType );
+ const int nplanes = (modes->rgbBits - modes->alphaBits);
+ const VisualPtr pVis = pScreen->visuals;
+
+ /* Find a visual that matches the GLX visual's class and size */
+ for (j = 0; j < pScreen->numVisuals; j++) {
+ if (pVis[j].class == vis_class &&
+ pVis[j].nplanes == nplanes) {
+
+ /* Fixup the masks */
+ modes->redMask = pVis[j].redMask;
+ modes->greenMask = pVis[j].greenMask;
+ modes->blueMask = pVis[j].blueMask;
+
+ /* Recalc the sizes */
+ modes->redBits = count_bits(modes->redMask);
+ modes->greenBits = count_bits(modes->greenMask);
+ modes->blueBits = count_bits(modes->blueMask);
+ }
+ }
+ }
+}
+
+static void init_screen_visuals(int screen)
+{
+ ScreenPtr pScreen = screenInfo.screens[screen];
+ __GLcontextModes *modes;
+ XMesaVisual *pXMesaVisual;
+ int *used;
+ int i, j;
+
+ /* Alloc space for the list of XMesa visuals */
+ pXMesaVisual = (XMesaVisual *)malloc(MESAScreens[screen].num_vis *
+ sizeof(XMesaVisual));
+ memset(pXMesaVisual, 0,
+ MESAScreens[screen].num_vis * sizeof(XMesaVisual));
+
+ /* FIXME: Change 'used' to be a array of bits (rather than of ints),
+ * FIXME: create a stack array of 8 or 16 bytes. If 'numVisuals' is less
+ * FIXME: than 64 or 128 the stack array can be used instead of calling
+ * FIXME: malloc / free. If nothing else, convert 'used' to
+ * FIXME: array of bytes instead of ints!
+ */
+ used = (int *)malloc(pScreen->numVisuals * sizeof(int));
+ memset(used, 0, pScreen->numVisuals * sizeof(int));
+
+ i = 0;
+ for ( modes = MESAScreens[screen].modes
+ ; modes != NULL
+ ; modes = modes->next ) {
+ const int vis_class = _gl_convert_to_x_visual_type( modes->visualType );
+ const int nplanes = (modes->rgbBits - modes->alphaBits);
+ const VisualPtr pVis = pScreen->visuals;
+
+ for (j = 0; j < pScreen->numVisuals; j++) {
+ if (pVis[j].class == vis_class &&
+ pVis[j].nplanes == nplanes &&
+ pVis[j].redMask == modes->redMask &&
+ pVis[j].greenMask == modes->greenMask &&
+ pVis[j].blueMask == modes->blueMask &&
+ !used[j]) {
+
+ /* Create the XMesa visual */
+ pXMesaVisual[i] =
+ XMesaCreateVisual(pScreen,
+ pVis,
+ modes->rgbMode,
+ (modes->alphaBits > 0),
+ modes->doubleBufferMode,
+ modes->stereoMode,
+ GL_TRUE, /* ximage_flag */
+ modes->depthBits,
+ modes->stencilBits,
+ modes->accumRedBits,
+ modes->accumGreenBits,
+ modes->accumBlueBits,
+ modes->accumAlphaBits,
+ modes->samples,
+ modes->level,
+ modes->visualRating);
+ /* Set the VisualID */
+ modes->visualID = pVis[j].vid;
+
+ /* Mark this visual used */
+ used[j] = 1;
+ break;
+ }
+ }
+
+ if ( j == pScreen->numVisuals ) {
+ ErrorF("No matching visual for __GLcontextMode with "
+ "visual class = %d (%d), nplanes = %u\n",
+ vis_class,
+ modes->visualType,
+ (modes->rgbBits - modes->alphaBits) );
+ }
+ else if ( modes->visualID == -1 ) {
+ FatalError( "Matching visual found, but visualID still -1!\n" );
+ }
+
+ i++;
+ }
+
+ free(used);
+
+ MESAScreens[screen].xm_vis = pXMesaVisual;
+}
+
+Bool __MESA_screenProbe(int screen)
+{
+ /*
+ * Set up the current screen's visuals.
+ */
+ __glDDXScreenInfo.modes = MESAScreens[screen].modes;
+ __glDDXScreenInfo.pVisualPriv = MESAScreens[screen].private;
+ __glDDXScreenInfo.numVisuals =
+ __glDDXScreenInfo.numUsableVisuals = MESAScreens[screen].num_vis;
+
+ /*
+ * Set the current screen's createContext routine. This could be
+ * wrapped by a DDX GLX context creation routine.
+ */
+ __glDDXScreenInfo.createContext = __MESA_createContext;
+
+ /*
+ * The ordering of the rgb compenents might have been changed by the
+ * driver after mi initialized them.
+ */
+ fixup_visuals(screen);
+
+ /*
+ * Find the GLX visuals that are supported by this screen and create
+ * XMesa's visuals.
+ */
+ init_screen_visuals(screen);
+
+ return TRUE;
+}
+
+extern void __MESA_resetExtension(void)
+{
+ int i, j;
+
+ XMesaReset();
+
+ for (i = 0; i < screenInfo.numScreens; i++) {
+ for (j = 0; j < MESAScreens[i].num_vis; j++) {
+ if (MESAScreens[i].xm_vis[j]) {
+ XMesaDestroyVisual(MESAScreens[i].xm_vis[j]);
+ MESAScreens[i].xm_vis[j] = NULL;
+ }
+ }
+ _gl_context_modes_destroy( MESAScreens[i].modes );
+ MESAScreens[i].modes = NULL;
+ free(MESAScreens[i].private);
+ MESAScreens[i].private = NULL;
+ free(MESAScreens[i].xm_vis);
+ MESAScreens[i].xm_vis = NULL;
+ MESAScreens[i].num_vis = 0;
+ }
+ __glDDXScreenInfo.modes = NULL;
+ MESA_CC = NULL;
+}
+
+void __MESA_createBuffer(__GLXdrawablePrivate *glxPriv)
+{
+ DrawablePtr pDraw = glxPriv->pDraw;
+ XMesaVisual xm_vis = find_mesa_visual(pDraw->pScreen->myNum,
+ glxPriv->modes->visualID);
+ __GLdrawablePrivate *glPriv = &glxPriv->glPriv;
+ __MESA_buffer buf;
+
+ if (xm_vis == NULL) {
+ ErrorF("find_mesa_visual returned NULL for visualID = 0x%04x\n",
+ glxPriv->modes->visualID);
+ }
+ buf = (__MESA_buffer)malloc(sizeof(struct __MESA_bufferRec));
+
+ /* Create Mesa's buffers */
+ if (glxPriv->type == DRAWABLE_WINDOW) {
+ buf->xm_buf = (void *)XMesaCreateWindowBuffer(xm_vis,
+ (WindowPtr)pDraw);
+ } else {
+ buf->xm_buf = (void *)XMesaCreatePixmapBuffer(xm_vis,
+ (PixmapPtr)pDraw, 0);
+ }
+
+ /* Wrap the front buffer's resize routine */
+ buf->fbresize = glPriv->frontBuffer.resize;
+ glPriv->frontBuffer.resize = __MESA_resizeBuffers;
+
+ /* Wrap the swap buffers routine */
+ buf->fbswap = glxPriv->swapBuffers;
+ glxPriv->swapBuffers = __MESA_swapBuffers;
+
+ /* Save Mesa's private buffer structure */
+ glPriv->private = (void *)buf;
+ glPriv->freePrivate = __MESA_destroyBuffer;
+}
+
+GLboolean __MESA_resizeBuffers(__GLdrawableBuffer *buffer,
+ GLint x, GLint y,
+ GLuint width, GLuint height,
+ __GLdrawablePrivate *glPriv,
+ GLuint bufferMask)
+{
+ __MESA_buffer buf = (__MESA_buffer)glPriv->private;
+
+ if (buf->xm_buf)
+ XMesaResizeBuffers(buf->xm_buf);
+
+ return (*buf->fbresize)(buffer, x, y, width, height, glPriv, bufferMask);
+}
+
+GLboolean __MESA_swapBuffers(__GLXdrawablePrivate *glxPriv)
+{
+ __MESA_buffer buf = (__MESA_buffer)glxPriv->glPriv.private;
+
+ /*
+ ** Do not call the wrapped swap buffers routine since Mesa has
+ ** already done the swap.
+ */
+ XMesaSwapBuffers(buf->xm_buf);
+
+ return GL_TRUE;
+}
+
+void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv)
+{
+ __MESA_buffer buf = (__MESA_buffer)glPriv->private;
+ __GLXdrawablePrivate *glxPriv = (__GLXdrawablePrivate *)glPriv->other;
+
+#ifdef NXAGENT_SERVER
+ AddWSDrawBuffer(& (buf -> xm_buf -> mesa_buffer) );
+#endif
+
+ /* Destroy Mesa's buffers */
+ if (buf->xm_buf)
+ XMesaDestroyBuffer(buf->xm_buf);
+
+ /* Unwrap these routines */
+ glxPriv->swapBuffers = buf->fbswap;
+ glPriv->frontBuffer.resize = buf->fbresize;
+
+ free(glPriv->private);
+ glPriv->private = NULL;
+}
+
+__GLinterface *__MESA_createContext(__GLimports *imports,
+ __GLcontextModes *modes,
+ __GLinterface *shareGC)
+{
+ __GLcontext *gl_ctx = NULL;
+ __GLcontext *m_share = NULL;
+ __GLXcontext *glxc = (__GLXcontext *)imports->other;
+ XMesaVisual xm_vis;
+
+ if (shareGC)
+ m_share = (__GLcontext *)shareGC;
+
+ xm_vis = find_mesa_visual(glxc->pScreen->myNum, glxc->modes->visualID);
+ if (xm_vis) {
+ XMesaContext xmshare = m_share ? m_share->DriverCtx : 0;
+ XMesaContext xmctx = XMesaCreateContext(xm_vis, xmshare);
+ gl_ctx = xmctx ? &xmctx->mesa : 0;
+ }
+ else {
+ ErrorF("find_mesa_visual returned NULL for visualID = 0x%04x\n",
+ glxc->modes->visualID);
+ }
+
+
+ if (!gl_ctx)
+ return NULL;
+
+ gl_ctx->imports = *imports;
+ gl_ctx->exports.destroyContext = __MESA_destroyContext;
+ gl_ctx->exports.loseCurrent = __MESA_loseCurrent;
+ gl_ctx->exports.makeCurrent = __MESA_makeCurrent;
+ gl_ctx->exports.shareContext = __MESA_shareContext;
+ gl_ctx->exports.copyContext = __MESA_copyContext;
+ gl_ctx->exports.forceCurrent = __MESA_forceCurrent;
+ gl_ctx->exports.notifyResize = __MESA_notifyResize;
+ gl_ctx->exports.notifyDestroy = __MESA_notifyDestroy;
+ gl_ctx->exports.notifySwapBuffers = __MESA_notifySwapBuffers;
+ gl_ctx->exports.dispatchExec = __MESA_dispatchExec;
+ gl_ctx->exports.beginDispatchOverride = __MESA_beginDispatchOverride;
+ gl_ctx->exports.endDispatchOverride = __MESA_endDispatchOverride;
+
+ return (__GLinterface *)gl_ctx;
+}
+
+GLboolean __MESA_destroyContext(__GLcontext *gc)
+{
+ XMesaContext xmesa = (XMesaContext) gc->DriverCtx;
+ XMesaDestroyContext( xmesa );
+ return GL_TRUE;
+}
+
+GLboolean __MESA_loseCurrent(__GLcontext *gc)
+{
+ XMesaContext xmesa = (XMesaContext) gc->DriverCtx;
+ MESA_CC = NULL;
+ __glXLastContext = NULL;
+ return XMesaLoseCurrent(xmesa);
+}
+
+GLboolean __MESA_makeCurrent(__GLcontext *gc)
+{
+ __GLdrawablePrivate *drawPriv = gc->imports.getDrawablePrivate( gc );
+ __MESA_buffer drawBuf = (__MESA_buffer)drawPriv->private;
+ __GLdrawablePrivate *readPriv = gc->imports.getReadablePrivate( gc );
+ __MESA_buffer readBuf = (__MESA_buffer)readPriv->private;
+ XMesaContext xmesa = (XMesaContext) gc->DriverCtx;
+
+ MESA_CC = gc;
+ return XMesaMakeCurrent2(xmesa, drawBuf->xm_buf, readBuf->xm_buf);
+}
+
+GLboolean __MESA_shareContext(__GLcontext *gc, __GLcontext *gcShare)
+{
+ /* NOT_DONE */
+ /* XXX I don't see where/how this could ever be called */
+ ErrorF("__MESA_shareContext\n");
+ return GL_FALSE;
+}
+
+GLboolean __MESA_copyContext(__GLcontext *dst, const __GLcontext *src,
+ GLuint mask)
+{
+ XMesaContext xm_dst = (XMesaContext) dst->DriverCtx;
+ const XMesaContext xm_src = (const XMesaContext) src->DriverCtx;
+ _mesa_copy_context(&xm_src->mesa, &xm_dst->mesa, mask);
+ return GL_TRUE;
+}
+
+GLboolean __MESA_forceCurrent(__GLcontext *gc)
+{
+ XMesaContext xmesa = (XMesaContext) gc->DriverCtx;
+ MESA_CC = gc;
+ return XMesaForceCurrent(xmesa);
+}
+
+GLboolean __MESA_notifyResize(__GLcontext *gc)
+{
+ /* NOT_DONE */
+ ErrorF("__MESA_notifyResize\n");
+ return GL_FALSE;
+}
+
+void __MESA_notifyDestroy(__GLcontext *gc)
+{
+ /* NOT_DONE */
+ ErrorF("__MESA_notifyDestroy\n");
+ return;
+}
+
+void __MESA_notifySwapBuffers(__GLcontext *gc)
+{
+ _mesa_notifySwapBuffers(gc);
+}
+
+struct __GLdispatchStateRec *__MESA_dispatchExec(__GLcontext *gc)
+{
+ /* NOT_DONE */
+ ErrorF("__MESA_dispatchExec\n");
+ return NULL;
+}
+
+void __MESA_beginDispatchOverride(__GLcontext *gc)
+{
+ /* NOT_DONE */
+ ErrorF("__MESA_beginDispatchOverride\n");
+ return;
+}
+
+void __MESA_endDispatchOverride(__GLcontext *gc)
+{
+ /* NOT_DONE */
+ ErrorF("__MESA_endDispatchOverride\n");
+ return;
+}
+
+
+/*
+ * Server-side GLX uses these functions which are normally defined
+ * in the OpenGL SI.
+ */
+
+GLuint __glFloorLog2(GLuint val)
+{
+ int c = 0;
+
+ while (val > 1) {
+ c++;
+ val >>= 1;
+ }
+ return c;
+}
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.c b/nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.c
new file mode 100644
index 000000000..fad84ec7e
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.c
@@ -0,0 +1,151 @@
+/**************************************************************************
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <kevin@precisioninsight.com>
+ * Brian Paul <brian@precisioninsight.com>
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include <stdlib.h>
+
+#include <gcstruct.h>
+#include "pixmapstr.h"
+#include "xf86glx_util.h"
+#include <nx-X11/Xmd.h>
+
+#ifdef ROUNDUP
+#undef ROUNDUP
+#endif
+
+#define ROUNDUP(nbytes, pad) ((((nbytes) + ((pad)-1)) / (pad)) * ((pad)>>3))
+
+XMesaImage *XMesaCreateImage(int bitsPerPixel, int width, int height, char *data)
+{
+ XMesaImage *image;
+
+ image = (XMesaImage *)malloc(sizeof(XMesaImage));
+
+ if (image) {
+ image->width = width;
+ image->height = height;
+ image->data = data;
+ /* Always pad to 32 bits */
+ image->bytes_per_line = ROUNDUP((bitsPerPixel * width), 32);
+ image->bits_per_pixel = bitsPerPixel;
+ }
+
+ return image;
+}
+
+void XMesaDestroyImage(XMesaImage *image)
+{
+ if (image->data)
+ free(image->data);
+ free(image);
+}
+
+unsigned long XMesaGetPixel(XMesaImage *image, int x, int y)
+{
+ CARD8 *row = (CARD8 *)(image->data + y*image->bytes_per_line);
+ CARD8 *i8;
+ CARD16 *i16;
+ CARD32 *i32;
+ switch (image->bits_per_pixel) {
+ case 8:
+ i8 = (CARD8 *)row;
+ return i8[x];
+ break;
+ case 15:
+ case 16:
+ i16 = (CARD16 *)row;
+ return i16[x];
+ break;
+ case 24: /* WARNING: architecture specific code */
+ i8 = (CARD8 *)row;
+ return (((CARD32)i8[x*3]) |
+ (((CARD32)i8[x*3+1])<<8) |
+ (((CARD32)i8[x*3+2])<<16));
+ break;
+ case 32:
+ i32 = (CARD32 *)row;
+ return i32[x];
+ break;
+ }
+ return 0;
+}
+
+#ifndef XMESA_USE_PUTPIXEL_MACRO
+void XMesaPutPixel(XMesaImage *image, int x, int y, unsigned long pixel)
+{
+ CARD8 *row = (CARD8 *)(image->data + y*image->bytes_per_line);
+ CARD8 *i8;
+ CARD16 *i16;
+ CARD32 *i32;
+ switch (image->bits_per_pixel) {
+ case 8:
+ i8 = (CARD8 *)row;
+ i8[x] = (CARD8)pixel;
+ break;
+ case 15:
+ case 16:
+ i16 = (CARD16 *)row;
+ i16[x] = (CARD16)pixel;
+ break;
+ case 24: /* WARNING: architecture specific code */
+ i8 = (CARD8 *)__row;
+ i8[x*3] = (CARD8)(p);
+ i8[x*3+1] = (CARD8)(p>>8);
+ i8[x*3+2] = (CARD8)(p>>16);
+ case 32:
+ i32 = (CARD32 *)row;
+ i32[x] = (CARD32)pixel;
+ break;
+ }
+}
+#endif
+
+void XMesaPutImageHelper(ScreenPtr display,
+ DrawablePtr d, GCPtr gc,
+ XMesaImage *image,
+ int src_x, int src_y,
+ int dest_x, int dest_y,
+ unsigned int width, unsigned int height)
+{
+ /* NOT_DONE: Verify that the following works for all depths */
+ char *src = (image->data +
+ src_y * image->bytes_per_line +
+ ((src_x * image->bits_per_pixel) >> 3));
+
+ ValidateGC(d, gc);
+ (*gc->ops->PutImage)(d, gc, d->depth, dest_x, dest_y, width, height,
+ 0, ZPixmap, src);
+}
diff --git a/nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.h b/nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.h
new file mode 100644
index 000000000..bb314128d
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/X/xf86glx_util.h
@@ -0,0 +1,105 @@
+/**************************************************************************
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <kevin@precisioninsight.com>
+ * Brian Paul <brian@precisioninsight.com>
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#ifndef _XF86GLX_UTIL_H_
+#define _XF86GLX_UTIL_H_
+
+#ifdef __CYGWIN__
+#undef WIN32
+#undef _WIN32
+#endif
+
+#include <screenint.h>
+#include <pixmap.h>
+#include <gc.h>
+#include "GL/xmesa.h"
+
+#define XMESA_USE_PUTPIXEL_MACRO
+
+struct _XMesaImageRec {
+ int width, height;
+ char *data;
+ int bytes_per_line; /* Padded to 32 bits */
+ int bits_per_pixel;
+};
+
+extern XMesaImage *XMesaCreateImage(int bitsPerPixel, int width, int height,
+ char *data);
+extern void XMesaDestroyImage(XMesaImage *image);
+extern unsigned long XMesaGetPixel(XMesaImage *image, int x, int y);
+#ifdef XMESA_USE_PUTPIXEL_MACRO
+#define XMesaPutPixel(__i,__x,__y,__p) \
+{ \
+ CARD8 *__row = (CARD8 *)(__i->data + __y*__i->bytes_per_line); \
+ CARD8 *__i8; \
+ CARD16 *__i16; \
+ CARD32 *__i32; \
+ switch (__i->bits_per_pixel) { \
+ case 8: \
+ __i8 = (CARD8 *)__row; \
+ __i8[__x] = (CARD8)__p; \
+ break; \
+ case 15: \
+ case 16: \
+ __i16 = (CARD16 *)__row; \
+ __i16[__x] = (CARD16)__p; \
+ break; \
+ case 24: /* WARNING: architecture specific code */ \
+ __i8 = (CARD8 *)__row; \
+ __i8[__x*3] = (CARD8)(__p); \
+ __i8[__x*3+1] = (CARD8)(__p>>8); \
+ __i8[__x*3+2] = (CARD8)(__p>>16); \
+ break; \
+ case 32: \
+ __i32 = (CARD32 *)__row; \
+ __i32[__x] = (CARD32)__p; \
+ break; \
+ } \
+}
+#else
+extern void XMesaPutPixel(XMesaImage *image, int x, int y,
+ unsigned long pixel);
+#endif
+
+extern void XMesaPutImageHelper(ScreenPtr display,
+ DrawablePtr d, GCPtr gc,
+ XMesaImage *image,
+ int src_x, int src_y,
+ int dest_x, int dest_y,
+ unsigned int width, unsigned int height);
+
+#endif /* _XF86GLX_UTIL_H_ */
diff --git a/nx-X11/programs/Xserver/GL/mesa/X/xf86glxint.h b/nx-X11/programs/Xserver/GL/mesa/X/xf86glxint.h
new file mode 100644
index 000000000..4784566a4
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/X/xf86glxint.h
@@ -0,0 +1,101 @@
+/**************************************************************************
+
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <kevin@precisioninsight.com>
+ *
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#ifndef _XF86GLXINT_H_
+#define _XF86GLXINT_H_
+
+#include <miscstruct.h>
+#include <GL/gl.h>
+#include <GL/xmesa.h>
+
+typedef struct __MESA_screenRec __MESA_screen;
+struct __MESA_screenRec {
+ int num_vis;
+ __GLcontextModes *modes;
+ XMesaVisual *xm_vis;
+ void **private;
+};
+
+typedef struct __MESA_bufferRec *__MESA_buffer;
+struct __MESA_bufferRec {
+ XMesaBuffer xm_buf;
+ GLboolean (*fbresize)(__GLdrawableBuffer *buf,
+ GLint x, GLint y, GLuint width, GLuint height,
+ __GLdrawablePrivate *glPriv, GLuint bufferMask);
+ GLboolean (*fbswap)(__GLXdrawablePrivate *glxPriv);
+};
+
+extern void __MESA_setVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
+ void **privates);
+extern Bool __MESA_initVisuals(VisualPtr *visualp, DepthPtr *depthp,
+ int *nvisualp, int *ndepthp, int *rootDepthp,
+ VisualID *defaultVisp, unsigned long sizes,
+ int bitsPerRGB);
+extern Bool __MESA_screenProbe(int screen);
+
+extern void __MESA_resetExtension(void);
+
+extern void __MESA_createBuffer(__GLXdrawablePrivate *glxPriv);
+extern GLboolean __MESA_resizeBuffers(__GLdrawableBuffer *buf,
+ GLint x, GLint y,
+ GLuint width, GLuint height,
+ __GLdrawablePrivate *glPriv,
+ GLuint bufferMask);
+extern GLboolean __MESA_swapBuffers(__GLXdrawablePrivate *glxPriv);
+extern void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv);
+
+extern __GLinterface *__MESA_createContext(__GLimports *imports,
+ __GLcontextModes *modes,
+ __GLinterface *shareGC);
+extern GLboolean __MESA_destroyContext(__GLcontext *gc);
+extern GLboolean __MESA_loseCurrent(__GLcontext *gc);
+extern GLboolean __MESA_makeCurrent(__GLcontext *gc);
+extern GLboolean __MESA_shareContext(__GLcontext *gc, __GLcontext *gcShare);
+extern GLboolean __MESA_copyContext(__GLcontext *dst, const __GLcontext *src,
+ GLuint mask);
+extern GLboolean __MESA_forceCurrent(__GLcontext *gc);
+
+extern GLboolean __MESA_notifyResize(__GLcontext *gc);
+extern void __MESA_notifyDestroy(__GLcontext *gc);
+extern void __MESA_notifySwapBuffers(__GLcontext *gc);
+extern struct __GLdispatchStateRec *__MESA_dispatchExec(__GLcontext *gc);
+extern void __MESA_beginDispatchOverride(__GLcontext *gc);
+extern void __MESA_endDispatchOverride(__GLcontext *gc);
+
+extern GLuint __glFloorLog2(GLuint val);
+
+#endif /* _XF86GLXINT_H_ */
diff --git a/nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile b/nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile
new file mode 100644
index 000000000..474710747
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile
@@ -0,0 +1,36 @@
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaACBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(MESA_AC_SRCS)
+ OBJS = $(MESA_AC_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/array_cache \
+ -I$(MESASRCDIR)/src/mesa/math \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile.inc
new file mode 100644
index 000000000..39f6e2400
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/array_cache/Imakefile.inc
@@ -0,0 +1,28 @@
+MESAACBUILDDIR = MesaACBuildDir
+
+ MESA_AC_SRCS = $(MESAACBUILDDIR)ac_context.c \
+ $(MESAACBUILDDIR)ac_import.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(acache.h, $(MESASRCDIR)/src/mesa/array_cache)
+LinkSourceFile(ac_context.c, $(MESASRCDIR)/src/mesa/array_cache)
+LinkSourceFile(ac_context.h, $(MESASRCDIR)/src/mesa/array_cache)
+LinkSourceFile(ac_import.c, $(MESASRCDIR)/src/mesa/array_cache)
+#endif
+
+ MESA_AC_OBJS = $(MESAACBUILDDIR)ac_context.o \
+ $(MESAACBUILDDIR)ac_import.o
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_AC_UOBJS = $(MESAACBUILDDIR)unshared/ac_context.o \
+ $(MESAACBUILDDIR)unshared/ac_import.o
+#else
+ MESA_AC_UOBJS = $(MESA_AC_OBJS)
+#endif
+
+ MESA_AC_DOBJS = $(MESAACBUILDDIR)debugger/ac_context.o \
+ $(MESAACBUILDDIR)debugger/ac_import.o
+
+ MESA_AC_POBJS = $(MESAACBUILDDIR)profiled/ac_context.o \
+ $(MESAACBUILDDIR)profiled/ac_import.o
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/main/Imakefile b/nx-X11/programs/Xserver/GL/mesa/main/Imakefile
new file mode 100644
index 000000000..d6e914b89
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/main/Imakefile
@@ -0,0 +1,40 @@
+/* Large PIC tables needed for Solaris/SPARC builds */
+#if defined(SunArchitecture) && defined(SparcArchitecture) && defined(LargePositionIndependentCFlags)
+ PICFLAGS = LargePositionIndependentCFlags
+#endif
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(COREMESABASESRCS)
+ OBJS = $(COREMESABASEOBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/main/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/main/Imakefile.inc
new file mode 100644
index 000000000..3e98f9149
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/main/Imakefile.inc
@@ -0,0 +1,481 @@
+/* gcc on ppc64 defines this, causes macro recursion with pixel below */
+#undef pixel
+
+MESABUILDDIR = MesaBuildDir
+
+#ifdef NeedAllMesaSrc
+ DISPATCHSRCS = $(MESABUILDDIR)dispatch.c
+ GLAPISRCS = $(MESABUILDDIR)glapi.c
+ GLTHREADSRCS = $(MESABUILDDIR)glthread.c
+#endif
+
+MESA_CORE_INCLUDES = -I$(MESASRCDIR)/src/array_cache \
+ -I$(MESASRCDIR)/src/math -I$(MESASRCDIR)/src/shader \
+ -I$(MESASRCDIR)/src/swrast -I$(MESASRCDIR)/src/swrast_setup \
+ -I$(MESASRCDIR)/src/tnl -I$(MESASRCDIR)/src/tnl_dd
+
+COREMESABASESRCS = \
+ $(MESABUILDDIR)api_arrayelt.c \
+ $(MESABUILDDIR)api_loopback.c \
+ $(MESABUILDDIR)api_noop.c \
+ $(MESABUILDDIR)api_validate.c \
+ $(MESABUILDDIR)accum.c \
+ $(MESABUILDDIR)attrib.c \
+ $(MESABUILDDIR)blend.c \
+ $(MESABUILDDIR)bufferobj.c \
+ $(MESABUILDDIR)buffers.c \
+ $(MESABUILDDIR)clip.c \
+ $(MESABUILDDIR)colortab.c \
+ $(MESABUILDDIR)context.c \
+ $(MESABUILDDIR)convolve.c \
+ $(MESABUILDDIR)debug.c \
+ $(MESABUILDDIR)depth.c \
+ $(MESABUILDDIR)dlist.c \
+ $(MESABUILDDIR)drawpix.c \
+ $(MESABUILDDIR)enable.c \
+ $(MESABUILDDIR)enums.c \
+ $(MESABUILDDIR)eval.c \
+ $(MESABUILDDIR)execmem.c \
+ $(MESABUILDDIR)extensions.c \
+ $(MESABUILDDIR)feedback.c \
+ $(MESABUILDDIR)fbobject.c \
+ $(MESABUILDDIR)fog.c \
+ $(MESABUILDDIR)framebuffer.c \
+ $(MESABUILDDIR)get.c \
+ $(MESABUILDDIR)getstring.c \
+ $(MESABUILDDIR)hash.c \
+ $(MESABUILDDIR)hint.c \
+ $(MESABUILDDIR)histogram.c \
+ $(MESABUILDDIR)image.c \
+ $(MESABUILDDIR)imports.c \
+ $(MESABUILDDIR)light.c \
+ $(MESABUILDDIR)lines.c \
+ $(MESABUILDDIR)matrix.c \
+ $(MESABUILDDIR)mm.c \
+ $(MESABUILDDIR)occlude.c \
+ $(MESABUILDDIR)pixel.c \
+ $(MESABUILDDIR)points.c \
+ $(MESABUILDDIR)polygon.c \
+ $(MESABUILDDIR)rastpos.c \
+ $(MESABUILDDIR)renderbuffer.c \
+ $(MESABUILDDIR)state.c \
+ $(MESABUILDDIR)stencil.c \
+ $(MESABUILDDIR)texcompress.c \
+ $(MESABUILDDIR)texcompress_fxt1.c \
+ $(MESABUILDDIR)texcompress_s3tc.c \
+ $(MESABUILDDIR)texenvprogram.c \
+ $(MESABUILDDIR)texformat.c \
+ $(MESABUILDDIR)teximage.c \
+ $(MESABUILDDIR)texobj.c \
+ $(MESABUILDDIR)texrender.c \
+ $(MESABUILDDIR)texstate.c \
+ $(MESABUILDDIR)texstore.c \
+ $(MESABUILDDIR)varray.c \
+ $(MESABUILDDIR)vtxfmt.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(api_arrayelt.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_arrayelt.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_eval.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_loopback.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_loopback.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_noop.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_noop.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_validate.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(api_validate.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(accum.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(accum.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(attrib.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(attrib.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(blend.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(blend.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(bufferobj.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(bufferobj.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(buffers.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(buffers.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(clip.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(clip.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(colormac.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(colortab.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(colortab.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(config.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(context.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(context.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(convolve.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(convolve.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(dd.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(debug.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(debug.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(depth.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(depth.h, $(MESASRCDIR)/src/mesa/main)
+#ifdef NeedAllMesaSrc
+LinkSourceFile(dispatch.c, $(MESASRCDIR)/src/mesa/main)
+#endif
+LinkSourceFile(dlist.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(dlist.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(drawpix.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(drawpix.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(enable.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(enable.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(enums.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(enums.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(eval.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(eval.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(execmem.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(extensions.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(extensions.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(fbobject.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(fbobject.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(feedback.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(feedback.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(fog.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(fog.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(framebuffer.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(framebuffer.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(get.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(get.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(getstring.c, $(MESASRCDIR)/src/mesa/main)
+#ifdef NeedAllMesaSrc
+LinkSourceFile(glapi.c, $(MESASRCDIR)/src/mesa/glapi)
+LinkSourceFile(glthread.c, $(MESASRCDIR)/src/mesa/glapi)
+#endif
+LinkSourceFile(glheader.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(hash.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(hash.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(hint.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(hint.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(histogram.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(histogram.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(image.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(image.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(imports.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(imports.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(light.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(light.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(lines.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(lines.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(macros.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(matrix.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(matrix.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(mm.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(mm.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(mtypes.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(occlude.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(occlude.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(pixel.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(pixel.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(points.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(points.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(polygon.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(polygon.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(rastpos.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(rastpos.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(renderbuffer.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(renderbuffer.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(simple_list.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(state.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(state.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(stencil.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(stencil.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texcompress.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texcompress_fxt1.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texcompress_s3tc.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texcompress.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texenvprogram.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texenvprogram.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texformat.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texformat.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texformat_tmp.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(teximage.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(teximage.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texobj.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texobj.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texrender.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texrender.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texstate.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texstate.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texstore.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(texstore.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(varray.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(varray.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(version.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(vtxfmt.c, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(vtxfmt.h, $(MESASRCDIR)/src/mesa/main)
+LinkSourceFile(vtxfmt_tmp.h, $(MESASRCDIR)/src/mesa/main)
+#endif
+
+#ifdef NeedAllMesaSrc
+ DISPATCHOBJS = $(MESABUILDDIR)dispatch.o
+ GLAPIOBJS = $(MESABUILDDIR)glapi.o
+ GLTHREADOBJS = $(MESABUILDDIR)glthread.o
+#endif
+
+COREMESABASEOBJS = \
+ $(DISPATCHOBJS) \
+ $(GLAPIOBJS) \
+ $(GLTHREADOBJS) \
+ $(MESABUILDDIR)api_arrayelt.o \
+ $(MESABUILDDIR)api_loopback.o \
+ $(MESABUILDDIR)api_noop.o \
+ $(MESABUILDDIR)api_validate.o \
+ $(MESABUILDDIR)accum.o \
+ $(MESABUILDDIR)attrib.o \
+ $(MESABUILDDIR)blend.o \
+ $(MESABUILDDIR)bufferobj.o \
+ $(MESABUILDDIR)buffers.o \
+ $(MESABUILDDIR)clip.o \
+ $(MESABUILDDIR)colortab.o \
+ $(MESABUILDDIR)context.o \
+ $(MESABUILDDIR)convolve.o \
+ $(MESABUILDDIR)debug.o \
+ $(MESABUILDDIR)depth.o \
+ $(MESABUILDDIR)dlist.o \
+ $(MESABUILDDIR)drawpix.o \
+ $(MESABUILDDIR)enable.o \
+ $(MESABUILDDIR)enums.o \
+ $(MESABUILDDIR)eval.o \
+ $(MESABUILDDIR)execmem.o \
+ $(MESABUILDDIR)extensions.o \
+ $(MESABUILDDIR)fbobject.o \
+ $(MESABUILDDIR)feedback.o \
+ $(MESABUILDDIR)fog.o \
+ $(MESABUILDDIR)framebuffer.o \
+ $(MESABUILDDIR)get.o \
+ $(MESABUILDDIR)getstring.o \
+ $(MESABUILDDIR)hash.o \
+ $(MESABUILDDIR)hint.o \
+ $(MESABUILDDIR)histogram.o \
+ $(MESABUILDDIR)image.o \
+ $(MESABUILDDIR)imports.o \
+ $(MESABUILDDIR)light.o \
+ $(MESABUILDDIR)lines.o \
+ $(MESABUILDDIR)matrix.o \
+ $(MESABUILDDIR)mm.o \
+ $(MESABUILDDIR)occlude.o \
+ $(MESABUILDDIR)pixel.o \
+ $(MESABUILDDIR)points.o \
+ $(MESABUILDDIR)polygon.o \
+ $(MESABUILDDIR)rastpos.o \
+ $(MESABUILDDIR)renderbuffer.o \
+ $(MESABUILDDIR)state.o \
+ $(MESABUILDDIR)stencil.o \
+ $(MESABUILDDIR)texcompress.o \
+ $(MESABUILDDIR)texcompress_fxt1.o \
+ $(MESABUILDDIR)texcompress_s3tc.o \
+ $(MESABUILDDIR)texenvprogram.o \
+ $(MESABUILDDIR)texformat.o \
+ $(MESABUILDDIR)teximage.o \
+ $(MESABUILDDIR)texrender.o \
+ $(MESABUILDDIR)texobj.o \
+ $(MESABUILDDIR)texstate.o \
+ $(MESABUILDDIR)texstore.o \
+ $(MESABUILDDIR)varray.o \
+ $(MESABUILDDIR)vtxfmt.o
+
+#ifdef NeedAllMesaSrc
+ DISPATCHUOBJS = $(MESABUILDDIR)unshared/dispatch.o
+ GLAPIUOBJS = $(MESABUILDDIR)unshared/glapi.o
+ GLTHREADUOBJS = $(MESABUILDDIR)unshared/glthread.o
+#endif
+
+#if defined(DoSharedLib) && DoSharedLib
+COREMESABASEUOBJS = \
+ $(DISPATCHUOBJS) \
+ $(GLAPIUOBJS) \
+ $(GLTHREADUOBJS) \
+ $(MESABUILDDIR)unshared/api_arrayelt.o \
+ $(MESABUILDDIR)unshared/api_loopback.o \
+ $(MESABUILDDIR)unshared/api_noop.o \
+ $(MESABUILDDIR)unshared/api_validate.o \
+ $(MESABUILDDIR)unshared/accum.o \
+ $(MESABUILDDIR)unshared/attrib.o \
+ $(MESABUILDDIR)unshared/blend.o \
+ $(MESABUILDDIR)unshared/bufferobj.o \
+ $(MESABUILDDIR)unshared/buffers.o \
+ $(MESABUILDDIR)unshared/clip.o \
+ $(MESABUILDDIR)unshared/colortab.o \
+ $(MESABUILDDIR)unshared/context.o \
+ $(MESABUILDDIR)unshared/convolve.o \
+ $(MESABUILDDIR)unshared/debug.o \
+ $(MESABUILDDIR)unshared/depth.o \
+ $(MESABUILDDIR)unshared/dlist.o \
+ $(MESABUILDDIR)unshared/drawpix.o \
+ $(MESABUILDDIR)unshared/enable.o \
+ $(MESABUILDDIR)unshared/enums.o \
+ $(MESABUILDDIR)unshared/eval.o \
+ $(MESABUILDDIR)unshared/execmem.o \
+ $(MESABUILDDIR)unshared/extensions.o \
+ $(MESABUILDDIR)unshared/fbobject.o \
+ $(MESABUILDDIR)unshared/feedback.o \
+ $(MESABUILDDIR)unshared/fog.o \
+ $(MESABUILDDIR)unshared/framebuffer.o \
+ $(MESABUILDDIR)unshared/get.o \
+ $(MESABUILDDIR)unshared/getstring.o \
+ $(MESABUILDDIR)unshared/hash.o \
+ $(MESABUILDDIR)unshared/hint.o \
+ $(MESABUILDDIR)unshared/histogram.o \
+ $(MESABUILDDIR)unshared/image.o \
+ $(MESABUILDDIR)unshared/imports.o \
+ $(MESABUILDDIR)unshared/light.o \
+ $(MESABUILDDIR)unshared/lines.o \
+ $(MESABUILDDIR)unshared/matrix.o \
+ $(MESABUILDDIR)unshared/mm.o \
+ $(MESABUILDDIR)unshared/occlude.o \
+ $(MESABUILDDIR)unshared/pixel.o \
+ $(MESABUILDDIR)unshared/points.o \
+ $(MESABUILDDIR)unshared/polygon.o \
+ $(MESABUILDDIR)unshared/rastpos.o \
+ $(MESABUILDDIR)unshared/renderbuffer.o \
+ $(MESABUILDDIR)unshared/state.o \
+ $(MESABUILDDIR)unshared/stencil.o \
+ $(MESABUILDDIR)unshared/texcompress.o \
+ $(MESABUILDDIR)unshared/texcompress_fxt1.o \
+ $(MESABUILDDIR)unshared/texcompress_s3tc.o \
+ $(MESABUILDDIR)unshared/texenvprogram.o \
+ $(MESABUILDDIR)unshared/texformat.o \
+ $(MESABUILDDIR)unshared/teximage.o \
+ $(MESABUILDDIR)unshared/texobj.o \
+ $(MESABUILDDIR)unshared/texrender.o \
+ $(MESABUILDDIR)unshared/texstate.o \
+ $(MESABUILDDIR)unshared/texstore.o \
+ $(MESABUILDDIR)unshared/varray.o \
+ $(MESABUILDDIR)unshared/vtxfmt.o
+#else
+COREMESABASEUOBJS = $(COREMESABASEOBJS)
+#endif
+
+#ifdef NeedAllMesaSrc
+ DISPATCHDOBJS = $(MESABUILDDIR)debugger/dispatch.o
+ GLAPIDOBJS = $(MESABUILDDIR)debugger/glapi.o
+ GLTHREADDOBJS = $(MESABUILDDIR)debugger/glthread.o
+#endif
+
+COREMESABASEDOBJS = \
+ $(DISPATCHDOBJS) \
+ $(GLAPIDOBJS) \
+ $(GLTHREADDOBJS) \
+ $(MESABUILDDIR)debugger/api_arrayelt.o \
+ $(MESABUILDDIR)debugger/api_loopback.o \
+ $(MESABUILDDIR)debugger/api_noop.o \
+ $(MESABUILDDIR)debugger/api_validate.o \
+ $(MESABUILDDIR)debugger/accum.o \
+ $(MESABUILDDIR)debugger/attrib.o \
+ $(MESABUILDDIR)debugger/blend.o \
+ $(MESABUILDDIR)debugger/bufferobj.o \
+ $(MESABUILDDIR)debugger/buffers.o \
+ $(MESABUILDDIR)debugger/clip.o \
+ $(MESABUILDDIR)debugger/colortab.o \
+ $(MESABUILDDIR)debugger/context.o \
+ $(MESABUILDDIR)debugger/convolve.o \
+ $(MESABUILDDIR)debugger/debug.o \
+ $(MESABUILDDIR)debugger/depth.o \
+ $(MESABUILDDIR)debugger/dlist.o \
+ $(MESABUILDDIR)debugger/drawpix.o \
+ $(MESABUILDDIR)debugger/enable.o \
+ $(MESABUILDDIR)debugger/enums.o \
+ $(MESABUILDDIR)debugger/eval.o \
+ $(MESABUILDDIR)debugger/execmem.o \
+ $(MESABUILDDIR)debugger/extensions.o \
+ $(MESABUILDDIR)debugger/fbobject.o \
+ $(MESABUILDDIR)debugger/feedback.o \
+ $(MESABUILDDIR)debugger/fog.o \
+ $(MESABUILDDIR)debugger/framebuffer.o \
+ $(MESABUILDDIR)debugger/get.o \
+ $(MESABUILDDIR)debugger/getstring.o \
+ $(MESABUILDDIR)debugger/hash.o \
+ $(MESABUILDDIR)debugger/hint.o \
+ $(MESABUILDDIR)debugger/histogram.o \
+ $(MESABUILDDIR)debugger/image.o \
+ $(MESABUILDDIR)debugger/imports.o \
+ $(MESABUILDDIR)debugger/light.o \
+ $(MESABUILDDIR)debugger/lines.o \
+ $(MESABUILDDIR)debugger/matrix.o \
+ $(MESABUILDDIR)debugger/mm.o \
+ $(MESABUILDDIR)debugger/occlude.o \
+ $(MESABUILDDIR)debugger/pixel.o \
+ $(MESABUILDDIR)debugger/points.o \
+ $(MESABUILDDIR)debugger/polygon.o \
+ $(MESABUILDDIR)debugger/rastpos.o \
+ $(MESABUILDDIR)debugger/renderbuffer.o \
+ $(MESABUILDDIR)debugger/state.o \
+ $(MESABUILDDIR)debugger/stencil.o \
+ $(MESABUILDDIR)debugger/texcompress.o \
+ $(MESABUILDDIR)debugger/texcompress_fxt1.o \
+ $(MESABUILDDIR)debugger/texcompress_s3tc.o \
+ $(MESABUILDDIR)debugger/texenvprogram.o \
+ $(MESABUILDDIR)debugger/texformat.o \
+ $(MESABUILDDIR)debugger/teximage.o \
+ $(MESABUILDDIR)debugger/texobj.o \
+ $(MESABUILDDIR)debugger/texrender.o \
+ $(MESABUILDDIR)debugger/texstate.o \
+ $(MESABUILDDIR)debugger/texstore.o \
+ $(MESABUILDDIR)debugger/varray.o \
+ $(MESABUILDDIR)debugger/vtxfmt.o
+
+#ifdef NeedAllMesaSrc
+ DISPATCHPOBJS = $(MESABUILDDIR)profiled/dispatch.o
+ GLAPIPOBJS = $(MESABUILDDIR)profiled/glapi.o
+ GLTHREADPOBJS = $(MESABUILDDIR)profiled/glthread.o
+#endif
+
+COREMESABASEPOBJS = \
+ $(DISPATCHPOBJS) \
+ $(GLAPIPOBJS) \
+ $(GLTHREADPOBJS) \
+ $(MESABUILDDIR)profiled/api_arrayelt.o \
+ $(MESABUILDDIR)profiled/api_loopback.o \
+ $(MESABUILDDIR)profiled/api_noop.o \
+ $(MESABUILDDIR)profiled/api_validate.o \
+ $(MESABUILDDIR)profiled/accum.o \
+ $(MESABUILDDIR)profiled/attrib.o \
+ $(MESABUILDDIR)profiled/blend.o \
+ $(MESABUILDDIR)profiled/bufferobj.o \
+ $(MESABUILDDIR)profiled/buffers.o \
+ $(MESABUILDDIR)profiled/clip.o \
+ $(MESABUILDDIR)profiled/colortab.o \
+ $(MESABUILDDIR)profiled/context.o \
+ $(MESABUILDDIR)profiled/convolve.o \
+ $(MESABUILDDIR)profiled/debug.o \
+ $(MESABUILDDIR)profiled/depth.o \
+ $(MESABUILDDIR)profiled/dlist.o \
+ $(MESABUILDDIR)profiled/drawpix.o \
+ $(MESABUILDDIR)profiled/enable.o \
+ $(MESABUILDDIR)profiled/enums.o \
+ $(MESABUILDDIR)profiled/eval.o \
+ $(MESABUILDDIR)profiled/execmem.o \
+ $(MESABUILDDIR)profiled/extensions.o \
+ $(MESABUILDDIR)profiled/fbobject.o \
+ $(MESABUILDDIR)profiled/feedback.o \
+ $(MESABUILDDIR)profiled/fog.o \
+ $(MESABUILDDIR)profiled/framebuffer.o \
+ $(MESABUILDDIR)profiled/get.o \
+ $(MESABUILDDIR)profiled/getstring.o \
+ $(MESABUILDDIR)profiled/hash.o \
+ $(MESABUILDDIR)profiled/hint.o \
+ $(MESABUILDDIR)profiled/histogram.o \
+ $(MESABUILDDIR)profiled/image.o \
+ $(MESABUILDDIR)profiled/imports.o \
+ $(MESABUILDDIR)profiled/light.o \
+ $(MESABUILDDIR)profiled/lines.o \
+ $(MESABUILDDIR)profiled/matrix.o \
+ $(MESABUILDDIR)profiled/mm.o \
+ $(MESABUILDDIR)profiled/occlude.o \
+ $(MESABUILDDIR)profiled/pixel.o \
+ $(MESABUILDDIR)profiled/points.o \
+ $(MESABUILDDIR)profiled/polygon.o \
+ $(MESABUILDDIR)profiled/rastpos.o \
+ $(MESABUILDDIR)profiled/renderbuffer.o \
+ $(MESABUILDDIR)profiled/state.o \
+ $(MESABUILDDIR)profiled/stencil.o \
+ $(MESABUILDDIR)profiled/texcompress.o \
+ $(MESABUILDDIR)profiled/texcompress_fxt1.o \
+ $(MESABUILDDIR)profiled/texcompress_s3tc.o \
+ $(MESABUILDDIR)profiled/texenvprogram.o \
+ $(MESABUILDDIR)profiled/texformat.o \
+ $(MESABUILDDIR)profiled/teximage.o \
+ $(MESABUILDDIR)profiled/texobj.o \
+ $(MESABUILDDIR)profiled/texrender.o \
+ $(MESABUILDDIR)profiled/texstate.o \
+ $(MESABUILDDIR)profiled/texstore.o \
+ $(MESABUILDDIR)profiled/varray.o \
+ $(MESABUILDDIR)profiled/vtxfmt.o
diff --git a/nx-X11/programs/Xserver/GL/mesa/math/Imakefile b/nx-X11/programs/Xserver/GL/mesa/math/Imakefile
new file mode 100644
index 000000000..6af3a0a0c
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/math/Imakefile
@@ -0,0 +1,35 @@
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaMathBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(MESA_MATH_SRCS)
+ OBJS = $(MESA_MATH_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/math \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/math/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/math/Imakefile.inc
new file mode 100644
index 000000000..bc9a1f326
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/math/Imakefile.inc
@@ -0,0 +1,76 @@
+MESAMATHBUILDDIR = MesaMathBuildDir
+
+ MESA_MATH_SRCS = $(MESAMATHBUILDDIR)m_debug_clip.c \
+ $(MESAMATHBUILDDIR)m_debug_norm.c \
+ $(MESAMATHBUILDDIR)m_debug_xform.c \
+ $(MESAMATHBUILDDIR)m_eval.c \
+ $(MESAMATHBUILDDIR)m_matrix.c \
+ $(MESAMATHBUILDDIR)m_translate.c \
+ $(MESAMATHBUILDDIR)m_vector.c \
+ $(MESAMATHBUILDDIR)m_xform.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(mathmod.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_clip_tmp.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_copy_tmp.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_debug_clip.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_debug.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_debug_util.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_debug_norm.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_debug_xform.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_dotprod_tmp.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_eval.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_eval.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_matrix.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_matrix.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_norm_tmp.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_translate.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_translate.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_trans_tmp.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_vector.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_vector.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_xform.c, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_xform.h, $(MESASRCDIR)/src/mesa/math)
+LinkSourceFile(m_xform_tmp.h, $(MESASRCDIR)/src/mesa/math)
+#endif
+
+ MESA_MATH_OBJS = $(MESAMATHBUILDDIR)m_debug_clip.o \
+ $(MESAMATHBUILDDIR)m_debug_norm.o \
+ $(MESAMATHBUILDDIR)m_debug_xform.o \
+ $(MESAMATHBUILDDIR)m_eval.o \
+ $(MESAMATHBUILDDIR)m_matrix.o \
+ $(MESAMATHBUILDDIR)m_translate.o \
+ $(MESAMATHBUILDDIR)m_vector.o \
+ $(MESAMATHBUILDDIR)m_xform.o
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_MATH_UOBJS = $(MESAMATHBUILDDIR)unshared/m_debug_clip.o \
+ $(MESAMATHBUILDDIR)unshared/m_debug_norm.o \
+ $(MESAMATHBUILDDIR)unshared/m_debug_xform.o \
+ $(MESAMATHBUILDDIR)unshared/m_eval.o \
+ $(MESAMATHBUILDDIR)unshared/m_matrix.o \
+ $(MESAMATHBUILDDIR)unshared/m_translate.o \
+ $(MESAMATHBUILDDIR)unshared/m_vector.o \
+ $(MESAMATHBUILDDIR)unshared/m_xform.o
+#else
+ MATH_MESA_UOBJS = $(MESA_MATH_OBJS)
+#endif
+
+ MESA_MATH_DOBJS = $(MESAMATHBUILDDIR)debugger/m_debug_clip.o \
+ $(MESAMATHBUILDDIR)debugger/m_debug_norm.o \
+ $(MESAMATHBUILDDIR)debugger/m_debug_xform.o \
+ $(MESAMATHBUILDDIR)debugger/m_eval.o \
+ $(MESAMATHBUILDDIR)debugger/m_matrix.o \
+ $(MESAMATHBUILDDIR)debugger/m_translate.o \
+ $(MESAMATHBUILDDIR)debugger/m_vector.o \
+ $(MESAMATHBUILDDIR)debugger/m_xform.o
+
+ MESA_MATH_POBJS = $(MESAMATHBUILDDIR)profiled/m_debug_clip.o \
+ $(MESAMATHBUILDDIR)profiled/m_debug_norm.o \
+ $(MESAMATHBUILDDIR)profiled/m_debug_xform.o \
+ $(MESAMATHBUILDDIR)profiled/m_eval.o \
+ $(MESAMATHBUILDDIR)profiled/m_matrix.o \
+ $(MESAMATHBUILDDIR)profiled/m_translate.o \
+ $(MESAMATHBUILDDIR)profiled/m_vector.o \
+ $(MESAMATHBUILDDIR)profiled/m_xform.o
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/Imakefile b/nx-X11/programs/Xserver/GL/mesa/shader/Imakefile
new file mode 100644
index 000000000..bf3acd4f6
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/Imakefile
@@ -0,0 +1,40 @@
+
+#define IHaveSubdirs
+ SUBDIRS = grammar slang
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaShaderBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(MESA_SHADER_SRCS)
+ OBJS = $(MESA_SHADER_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src/mesa/shader/grammar \
+ -I$(MESASRCDIR)/src/mesa/shader/slang \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/shader/Imakefile.inc
new file mode 100644
index 000000000..185103996
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/Imakefile.inc
@@ -0,0 +1,100 @@
+MESASHADERBUILDDIR = MesaShaderBuildDir
+
+ MESA_SHADER_SRCS = $(MESASHADERBUILDDIR)arbprogparse.c \
+ $(MESASHADERBUILDDIR)arbprogram.c \
+ $(MESASHADERBUILDDIR)arbfragparse.c \
+ $(MESASHADERBUILDDIR)arbvertparse.c \
+ $(MESASHADERBUILDDIR)atifragshader.c \
+ $(MESASHADERBUILDDIR)nvprogram.c \
+ $(MESASHADERBUILDDIR)nvfragparse.c \
+ $(MESASHADERBUILDDIR)nvvertexec.c \
+ $(MESASHADERBUILDDIR)nvvertparse.c \
+ $(MESASHADERBUILDDIR)program.c \
+ $(MESASHADERBUILDDIR)shaderobjects.c \
+ $(MESASHADERBUILDDIR)shaderobjects_3dlabs.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(arbprogparse.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbprogram.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbfragparse.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbvertparse.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbfragparse.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbprogparse.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbprogram.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbprogram_syn.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(arbvertparse.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(atifragshader.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(atifragshader.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvfragparse.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvfragprog.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvprogram.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvprogram.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvfragparse.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvvertexec.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvvertexec.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvvertparse.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvvertparse.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(nvvertprog.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(program.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(program.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(shaderobjects.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(shaderobjects.h, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(shaderobjects_3dlabs.c, $(MESASRCDIR)/src/mesa/shader)
+LinkSourceFile(shaderobjects_3dlabs.h, $(MESASRCDIR)/src/mesa/shader)
+#endif
+
+ MESA_SHADER_OBJS = $(MESASHADERBUILDDIR)arbprogparse.o \
+ $(MESASHADERBUILDDIR)arbprogram.o \
+ $(MESASHADERBUILDDIR)arbfragparse.o \
+ $(MESASHADERBUILDDIR)arbvertparse.o \
+ $(MESASHADERBUILDDIR)atifragshader.o \
+ $(MESASHADERBUILDDIR)nvprogram.o \
+ $(MESASHADERBUILDDIR)nvfragparse.o \
+ $(MESASHADERBUILDDIR)nvvertexec.o \
+ $(MESASHADERBUILDDIR)nvvertparse.o \
+ $(MESASHADERBUILDDIR)program.o \
+ $(MESASHADERBUILDDIR)shaderobjects.o \
+ $(MESASHADERBUILDDIR)shaderobjects_3dlabs.o
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_SHADER_UOBJS = $(MESASHADERBUILDDIR)unshared/arbprogparse.o \
+ $(MESASHADERBUILDDIR)unshared/arbprogram.o \
+ $(MESASHADERBUILDDIR)unshared/arbfragparse.o \
+ $(MESASHADERBUILDDIR)unshared/arbvertparse.o \
+ $(MESASHADERBUILDDIR)unshared/atifragshader.o \
+ $(MESASHADERBUILDDIR)unshared/nvprogram.o \
+ $(MESASHADERBUILDDIR)unshared/nvfragparse.o \
+ $(MESASHADERBUILDDIR)unshared/nvvertexec.o \
+ $(MESASHADERBUILDDIR)unshared/nvvertparse.o \
+ $(MESASHADERBUILDDIR)unshared/program.o \
+ $(MESASHADERBUILDDIR)unshared/shaderobjects.o \
+ $(MESASHADERBUILDDIR)unshared/shaderobjects_3dlabs.o
+#else
+ MESA_SHADER_UOBJS = $(MESA_SHADER_OBJS)
+#endif
+
+ MESA_SHADER_DOBJS = $(MESASHADERBUILDDIR)debugger/arbprogparse.o \
+ $(MESASHADERBUILDDIR)debugger/arbprogram.o \
+ $(MESASHADERBUILDDIR)debugger/arbfragparse.o \
+ $(MESASHADERBUILDDIR)debugger/arbvertparse.o \
+ $(MESASHADERBUILDDIR)debugger/atifragshader.o \
+ $(MESASHADERBUILDDIR)debugger/nvprogram.o \
+ $(MESASHADERBUILDDIR)debugger/nvfragparse.o \
+ $(MESASHADERBUILDDIR)debugger/nvvertexec.o \
+ $(MESASHADERBUILDDIR)debugger/nvvertparse.o \
+ $(MESASHADERBUILDDIR)debugger/program.o \
+ $(MESASHADERBUILDDIR)debugger/shaderobjects.o \
+ $(MESASHADERBUILDDIR)debugger/shaderobjects_3dlabs.o
+
+ MESA_SHADER_POBJS = $(MESASHADERBUILDDIR)profiled/arbprogparse.o \
+ $(MESASHADERBUILDDIR)profiled/arbprogram.o \
+ $(MESASHADERBUILDDIR)profiled/arbfragparse.o \
+ $(MESASHADERBUILDDIR)profiled/arbvertparse.o \
+ $(MESASHADERBUILDDIR)profiled/atifragshader.o \
+ $(MESASHADERBUILDDIR)profiled/nvprogram.o \
+ $(MESASHADERBUILDDIR)profiled/nvfragparse.o \
+ $(MESASHADERBUILDDIR)profiled/nvvertexec.o \
+ $(MESASHADERBUILDDIR)profiled/nvvertparse.o \
+ $(MESASHADERBUILDDIR)profiled/program.o \
+ $(MESASHADERBUILDDIR)profiled/shaderobjects.o \
+ $(MESASHADERBUILDDIR)profiled/shaderobjects_3dlabs.o
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile b/nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile
new file mode 100644
index 000000000..3fe604f2e
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile
@@ -0,0 +1,37 @@
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaGrammarBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(MESA_GRAMMAR_SRCS)
+ OBJS = $(MESA_GRAMMAR_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src/mesa/shader/grammar \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile.inc
new file mode 100644
index 000000000..4f91af9c1
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/grammar/Imakefile.inc
@@ -0,0 +1,23 @@
+MESAGRAMMARBUILDDIR=MesaGrammarBuildDir
+
+ MESA_GRAMMAR_SRCS = $(MESAGRAMMARBUILDDIR)grammar_mesa.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(grammar.c, $(MESASRCDIR)/src/mesa/shader/grammar)
+LinkSourceFile(grammar.h, $(MESASRCDIR)/src/mesa/shader/grammar)
+LinkSourceFile(grammar_syn.h, $(MESASRCDIR)/src/mesa/shader/grammar)
+LinkSourceFile(grammar_mesa.c, $(MESASRCDIR)/src/mesa/shader/grammar)
+LinkSourceFile(grammar_mesa.h, $(MESASRCDIR)/src/mesa/shader/grammar)
+#endif
+
+ MESA_GRAMMAR_OBJS = $(MESAGRAMMARBUILDDIR)grammar_mesa.o
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_GRAMMAR_UOBJS = $(MESAGRAMMARBUILDDIR)unshared/grammar_mesa.o
+#else
+ MESA_GRAMMAR_UOBJS = $(MESA_GRAMMAR_OBJS)
+#endif
+
+ MESA_GRAMMAR_DOBJS = $(MESAGRAMMARBUILDDIR)debugger/grammar_mesa.o
+
+ MESA_GRAMMAR_POBJS = $(MESAGRAMMARBUILDDIR)profiled/grammar_mesa.o
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile b/nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile
new file mode 100644
index 000000000..d5ec4d6cf
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile
@@ -0,0 +1,40 @@
+
+#define IHaveSubdirs
+ SUBDIRS = library
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaSlangBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(MESA_SLANG_SRCS)
+ OBJS = $(MESA_SLANG_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src/mesa/shader/grammar \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile.inc
new file mode 100644
index 000000000..4ffa7805f
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/slang/Imakefile.inc
@@ -0,0 +1,84 @@
+MESASLANGBUILDDIR=MesaSlangBuildDir
+
+ MESA_SLANG_SRCS = $(MESASLANGBUILDDIR)slang_assemble_assignment.c \
+ $(MESASLANGBUILDDIR)slang_assemble.c \
+ $(MESASLANGBUILDDIR)slang_assemble_conditional.c \
+ $(MESASLANGBUILDDIR)slang_assemble_constructor.c \
+ $(MESASLANGBUILDDIR)slang_assemble_typeinfo.c \
+ $(MESASLANGBUILDDIR)slang_compile.c \
+ $(MESASLANGBUILDDIR)slang_execute.c \
+ $(MESASLANGBUILDDIR)slang_preprocess.c \
+ $(MESASLANGBUILDDIR)slang_storage.c \
+ $(MESASLANGBUILDDIR)slang_utility.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(slang_assemble_assignment.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_assignment.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_conditional.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_conditional.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_constructor.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_constructor.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_typeinfo.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_assemble_typeinfo.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_compile.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_compile.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_execute.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_execute.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_preprocess.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_preprocess.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_storage.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_storage.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_utility.c, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(slang_utility.h, $(MESASRCDIR)/src/mesa/shader/slang)
+LinkSourceFile(traverse_wrap.h, $(MESASRCDIR)/src/mesa/shader/slang)
+#endif
+
+ MESA_SLANG_OBJS = $(MESASLANGBUILDDIR)slang_assemble_assignment.o \
+ $(MESASLANGBUILDDIR)slang_assemble.o \
+ $(MESASLANGBUILDDIR)slang_assemble_conditional.o \
+ $(MESASLANGBUILDDIR)slang_assemble_constructor.o \
+ $(MESASLANGBUILDDIR)slang_assemble_typeinfo.o \
+ $(MESASLANGBUILDDIR)slang_compile.o \
+ $(MESASLANGBUILDDIR)slang_execute.o \
+ $(MESASLANGBUILDDIR)slang_preprocess.o \
+ $(MESASLANGBUILDDIR)slang_storage.o \
+ $(MESASLANGBUILDDIR)slang_utility.o
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_SLANG_UOBJS = $(MESASLANGBUILDDIR)unshared/slang_assemble_assignment.o \
+ $(MESASLANGBUILDDIR)unshared/slang_assemble.o \
+ $(MESASLANGBUILDDIR)unshared/slang_assemble_conditional.o \
+ $(MESASLANGBUILDDIR)unshared/slang_assemble_constructor.o \
+ $(MESASLANGBUILDDIR)unshared/slang_assemble_typeinfo.o \
+ $(MESASLANGBUILDDIR)unshared/slang_compile.o \
+ $(MESASLANGBUILDDIR)unshared/slang_execute.o \
+ $(MESASLANGBUILDDIR)unshared/slang_preprocess.o \
+ $(MESASLANGBUILDDIR)unshared/slang_storage.o \
+ $(MESASLANGBUILDDIR)unshared/slang_utility.o
+#else
+ MESA_SLANG_UOBJS = $(MESA_SLANG_OBJS)
+#endif
+
+ MESA_SLANG_DOBJS = $(MESASLANGBUILDDIR)debuggerslang_assemble_assignment.o \
+ $(MESASLANGBUILDDIR)debuggerslang_assemble.o \
+ $(MESASLANGBUILDDIR)debuggerslang_assemble_conditional.o \
+ $(MESASLANGBUILDDIR)debuggerslang_assemble_constructor.o \
+ $(MESASLANGBUILDDIR)debuggerslang_assemble_typeinfo.o \
+ $(MESASLANGBUILDDIR)debuggerslang_compile.o \
+ $(MESASLANGBUILDDIR)debuggerslang_execute.o \
+ $(MESASLANGBUILDDIR)debuggerslang_preprocess.o \
+ $(MESASLANGBUILDDIR)debuggerslang_storage.o \
+ $(MESASLANGBUILDDIR)debuggerslang_utility.o
+
+ MESA_SLANG_POBJS = $(MESASLANGBUILDDIR)profiled/slang_assemble_assignment.o \
+ $(MESASLANGBUILDDIR)profiled/slang_assemble.o \
+ $(MESASLANGBUILDDIR)profiled/slang_assemble_conditional.o \
+ $(MESASLANGBUILDDIR)profiled/slang_assemble_constructor.o \
+ $(MESASLANGBUILDDIR)profiled/slang_assemble_typeinfo.o \
+ $(MESASLANGBUILDDIR)profiled/slang_compile.o \
+ $(MESASLANGBUILDDIR)profiled/slang_execute.o \
+ $(MESASLANGBUILDDIR)profiled/slang_preprocess.o \
+ $(MESASLANGBUILDDIR)profiled/slang_storage.o \
+ $(MESASLANGBUILDDIR)profiled/slang_utility.o
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile b/nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile
new file mode 100644
index 000000000..8c216804d
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile
@@ -0,0 +1,30 @@
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaLibraryBuildDir /**/
+#include "Imakefile.inc"
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src/mesa/shader/grammar \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile.inc
new file mode 100644
index 000000000..06b530063
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/shader/slang/library/Imakefile.inc
@@ -0,0 +1,12 @@
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(slang_common_builtin_gc_bin.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_common_builtin_gc.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_core_gc_bin.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_core_gc.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_fragment_builtin_gc_bin.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_fragment_builtin_gc.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_shader_syn.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_version_syn.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_vertex_builtin_gc_bin.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+LinkSourceFile(slang_vertex_builtin_gc.h, $(MESASRCDIR)/src/mesa/shader/slang/library)
+#endif
diff --git a/nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile b/nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile
new file mode 100644
index 000000000..df47a1caa
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile
@@ -0,0 +1,42 @@
+/* Large PIC tables needed for Solaris/SPARC builds */
+#if defined(SunArchitecture) && defined(SparcArchitecture) && defined(LargePositionIndependentCFlags)
+ PICFLAGS = LargePositionIndependentCFlags
+#endif
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaSwrastBuildDir /**/
+#include "Imakefile.inc"
+
+
+ SRCS = $(MESA_SWRAST_SRCS)
+ OBJS = $(MESA_SWRAST_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/src/mesa/swrast \
+ -I$(MESASRCDIR)/src/mesa/swrast_setup \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
diff --git a/nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile.inc
new file mode 100644
index 000000000..f573098c1
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/swrast/Imakefile.inc
@@ -0,0 +1,212 @@
+MESASWRASTBUILDDIR = MesaSwrastBuildDir
+
+ MESA_SWRAST_SRCS = $(MESASWRASTBUILDDIR)s_aaline.c \
+ $(MESASWRASTBUILDDIR)s_aatriangle.c \
+ $(MESASWRASTBUILDDIR)s_accum.c \
+ $(MESASWRASTBUILDDIR)s_alpha.c \
+ $(MESASWRASTBUILDDIR)s_atifragshader.c \
+ $(MESASWRASTBUILDDIR)s_bitmap.c \
+ $(MESASWRASTBUILDDIR)s_blend.c \
+ $(MESASWRASTBUILDDIR)s_buffers.c \
+ $(MESASWRASTBUILDDIR)s_context.c \
+ $(MESASWRASTBUILDDIR)s_copypix.c \
+ $(MESASWRASTBUILDDIR)s_depth.c \
+ $(MESASWRASTBUILDDIR)s_drawpix.c \
+ $(MESASWRASTBUILDDIR)s_feedback.c \
+ $(MESASWRASTBUILDDIR)s_fog.c \
+ $(MESASWRASTBUILDDIR)s_imaging.c \
+ $(MESASWRASTBUILDDIR)s_lines.c \
+ $(MESASWRASTBUILDDIR)s_logic.c \
+ $(MESASWRASTBUILDDIR)s_masking.c \
+ $(MESASWRASTBUILDDIR)s_nvfragprog.c \
+ $(MESASWRASTBUILDDIR)s_pixeltex.c \
+ $(MESASWRASTBUILDDIR)s_points.c \
+ $(MESASWRASTBUILDDIR)s_readpix.c \
+ $(MESASWRASTBUILDDIR)s_span.c \
+ $(MESASWRASTBUILDDIR)s_stencil.c \
+ $(MESASWRASTBUILDDIR)s_texstore.c \
+ $(MESASWRASTBUILDDIR)s_texture.c \
+ $(MESASWRASTBUILDDIR)s_triangle.c \
+ $(MESASWRASTBUILDDIR)s_zoom.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(s_aaline.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_aaline.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_aalinetemp.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_aatriangle.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_aatriangle.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_aatritemp.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_accum.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_accum.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_alpha.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_alpha.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_atifragshader.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_atifragshader.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_bitmap.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_blend.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_blend.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_buffers.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_context.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_context.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_copypix.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_depth.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_depth.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_drawpix.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_drawpix.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_feedback.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_feedback.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_fog.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_fog.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_imaging.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_lines.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_lines.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_linetemp.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_logic.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_logic.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_masking.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_masking.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_nvfragprog.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_nvfragprog.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_pixeltex.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_pixeltex.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_points.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_points.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_pointtemp.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_readpix.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_span.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_span.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_spantemp.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_stencil.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_stencil.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_texstore.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_texture.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_texture.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_triangle.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_triangle.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_trispan.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_tritemp.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_zoom.c, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(s_zoom.h, $(MESASRCDIR)/src/mesa/swrast)
+LinkSourceFile(swrast.h, $(MESASRCDIR)/src/mesa/swrast)
+#endif
+
+ MESA_SWRAST_OBJS = $(MESASWRASTBUILDDIR)s_aaline.o \
+ $(MESASWRASTBUILDDIR)s_aatriangle.o \
+ $(MESASWRASTBUILDDIR)s_accum.o \
+ $(MESASWRASTBUILDDIR)s_alpha.o \
+ $(MESASWRASTBUILDDIR)s_atifragshader.o \
+ $(MESASWRASTBUILDDIR)s_bitmap.o \
+ $(MESASWRASTBUILDDIR)s_blend.o \
+ $(MESASWRASTBUILDDIR)s_buffers.o \
+ $(MESASWRASTBUILDDIR)s_context.o \
+ $(MESASWRASTBUILDDIR)s_copypix.o \
+ $(MESASWRASTBUILDDIR)s_depth.o \
+ $(MESASWRASTBUILDDIR)s_drawpix.o \
+ $(MESASWRASTBUILDDIR)s_feedback.o \
+ $(MESASWRASTBUILDDIR)s_fog.o \
+ $(MESASWRASTBUILDDIR)s_imaging.o \
+ $(MESASWRASTBUILDDIR)s_lines.o \
+ $(MESASWRASTBUILDDIR)s_logic.o \
+ $(MESASWRASTBUILDDIR)s_masking.o \
+ $(MESASWRASTBUILDDIR)s_nvfragprog.o \
+ $(MESASWRASTBUILDDIR)s_pixeltex.o \
+ $(MESASWRASTBUILDDIR)s_points.o \
+ $(MESASWRASTBUILDDIR)s_readpix.o \
+ $(MESASWRASTBUILDDIR)s_span.o \
+ $(MESASWRASTBUILDDIR)s_stencil.o \
+ $(MESASWRASTBUILDDIR)s_texstore.o \
+ $(MESASWRASTBUILDDIR)s_texture.o \
+ $(MESASWRASTBUILDDIR)s_triangle.o \
+ $(MESASWRASTBUILDDIR)s_zoom.o
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_SWRAST_UOBJS = $(MESASWRASTBUILDDIR)unshared/s_aaline.o \
+ $(MESASWRASTBUILDDIR)unshared/s_aatriangle.o \
+ $(MESASWRASTBUILDDIR)unshared/s_accum.o \
+ $(MESASWRASTBUILDDIR)unshared/s_alpha.o \
+ $(MESASWRASTBUILDDIR)unshared/s_atifragshader.o \
+ $(MESASWRASTBUILDDIR)unshared/s_bitmap.o \
+ $(MESASWRASTBUILDDIR)unshared/s_blend.o \
+ $(MESASWRASTBUILDDIR)unshared/s_buffers.o \
+ $(MESASWRASTBUILDDIR)unshared/s_context.o \
+ $(MESASWRASTBUILDDIR)unshared/s_copypix.o \
+ $(MESASWRASTBUILDDIR)unshared/s_depth.o \
+ $(MESASWRASTBUILDDIR)unshared/s_drawpix.o \
+ $(MESASWRASTBUILDDIR)unshared/s_feedback.o \
+ $(MESASWRASTBUILDDIR)unshared/s_fog.o \
+ $(MESASWRASTBUILDDIR)unshared/s_imaging.o \
+ $(MESASWRASTBUILDDIR)unshared/s_lines.o \
+ $(MESASWRASTBUILDDIR)unshared/s_logic.o \
+ $(MESASWRASTBUILDDIR)unshared/s_masking.o \
+ $(MESASWRASTBUILDDIR)unshared/s_nvfragprog.o \
+ $(MESASWRASTBUILDDIR)unshared/s_pixeltex.o \
+ $(MESASWRASTBUILDDIR)unshared/s_points.o \
+ $(MESASWRASTBUILDDIR)unshared/s_readpix.o \
+ $(MESASWRASTBUILDDIR)unshared/s_span.o \
+ $(MESASWRASTBUILDDIR)unshared/s_stencil.o \
+ $(MESASWRASTBUILDDIR)unshared/s_texstore.o \
+ $(MESASWRASTBUILDDIR)unshared/s_texture.o \
+ $(MESASWRASTBUILDDIR)unshared/s_triangle.o \
+ $(MESASWRASTBUILDDIR)unshared/s_zoom.o
+#else
+ MESA_SWRAST_UOBJS = $(MESA_SWRAST_OBJS)
+#endif
+
+ MESA_SWRAST_DOBJS = $(MESASWRASTBUILDDIR)debugger/s_aaline.o \
+ $(MESASWRASTBUILDDIR)debugger/s_aatriangle.o \
+ $(MESASWRASTBUILDDIR)debugger/s_accum.o \
+ $(MESASWRASTBUILDDIR)debugger/s_alpha.o \
+ $(MESASWRASTBUILDDIR)debugger/s_atifragshader.o \
+ $(MESASWRASTBUILDDIR)debugger/s_bitmap.o \
+ $(MESASWRASTBUILDDIR)debugger/s_blend.o \
+ $(MESASWRASTBUILDDIR)debugger/s_buffers.o \
+ $(MESASWRASTBUILDDIR)debugger/s_context.o \
+ $(MESASWRASTBUILDDIR)debugger/s_copypix.o \
+ $(MESASWRASTBUILDDIR)debugger/s_depth.o \
+ $(MESASWRASTBUILDDIR)debugger/s_drawpix.o \
+ $(MESASWRASTBUILDDIR)debugger/s_feedback.o \
+ $(MESASWRASTBUILDDIR)debugger/s_fog.o \
+ $(MESASWRASTBUILDDIR)debugger/s_imaging.o \
+ $(MESASWRASTBUILDDIR)debugger/s_lines.o \
+ $(MESASWRASTBUILDDIR)debugger/s_logic.o \
+ $(MESASWRASTBUILDDIR)debugger/s_masking.o \
+ $(MESASWRASTBUILDDIR)debugger/s_nvfragprog.o \
+ $(MESASWRASTBUILDDIR)debugger/s_pixeltex.o \
+ $(MESASWRASTBUILDDIR)debugger/s_points.o \
+ $(MESASWRASTBUILDDIR)debugger/s_readpix.o \
+ $(MESASWRASTBUILDDIR)debugger/s_span.o \
+ $(MESASWRASTBUILDDIR)debugger/s_stencil.o \
+ $(MESASWRASTBUILDDIR)debugger/s_texstore.o \
+ $(MESASWRASTBUILDDIR)debugger/s_texture.o \
+ $(MESASWRASTBUILDDIR)debugger/s_triangle.o \
+ $(MESASWRASTBUILDDIR)debugger/s_zoom.o
+
+ MESA_SWRAST_POBJS = $(MESASWRASTBUILDDIR)profiled/s_aaline.o \
+ $(MESASWRASTBUILDDIR)profiled/s_aatriangle.o \
+ $(MESASWRASTBUILDDIR)profiled/s_accum.o \
+ $(MESASWRASTBUILDDIR)profiled/s_alpha.o \
+ $(MESASWRASTBUILDDIR)profiled/s_atifragshader.o \
+ $(MESASWRASTBUILDDIR)profiled/s_bitmap.o \
+ $(MESASWRASTBUILDDIR)profiled/s_blend.o \
+ $(MESASWRASTBUILDDIR)profiled/s_buffers.o \
+ $(MESASWRASTBUILDDIR)profiled/s_context.o \
+ $(MESASWRASTBUILDDIR)profiled/s_copypix.o \
+ $(MESASWRASTBUILDDIR)profiled/s_depth.o \
+ $(MESASWRASTBUILDDIR)profiled/s_drawpix.o \
+ $(MESASWRASTBUILDDIR)profiled/s_feedback.o \
+ $(MESASWRASTBUILDDIR)profiled/s_fog.o \
+ $(MESASWRASTBUILDDIR)profiled/s_imaging.o \
+ $(MESASWRASTBUILDDIR)profiled/s_lines.o \
+ $(MESASWRASTBUILDDIR)profiled/s_logic.o \
+ $(MESASWRASTBUILDDIR)profiled/s_masking.o \
+ $(MESASWRASTBUILDDIR)profiled/s_nvfragprog.o \
+ $(MESASWRASTBUILDDIR)profiled/s_pixeltex.o \
+ $(MESASWRASTBUILDDIR)profiled/s_points.o \
+ $(MESASWRASTBUILDDIR)profiled/s_readpix.o \
+ $(MESASWRASTBUILDDIR)profiled/s_span.o \
+ $(MESASWRASTBUILDDIR)profiled/s_stencil.o \
+ $(MESASWRASTBUILDDIR)profiled/s_texstore.o \
+ $(MESASWRASTBUILDDIR)profiled/s_texture.o \
+ $(MESASWRASTBUILDDIR)profiled/s_triangle.o \
+ $(MESASWRASTBUILDDIR)profiled/s_zoom.o
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile b/nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile
new file mode 100644
index 000000000..be2ce62a4
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile
@@ -0,0 +1,34 @@
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaSwrastSetupBuildDir /**/
+#include "Imakefile.inc"
+
+ SRCS = $(MESA_SWR_SETUP_SRCS)
+ OBJS = $(MESA_SWR_SETUP_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/src/mesa/swrast_setup \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
diff --git a/nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile.inc
new file mode 100644
index 000000000..567ad65b8
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/swrast_setup/Imakefile.inc
@@ -0,0 +1,30 @@
+MESASWRSETUPDIR = MesaSwrastSetupBuildDir
+
+ MESA_SWR_SETUP_SRCS = $(MESASWRSETUPDIR)ss_context.c \
+ $(MESASWRSETUPDIR)ss_triangle.c
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(ss_context.c, $(MESASRCDIR)/src/mesa/swrast_setup)
+LinkSourceFile(ss_context.h, $(MESASRCDIR)/src/mesa/swrast_setup)
+LinkSourceFile(ss_triangle.c, $(MESASRCDIR)/src/mesa/swrast_setup)
+LinkSourceFile(ss_triangle.h, $(MESASRCDIR)/src/mesa/swrast_setup)
+LinkSourceFile(ss_tritmp.h, $(MESASRCDIR)/src/mesa/swrast_setup)
+LinkSourceFile(swrast_setup.h, $(MESASRCDIR)/src/mesa/swrast_setup)
+#endif
+
+ MESA_SWR_SETUP_OBJS = $(MESASWRSETUPDIR)ss_context.o \
+ $(MESASWRSETUPDIR)ss_triangle.o
+
+#if defined(DoSharedLib) && DoSharedLib
+MESA_SWR_SETUP_UOBJS = $(MESASWRSETUPDIR)unshared/ss_context.o \
+ $(MESASWRSETUPDIR)unshared/ss_triangle.o
+#else
+MESA_SWR_SETUP_UOBJS = $(MESA_SWR_SETUP_OBJS)
+#endif
+
+MESA_SWR_SETUP_DOBJS = $(MESASWRSETUPDIR)debugger/ss_context.o \
+ $(MESASWRSETUPDIR)debugger/ss_triangle.o
+
+MESA_SWR_SETUP_POBJS = $(MESASWRSETUPDIR)profiled/ss_context.o \
+ $(MESASWRSETUPDIR)profiled/ss_triangle.o
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile b/nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile
new file mode 100644
index 000000000..b36454259
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile
@@ -0,0 +1,45 @@
+/* Large PIC tables needed for Solaris/SPARC builds */
+#if defined(SunArchitecture) && defined(SparcArchitecture) && defined(LargePositionIndependentCFlags)
+ PICFLAGS = LargePositionIndependentCFlags
+#endif
+
+
+#include <Server.tmpl>
+
+#define NeedAllMesaSrc
+#define NeedToLinkMesaSrc
+#define MesaTnlBuildDir /**/
+#include "Imakefile.inc"
+
+
+ SRCS = $(MESA_TNL_SRCS)
+ OBJS = $(MESA_TNL_OBJS)
+
+ INCLUDES = -I$(MESASRCDIR)/src/mesa \
+ -I$(MESASRCDIR)/src/mesa/array_cache \
+ -I$(MESASRCDIR)/src/mesa/math \
+ -I$(MESASRCDIR)/src/mesa/main \
+ -I$(MESASRCDIR)/src/mesa/glapi \
+ -I$(MESASRCDIR)/src/mesa/shader \
+ -I$(MESASRCDIR)/src/mesa/tnl \
+ -I$(MESASRCDIR)/include \
+ -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
+ -I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
+ -I$(LIBSRC)/GL/include \
+ -I$(XF86SRC) -I$(INCLUDESRC)
+
+ DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+NormalLibraryObjectRule()
+
+SubdirLibraryRule($(OBJS))
+
+NormalLintTarget($(SRCS))
+
+DependTarget()
+
+#ifdef IHaveSubdirs
+MakeSubdirs($(SUBDIRS))
+DependSubdirs($(SUBDIRS))
+#endif
+
diff --git a/nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile.inc b/nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile.inc
new file mode 100644
index 000000000..a6c8f923e
--- /dev/null
+++ b/nx-X11/programs/Xserver/GL/mesa/tnl/Imakefile.inc
@@ -0,0 +1,219 @@
+MESATNLBUILDDIR = MesaTnlBuildDir
+
+ MESA_TNL_SRCS = $(MESATNLBUILDDIR)t_array_api.c \
+ $(MESATNLBUILDDIR)t_array_import.c \
+ $(MESATNLBUILDDIR)t_context.c \
+ $(MESATNLBUILDDIR)t_pipeline.c \
+ $(MESATNLBUILDDIR)t_save_api.c \
+ $(MESATNLBUILDDIR)t_save_loopback.c \
+ $(MESATNLBUILDDIR)t_save_playback.c \
+ $(MESATNLBUILDDIR)t_vb_arbprogram.c \
+ $(MESATNLBUILDDIR)t_vb_arbprogram_sse.c \
+ $(MESATNLBUILDDIR)t_vb_fog.c \
+ $(MESATNLBUILDDIR)t_vb_cull.c \
+ $(MESATNLBUILDDIR)t_vb_light.c \
+ $(MESATNLBUILDDIR)t_vb_normals.c \
+ $(MESATNLBUILDDIR)t_vb_points.c \
+ $(MESATNLBUILDDIR)t_vb_program.c \
+ $(MESATNLBUILDDIR)t_vb_render.c \
+ $(MESATNLBUILDDIR)t_vb_texgen.c \
+ $(MESATNLBUILDDIR)t_vb_texmat.c \
+ $(MESATNLBUILDDIR)t_vb_vertex.c \
+ $(MESATNLBUILDDIR)t_vertex.c \
+ $(MESATNLBUILDDIR)t_vertex_generic.c \
+ $(MESATNLBUILDDIR)t_vertex_sse.c \
+ $(MESATNLBUILDDIR)t_vp_build.c \
+ $(MESATNLBUILDDIR)t_vtx_api.c \
+ $(MESATNLBUILDDIR)t_vtx_eval.c \
+ $(MESATNLBUILDDIR)t_vtx_exec.c \
+ $(MESATNLBUILDDIR)t_vtx_generic.c
+
+#if defined(i386Architecture) && MesaUseX86Asm
+ MESA_TNL_SRCS += MesaTnlAsmSrcs $(MESATNLBUILDDIR)t_vtx_x86.c \
+ $(MESATNLBUILDDIR)t_vtx_x86_gcc.S
+#endif
+
+#ifdef NeedToLinkMesaSrc
+LinkSourceFile(t_array_api.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_array_api.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_array_import.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_array_import.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_context.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_context.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(tnl.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_pipeline.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_pipeline.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_save_api.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_save_api.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_save_loopback.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_save_playback.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_arbprogram.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_arbprogram.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_arbprogram_sse.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_cliptmp.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_fog.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_cull.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_light.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_lighttmp.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_normals.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_points.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_program.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_render.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_rendertmp.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_texgen.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_texmat.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vb_vertex.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vertex.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vertex.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vertex_generic.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vertex_sse.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vp_build.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vp_build.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vtx_api.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vtx_api.h, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vtx_eval.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vtx_exec.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vtx_generic.c, $(MESASRCDIR)/src/mesa/tnl)
+#if defined(i386Architecture) && MesaUseX86Asm
+LinkSourceFile(t_vtx_x86.c, $(MESASRCDIR)/src/mesa/tnl)
+LinkSourceFile(t_vtx_x86_gcc.S, $(MESASRCDIR)/src/mesa/tnl)
+#endif
+#endif
+
+ MESA_TNL_OBJS = $(MESATNLBUILDDIR)t_array_api.o \
+ $(MESATNLBUILDDIR)t_array_import.o \
+ $(MESATNLBUILDDIR)t_context.o \
+ $(MESATNLBUILDDIR)t_pipeline.o \
+ $(MESATNLBUILDDIR)t_save_api.o \
+ $(MESATNLBUILDDIR)t_save_loopback.o \
+ $(MESATNLBUILDDIR)t_save_playback.o \
+ $(MESATNLBUILDDIR)t_vb_arbprogram.o \
+ $(MESATNLBUILDDIR)t_vb_arbprogram_sse.o \
+ $(MESATNLBUILDDIR)t_vb_fog.o \
+ $(MESATNLBUILDDIR)t_vb_cull.o \
+ $(MESATNLBUILDDIR)t_vb_light.o \
+ $(MESATNLBUILDDIR)t_vb_normals.o \
+ $(MESATNLBUILDDIR)t_vb_points.o \
+ $(MESATNLBUILDDIR)t_vb_program.o \
+ $(MESATNLBUILDDIR)t_vb_render.o \
+ $(MESATNLBUILDDIR)t_vb_texgen.o \
+ $(MESATNLBUILDDIR)t_vb_texmat.o \
+ $(MESATNLBUILDDIR)t_vb_vertex.o \
+ $(MESATNLBUILDDIR)t_vertex.o \
+ $(MESATNLBUILDDIR)t_vertex_generic.o \
+ $(MESATNLBUILDDIR)t_vertex_sse.o \
+ $(MESATNLBUILDDIR)t_vp_build.o \
+ $(MESATNLBUILDDIR)t_vtx_api.o \
+ $(MESATNLBUILDDIR)t_vtx_eval.o \
+ $(MESATNLBUILDDIR)t_vtx_exec.o \
+ $(MESATNLBUILDDIR)t_vtx_generic.o
+
+#if defined(i386Architecture) && MesaUseX86Asm
+ MESA_TNL_OBJS += $(MESATNLBUILDDIR)t_vtx_x86.o \
+ $(MESATNLBUILDDIR)t_vtx_x86_gcc.o
+#endif
+
+#if defined(DoSharedLib) && DoSharedLib
+ MESA_TNL_UOBJS = $(MESATNLBUILDDIR)unshared/t_array_api.o \
+ $(MESATNLBUILDDIR)unshared/t_array_import.o \
+ $(MESATNLBUILDDIR)unshared/t_context.o \
+ $(MESATNLBUILDDIR)unshared/t_pipeline.o \
+ $(MESATNLBUILDDIR)unshared/t_save_api.o \
+ $(MESATNLBUILDDIR)unshared/t_save_loopback.o \
+ $(MESATNLBUILDDIR)unshared/t_save_playback.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_arbprogram.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_arbprogram_sse.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_fog.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_cull.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_light.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_normals.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_points.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_program.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_render.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_texgen.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_texmat.o \
+ $(MESATNLBUILDDIR)unshared/t_vb_vertex.o \
+ $(MESATNLBUILDDIR)unshared/t_vertex.o \
+ $(MESATNLBUILDDIR)unshared/t_vertex_generic.o \
+ $(MESATNLBUILDDIR)unshared/t_vertex_sse.o \
+ $(MESATNLBUILDDIR)unshared/t_vp_build.o \
+ $(MESATNLBUILDDIR)unshared/t_vtx_api.o \
+ $(MESATNLBUILDDIR)unshared/t_vtx_eval.o \
+ $(MESATNLBUILDDIR)unshared/t_vtx_exec.o \
+ $(MESATNLBUILDDIR)unshared/t_vtx_generic.o
+
+#if defined(i386Architecture) && MesaUseX86Asm
+ MESA_TNL_UOBJS += $(MESATNLBUILDDIR)unshared/t_vtx_x86.o \
+ $(MESATNLBUILDDIR)t_vtx_x86_gcc.o
+#endif
+
+#else
+ MESA_TNL_UOBJS = $(MESA_TNL_OBJS)
+#endif
+
+ MESA_TNL_DOBJS = $(MESATNLBUILDDIR)debugger/t_array_api.o \
+ $(MESATNLBUILDDIR)debugger/t_array_import.o \
+ $(MESATNLBUILDDIR)debugger/t_context.o \
+ $(MESATNLBUILDDIR)debugger/t_pipeline.o \
+ $(MESATNLBUILDDIR)debugger/t_save_api.o \
+ $(MESATNLBUILDDIR)debugger/t_save_loopback.o \
+ $(MESATNLBUILDDIR)debugger/t_save_playback.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_arbprogram.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_arbprogram_sse.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_fog.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_cull.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_light.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_normals.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_points.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_program.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_render.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_texgen.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_texmat.o \
+ $(MESATNLBUILDDIR)debugger/t_vb_vertex.o \
+ $(MESATNLBUILDDIR)debugger/t_vertex.o \
+ $(MESATNLBUILDDIR)debugger/t_vertex_generic.o \
+ $(MESATNLBUILDDIR)debugger/t_vertex_sse.o \
+ $(MESATNLBUILDDIR)debugger/t_vp_build.o \
+ $(MESATNLBUILDDIR)debugger/t_vtx_api.o \
+ $(MESATNLBUILDDIR)debugger/t_vtx_eval.o \
+ $(MESATNLBUILDDIR)debugger/t_vtx_exec.o \
+ $(MESATNLBUILDDIR)debugger/t_vtx_generic.o
+
+#if defined(i386Architecture) && MesaUseX86Asm
+ MESA_TNL_DOBJS += $(MESATNLBUILDDIR)debugger/t_vtx_x86.o \
+ $(MESATNLBUILDDIR)debugger/t_vtx_x86_gcc.o
+#endif
+
+ MESA_TNL_POBJS = $(MESATNLBUILDDIR)profiled/t_array_api.o \
+ $(MESATNLBUILDDIR)profiled/t_array_import.o \
+ $(MESATNLBUILDDIR)profiled/t_context.o \
+ $(MESATNLBUILDDIR)profiled/t_pipeline.o \
+ $(MESATNLBUILDDIR)profiled/t_save_api.o \
+ $(MESATNLBUILDDIR)profiled/t_save_loopback.o \
+ $(MESATNLBUILDDIR)profiled/t_save_playback.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_arbprogram.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_arbprogram_sse.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_fog.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_cull.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_light.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_normals.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_points.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_program.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_render.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_texgen.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_texmat.o \
+ $(MESATNLBUILDDIR)profiled/t_vb_vertex.o \
+ $(MESATNLBUILDDIR)profiled/t_vertex.o \
+ $(MESATNLBUILDDIR)profiled/t_vertex_generic.o \
+ $(MESATNLBUILDDIR)profiled/t_vertex_sse.o \
+ $(MESATNLBUILDDIR)profiled/t_vp_build.o \
+ $(MESATNLBUILDDIR)profiled/t_vtx_api.o \
+ $(MESATNLBUILDDIR)profiled/t_vtx_eval.o \
+ $(MESATNLBUILDDIR)profiled/t_vtx_exec.o \
+ $(MESATNLBUILDDIR)profiled/t_vtx_generic.o
+
+#if defined(i386Architecture) && MesaUseX86Asm
+ MESA_TNL_POBJS += $(MESATNLBUILDDIR)profiled/t_vtx_x86.o \
+ $(MESATNLBUILDDIR)profiled/t_vtx_x86_gcc.o
+#endif
+