Committing in .

 OpenVMS support for new directory tree

 Modified Files:
 	Mesa-newtree/progs/demos/descrip.mms
 	Mesa-newtree/progs/tests/descrip.mms
 	Mesa-newtree/progs/xdemos/descrip.mms
 	Mesa-newtree/src/glu/sgi/descrip.mms
 	Mesa-newtree/src/glut/glx/descrip.mms
 	Mesa-newtree/src/mesa/main/descrip.mms
 Added Files:
 	Mesa-newtree/descrip.mms Mesa-newtree/mms-config.
 	Mesa-newtree/src/descrip.mms Mesa-newtree/src/glu/descrip.mms
 	Mesa-newtree/src/mesa/descrip.mms
 	Mesa-newtree/src/mesa/array_cache/descrip.mms
 	Mesa-newtree/src/mesa/drivers/osmesa/descrip.mms
 	Mesa-newtree/src/mesa/drivers/x11/descrip.mms
 	Mesa-newtree/src/mesa/glapi/descrip.mms
 	Mesa-newtree/src/mesa/math/descrip.mms
 	Mesa-newtree/src/mesa/swrast/descrip.mms
 	Mesa-newtree/src/mesa/swrast_setup/descrip.mms
 	Mesa-newtree/src/mesa/tnl/descrip.mms
 	Mesa-newtree/vms/analyze_map.com Mesa-newtree/vms/xlib.opt
 	Mesa-newtree/vms/xlib_share.opt
 ----------------------------------------------------------------------
diff --git a/descrip.mms b/descrip.mms
new file mode 100644
index 0000000..a45f868
--- /dev/null
+++ b/descrip.mms
@@ -0,0 +1,21 @@
+# Makefile for Mesa for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+
+macro : 
+        @ macro=""
+.ifdef NOSHARE
+.else
+	@ if f$getsyi("HW_MODEL") .ge. 1024 then macro= "/MACRO=(SHARE=1)"
+.endif
+	$(MMS)$(MMSQUALIFIERS)'macro' all
+
+all :
+	if f$search("lib.dir") .eqs. "" then create/directory [.lib]
+	set default [.src]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.progs.demos]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.xdemos]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.tests]
+	$(MMS)$(MMSQUALIFIERS)
diff --git a/mms-config. b/mms-config.
new file mode 100644
index 0000000..6a96008
--- /dev/null
+++ b/mms-config.
@@ -0,0 +1,23 @@
+# Makefile for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+
+
+#vms
+.ifdef SHARE
+GL_SHAR = libMesaGL.exe
+GLU_SHAR = libMesaGLU.exe
+GLUT_SHAR = libglut.exe
+.endif
+GL_LIB = libMesaGL.olb
+GLU_LIB = libMesaGLU.olb
+GLUT_LIB = libglut.olb
+CC = cc
+CXX = cxx/define=(LIBRARYBUILD=1)/assume=(nostdnew,noglobal_array_new)
+CFLAGS1 =
+MAKELIB = library/create
+RANLIB = true
+.ifdef SHARE
+XLIBS = [--.vms]xlib_share/opt
+.else
+XLIBS = [--.vms]xlib/opt
+.endif
diff --git a/progs/demos/descrip.mms b/progs/demos/descrip.mms
index b7db087..6c7727e 100644
--- a/progs/demos/descrip.mms
+++ b/progs/demos/descrip.mms
@@ -3,22 +3,23 @@
 
 
 .first
-	define gl [-.include.gl]
+	define gl [--.include.gl]
 
-.include [-]mms-config.
+.include [--]mms-config.
 
 ##### MACROS #####
 
-INCDIR = ([-.include],[-.util])
+INCDIR = ([--.include],[-.util])
 CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)
 
 .ifdef SHARE
 GL_LIBS = $(XLIBS)
+LIB_DEP = [--.lib]$(GL_SHAR) [--.lib]$(GLU_SHAR) [--.lib]$(GLUT_SHAR)
 .else
-GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
+GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
+LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB)
 .endif
 
-LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB)
 
 PROGS = bounce.exe;,clearspd.exe;,drawpix.exe;,gamma.exe;,gears.exe;,\
 	glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,osdemo.exe;,\
diff --git a/progs/tests/descrip.mms b/progs/tests/descrip.mms
index 4b4c51b..a54c6ea 100644
--- a/progs/tests/descrip.mms
+++ b/progs/tests/descrip.mms
@@ -1,24 +1,24 @@
 # Makefile for GLUT-based demo programs for VMS
-# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
 
 
 .first
-	define gl [-.include.gl]
+	define gl [--.include.gl]
 
-.include [-]mms-config.
+.include [--]mms-config.
 
 ##### MACROS #####
 
-INCDIR = ([-.include],[-.util])
+INCDIR = ([--.include],[-.util])
 CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)
 
 .ifdef SHARE
 GL_LIBS = $(XLIBS)
 .else
-GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
+GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
 .endif
 
-LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB)
+LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB)
 
 PROGS = cva.exe,\
 	dinoshade.exe,\
diff --git a/progs/xdemos/descrip.mms b/progs/xdemos/descrip.mms
index 3e01496..7ee749a 100644
--- a/progs/xdemos/descrip.mms
+++ b/progs/xdemos/descrip.mms
@@ -1,24 +1,24 @@
 # Makefile for GLUT-based demo programs for VMS
-# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
 
 
 .first
-	define gl [-.include.gl]
+	define gl [--.include.gl]
 
-.include [-]mms-config.
+.include [--]mms-config.
 
 ##### MACROS #####
 
-INCDIR = ([-.include],[-.util])
+INCDIR = ([--.include],[-.util])
 CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)/nowarn
 
 .ifdef SHARE
 GL_LIBS = $(XLIBS)
 .else
-GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
+GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
 .endif
 
-LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB)
+LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB)
 
 PROGS =glthreads.exe,\
 	glxdemo.exe,\
diff --git a/src/descrip.mms b/src/descrip.mms
new file mode 100644
index 0000000..71b8ea1
--- /dev/null
+++ b/src/descrip.mms
@@ -0,0 +1,43 @@
+# Makefile for Mesa for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+
+.include [-]mms-config.
+
+all :
+	set default [.mesa]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-]
+.ifdef SHARE
+	$(MMS)$(MMSQUALIFIERS) [-.lib]$(GL_SHAR)
+.endif
+	set default [.glu]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.glut.glx]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [--]
+
+[-.lib]$(GL_SHAR) : [-.lib]$(GL_LIB)
+	@ WRITE_ SYS$OUTPUT "  generating libmesa.opt"
+	@ library/extract=* [-.lib]$(GL_LIB)
+	@ OPEN_/WRITE FILE  libmesa.opt
+	@ WRITE_ FILE "!"
+	@ WRITE_ FILE "! libmesa.opt generated by DESCRIP.$(MMS_EXT)" 
+	@ WRITE_ FILE "!"
+	@ WRITE_ FILE "IDENTIFICATION=""mesa5.1"""
+	@ WRITE_ FILE "GSMATCH=LEQUAL,5,1
+	@ WRITE_ FILE "libmesagl.obj"
+	@ write_ file "sys$share:decw$xextlibshr/share"
+	@ write_ file "sys$share:decw$xlibshr/share"
+	@ write_ file "sys$share:pthread$rtl/share"
+	@ CLOSE_ FILE
+	@ $(MMS)$(MMSQUALIFIERS)/ignore=warning mesa_vms
+	@ WRITE_ SYS$OUTPUT "  linking ..."
+	@ LINK_/NODEB/SHARE=[-.lib]$(GL_SHAR)/MAP=libmesa.map/FULL libmesa.opt/opt,\
+	mesa_vms.opt/opt
+	@ delete libmesagl.obj;*
+
+mesa_vms :
+	@ WRITE_ SYS$OUTPUT "  generating libmesa.map ..."
+	@ LINK_/NODEB/NOSHARE/NOEXE/MAP=libmesa.map/FULL libmesa.opt/OPT
+	@ WRITE_ SYS$OUTPUT "  analyzing libmesa.map ..."
+	@ @[-.vms]analyze_map.com libmesa.map mesa_vms.opt
diff --git a/src/glu/descrip.mms b/src/glu/descrip.mms
new file mode 100644
index 0000000..6d5cd85
--- /dev/null
+++ b/src/glu/descrip.mms
@@ -0,0 +1,9 @@
+# Makefile for Mesa for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+
+all :
+# PIPE is avalailable on VMS7.0 and higher. For lower versions split the
+#command in two conditional command.   JJ
+	if f$search("SYS$SYSTEM:CXX$COMPILER.EXE") .nes. "" then pipe set default [.sgi] ; $(MMS)$(MMSQUALIFIERS)
+	if f$search("SYS$SYSTEM:CXX$COMPILER.EXE") .eqs. "" then pipe set default [.mesa] ; $(MMS)$(MMSQUALIFIERS)
+	set default [-]
diff --git a/src/glu/sgi/descrip.mms b/src/glu/sgi/descrip.mms
index e1cbfba..1f795d8 100644
--- a/src/glu/sgi/descrip.mms
+++ b/src/glu/sgi/descrip.mms
@@ -2,9 +2,9 @@
 # contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
 
 .first
-	define gl [-.include.gl]
+	define gl [---.include.gl]
 
-.include [-]mms-config.
+.include [---]mms-config.
 
 ##### MACROS #####
 
@@ -12,7 +12,7 @@
 
 INCDIR =([-.include],[.include],[.internals],[.libnurbs.internals],\
        [.libnurbs.interface],[.libnurbs.nurbtess])
-LIBDIR = [-.lib]
+LIBDIR = [---.lib]
 CFLAGS = /include=$(INCDIR)/name=(as_is,short)
 
 LU_OBJECTS=\
@@ -136,6 +136,9 @@
 		    $(LI2_OBJECTS6) $(LI2_OBJECTS7) $(LI2_OBJECTS8)\
 		    $(LN_OBJECTS) $(LN_OBJECTS1) $(LN_OBJECTS2)\
 		    $(LN_OBJECTS3) $(LN_OBJECTS4)
+  @ $(MAKELIB) $(GLU_LIB)  $(LU_OBJECTS),$(LT_OBJECTS),$(LI_OBJECTS),\
+	$(LI2_OBJECTS),$(LN_OBJECTS)
+  @ rename $(GLU_LIB)* $(LIBDIR)
 .ifdef SHARE
   @ WRITE_ SYS$OUTPUT "  generating mesagl1.opt"
   @ OPEN_/WRITE FILE  mesagl1.opt
@@ -162,7 +165,7 @@
   @ WRITE_ FILE "$(LN_OBJECTS2)"
   @ WRITE_ FILE "$(LN_OBJECTS3)"
   @ WRITE_ FILE "$(LN_OBJECTS4)"
-  @ WRITE_ FILE "[-.lib]libmesagl.exe/SHARE"
+  @ WRITE_ FILE "[---.lib]libmesagl.exe/SHARE"
   @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
   @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE"
   @ CLOSE_ FILE
@@ -170,14 +173,11 @@
 #  @ CXXLINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT
 #  @ WRITE_ SYS$OUTPUT "  analyzing mesagl.map ..."
 #  @ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
-  @ WRITE_ SYS$OUTPUT "  linking $(GLU_LIB) ..."
-#  @ CXXLINK_/noinform/NODEB/SHARE=$(GLU_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
-  @ CXXLINK_/noinform/NODEB/SHARE=$(GLU_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesaglu.opt/opt
-.else
-  @ $(MAKELIB) $(GLU_LIB)  $(LU_OBJECTS),$(LT_OBJECTS),$(LI_OBJECTS),\
-	$(LI2_OBJECTS),$(LN_OBJECTS)
+  @ WRITE_ SYS$OUTPUT "  linking $(GLU_SHAR) ..."
+#  @ CXXLINK_/noinform/NODEB/SHARE=$(GLU_SHAR)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
+  @ CXXLINK_/noinform/NODEB/SHARE=$(GLU_SHAR)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesaglu.opt/opt
+  @ rename $(GLU_SHAR)* $(LIBDIR)
 .endif
-  @ rename $(GLU_LIB)* $(LIBDIR)
 
 clean :
 	delete [...]*.obj;*
diff --git a/src/glut/glx/descrip.mms b/src/glut/glx/descrip.mms
index 4cbf5f9..5490362 100644
--- a/src/glut/glx/descrip.mms
+++ b/src/glut/glx/descrip.mms
@@ -1,10 +1,10 @@
 # Makefile for GLUT for VMS
-# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
 
 .first
-	define gl [-.include.gl]
+	define gl [---.include.gl]
 
-.include [-]mms-config.
+.include [---]mms-config.
 
 ##### MACROS #####
 GLUT_MAJOR = 3
@@ -12,8 +12,8 @@
 
 VPATH = RCS
 
-INCDIR = [-.include]
-LIBDIR = [-.lib]
+INCDIR = [---.include]
+LIBDIR = [---.lib]
 CFLAGS = /nowarn/include=$(INCDIR)/prefix=all/name=(as_is,short)
 
 SOURCES = \
@@ -64,8 +64,7 @@
 glut_winmisc.c \
 layerutil.c
 
-OBJECTS = \
-glut_8x13.obj,\
+OBJECTS0=glut_8x13.obj,\
 glut_9x15.obj,\
 glut_bitmap.obj,\
 glut_bwidth.obj,\
@@ -121,8 +120,13 @@
 
 ##### TARGETS #####
 
-# Make the library:
-$(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3)
+# Make the library
+$(LIBDIR)$(GLUT_LIB) : $(OBJECTS0) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3)
+  @ $(MAKELIB) $(GLUT_LIB) $(OBJECTS)
+  @ library $(GLUT_LIB) $(OBJECTS1)
+  @ library $(GLUT_LIB) $(OBJECTS2)
+  @ library $(GLUT_LIB) $(OBJECTS3)
+  @ rename $(GLUT_LIB)* $(LIBDIR)
 .ifdef SHARE
   @ WRITE_ SYS$OUTPUT "  generating mesagl1.opt"
   @ OPEN_/WRITE FILE  mesagl1.opt
@@ -131,12 +135,12 @@
   @ WRITE_ FILE "!"
   @ WRITE_ FILE "IDENTIFICATION=""$(VERSION)"""
   @ WRITE_ FILE "GSMATCH=LEQUAL,3,7
-  @ WRITE_ FILE "$(OBJECTS)"
+  @ WRITE_ FILE "$(OBJECTS0)"
   @ WRITE_ FILE "$(OBJECTS1)"
   @ WRITE_ FILE "$(OBJECTS2)"
   @ WRITE_ FILE "$(OBJECTS3)"
-  @ WRITE_ FILE "[-.lib]libmesaglu.exe/SHARE"
-  @ WRITE_ FILE "[-.lib]libmesagl.exe/SHARE"
+  @ WRITE_ FILE "[---.lib]libmesaglu.exe/SHARE"
+  @ WRITE_ FILE "[---.lib]libmesagl.exe/SHARE"
   @ write file "sys$library:decw$xmulibshr.exe/share"
   @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
   @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE"
@@ -144,16 +148,11 @@
   @ WRITE_ SYS$OUTPUT "  generating mesagl.map ..."
   @ CXXLINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT
   @ WRITE_ SYS$OUTPUT "  analyzing mesagl.map ..."
-  @ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
-  @ WRITE_ SYS$OUTPUT "  linking $(GLUT_LIB) ..."
-  @ CXXLINK_/NODEB/SHARE=$(GLUT_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
-.else
-  @ $(MAKELIB) $(GLUT_LIB) $(OBJECTS)
-  @ library $(GLUT_LIB) $(OBJECTS1)
-  @ library $(GLUT_LIB) $(OBJECTS2)
-  @ library $(GLUT_LIB) $(OBJECTS3)
+  @ @[---.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
+  @ WRITE_ SYS$OUTPUT "  linking $(GLUT_SHAR) ..."
+  @ CXXLINK_/NODEB/SHARE=$(GLUT_SHAR)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
+  @ rename $(GLUT_SHAR)* $(LIBDIR)
 .endif
-  @ rename $(GLUT_LIB)* $(LIBDIR)
 
 clean :
 	delete *.obj;*
diff --git a/src/mesa/array_cache/descrip.mms b/src/mesa/array_cache/descrip.mms
new file mode 100644
index 0000000..0eb6ef4
--- /dev/null
+++ b/src/mesa/array_cache/descrip.mms
@@ -0,0 +1,34 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [---.include.gl]
+	define math [-.math]
+	define array_cache [-.array_cache]
+
+.include [---]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [---.include],[-.main],[-.glapi]
+LIBDIR = [---.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = ac_context.c ac_import.c
+
+OBJECTS = ac_context.obj,ac_import.obj
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/descrip.mms b/src/mesa/descrip.mms
new file mode 100644
index 0000000..81204cf
--- /dev/null
+++ b/src/mesa/descrip.mms
@@ -0,0 +1,22 @@
+# Makefile for Mesa for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+
+all :
+	set default [.main]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.glapi]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.drivers.x11]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.osmesa]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [--.math]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.tnl]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.swrast]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.swrast_setup]
+	$(MMS)$(MMSQUALIFIERS)
+	set default [-.array_cache]
+	$(MMS)$(MMSQUALIFIERS)
diff --git a/src/mesa/drivers/osmesa/descrip.mms b/src/mesa/drivers/osmesa/descrip.mms
new file mode 100644
index 0000000..2d500cd
--- /dev/null
+++ b/src/mesa/drivers/osmesa/descrip.mms
@@ -0,0 +1,38 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [----.include.gl]
+	define math [--.math]
+	define tnl [--.tnl]
+	define swrast [--.swrast]
+	define swrast_setup [--.swrast_setup]
+	define array_cache [--.array_cache]
+
+.include [----]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [----.include],[--.main],[--.glapi]
+LIBDIR = [----.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = osmesa.c
+
+OBJECTS = osmesa.obj
+
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/drivers/x11/descrip.mms b/src/mesa/drivers/x11/descrip.mms
new file mode 100644
index 0000000..9be2afa
--- /dev/null
+++ b/src/mesa/drivers/x11/descrip.mms
@@ -0,0 +1,40 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [----.include.gl]
+	define math [--.math]
+	define tnl [--.tnl]
+	define swrast [--.swrast]
+	define swrast_setup [--.swrast_setup]
+	define array_cache [--.array_cache]
+
+.include [----]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [----.include],[--.main],[--.glapi]
+LIBDIR = [----.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = fakeglx.c glxapi.c xfonts.c xm_api.c xm_dd.c xm_line.c xm_span.c\
+	xm_tri.c
+
+OBJECTS =fakeglx.obj,glxapi.obj,xfonts.obj,xm_api.obj,xm_dd.obj,xm_line.obj,\
+	xm_span.obj,xm_tri.obj
+
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/glapi/descrip.mms b/src/mesa/glapi/descrip.mms
new file mode 100644
index 0000000..9451932
--- /dev/null
+++ b/src/mesa/glapi/descrip.mms
@@ -0,0 +1,33 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [---.include.gl]
+
+.include [---]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [---.include],[-.main]
+LIBDIR = [---.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = glapi.c glthread.c
+
+OBJECTS =  glapi.obj,glthread.obj
+
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/main/descrip.mms b/src/mesa/main/descrip.mms
index 9b86539..6d8fbbd 100644
--- a/src/mesa/main/descrip.mms
+++ b/src/mesa/main/descrip.mms
@@ -1,21 +1,22 @@
 # Makefile for core library for VMS
 # contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
-# Last revision : 5 Januari 2001
+# Last revision : 16 June 2003
 
 .first
-	define gl [-.include.gl]
+	define gl [---.include.gl]
+	define math [-.math]
 
-.include [-]mms-config.
+.include [---]mms-config.
 
 ##### MACROS #####
 
 VPATH = RCS
 
-INCDIR = [-.include]
-LIBDIR = [-.lib]
+INCDIR = [---.include],[-.glapi]
+LIBDIR = [---.lib]
 CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
 
-CORE_SOURCES =accum.c \
+SOURCES =accum.c \
 	api_loopback.c \
 	api_noop.c \
 	api_validate.c \
@@ -40,8 +41,6 @@
 	feedback.c \
 	fog.c \
 	get.c \
-	glapi.c \
-	glthread.c \
 	hash.c \
 	hint.c \
 	histogram.c \
@@ -54,6 +53,7 @@
 	nvfragparse.c \
 	nvvertexec.c \
 	nvvertparse.c \
+	occlude.c \
 	pixel.c \
 	points.c \
 	polygon.c \
@@ -69,94 +69,9 @@
 	texutil.c \
 	varray.c \
 	vtxfmt.c \
-	vsnprintf.c \
-	vtparse.c \
-	[.x86]x86.c
+	vsnprintf.c
 
-DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \
-[.x]xm_api.c [.x]xm_dd.c [.x]xm_line.c [.x]xm_span.c [.x]xm_tri.c \
-[.osmesa]osmesa.c \
-[.svga]svgamesa.c \
-[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c \
-[.fx]fxddspan.c\
-[.fx]fxsetup.c \
-[.fx]fxtexman.c \
-[.fx]fxtris.c \
-[.fx]fxvb.c \
-[.fx]fxglidew.c
-
-RASTER_SOURCES = [.swrast]s_aatriangle.c \
-[.swrast]s_aaline.c \
-[.swrast]s_accum.c \
-[.swrast]s_alpha.c \
-[.swrast]s_alphabuf.c \
-[.swrast]s_bitmap.c \
-[.swrast]s_blend.c \
-[.swrast]s_buffers.c \
-[.swrast]s_copypix.c \
-[.swrast]s_context.c \
-[.swrast]s_depth.c \
-[.swrast]s_drawpix.c \
-[.swrast]s_fog.c \
-[.swrast]s_feedback.c \
-[.swrast]s_imaging.c \
-[.swrast]s_lines.c \
-[.swrast]s_logic.c \
-[.swrast]s_masking.c \
-[.swrast]s_nvfragprog.c \
-[.swrast]s_pixeltex.c \
-[.swrast]s_points.c \
-[.swrast]s_readpix.c \
-[.swrast]s_span.c \
-[.swrast]s_stencil.c \
-[.swrast]s_texstore.c \
-[.swrast]s_texture.c \
-[.swrast]s_triangle.c \
-[.swrast]s_zoom.c \
-[.swrast_setup]ss_context.c \
-[.swrast_setup]ss_triangle.c \
-[.swrast_setup]ss_vb.c 
-
-ASM_SOURCES =
-
-TNL_SOURCES=[.tnl]t_array_api.c \
-[.tnl]t_array_import.c \
-[.tnl]t_context.c \
-[.tnl]t_eval_api.c \
-[.tnl]t_imm_alloc.c \
-[.tnl]t_imm_api.c \
-[.tnl]t_imm_debug.c \
-[.tnl]t_imm_dlist.c \
-[.tnl]t_imm_elt.c \
-[.tnl]t_imm_eval.c \
-[.tnl]t_imm_exec.c \
-[.tnl]t_imm_fixup.c \
-[.tnl]t_pipeline.c \
-[.tnl]t_vb_fog.c \
-[.tnl]t_vb_light.c \
-[.tnl]t_vb_normals.c \
-[.tnl]t_vb_points.c \
-[.tnl]t_vb_program.c \
-[.tnl]t_vb_render.c \
-[.tnl]t_vb_texgen.c \
-[.tnl]t_vb_texmat.c \
-[.tnl]t_vb_vertex.c
-
-TNLDD_SOURCES=[.tnl_dd]t_dd.c \
-[.tnl_dd]t_dd_vb.c
-
-MATH_SOURCES=[.math]m_debug_xform.c \
-[.math]m_debug_norm.c \
-[.math]m_eval.c \
-[.math]m_matrix.c \
-[.math]m_translate.c \
-[.math]m_vector.c \
-[.math]m_xform.c  
-
-CACHE_SOURCES=[.array_cache]ac_context.c \
-	[.array_cache]ac_import.c
- 
-OBJECTS1=accum.obj,\
+OBJECTS=accum.obj,\
 api_loopback.obj,\
 api_noop.obj,\
 api_validate.obj,\
@@ -173,17 +88,14 @@
 depth.obj,\
 dispatch.obj,\
 dlist.obj,\
-drawpix.obj
-
-OBJECTS2=enable.obj,\
+drawpix.obj,\
+enable.obj,\
 enums.obj,\
 eval.obj,\
 extensions.obj,\
 feedback.obj,\
 fog.obj,\
 get.obj,\
-glapi.obj,\
-glthread.obj,\
 hash.obj,\
 hint.obj,\
 histogram.obj,\
@@ -191,12 +103,12 @@
 imports.obj,\
 light.obj,\
 lines.obj,\
-matrix.obj
-
-OBJECTS3=nvprogram.obj,\
+matrix.obj,\
+nvprogram.obj,\
 nvfragparse.obj,\
 nvvertexec.obj,\
 nvvertparse.obj,\
+occlude.obj,\
 pixel.obj,\
 points.obj,\
 polygon.obj,\
@@ -209,333 +121,21 @@
 texobj.obj,\
 texstate.obj,\
 texstore.obj,\
-texutil.obj
-
-OBJECTS4=varray.obj,\
+texutil.obj,\
+varray.obj,\
 vtxfmt.obj,\
 vsnprintf.obj
 
-OBJECTS5=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\
-[.x]xm_api.obj,[.x]xm_dd.obj,[.x]xm_line.obj,[.x]xm_span.obj,[.x]xm_tri.obj,\
-[.osmesa]osmesa.obj,\
-[.svga]svgamesa.obj
-
-OBJECTS6=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.x86]x86.obj
-
-OBJECTS7=[.fx]fxddspan.obj,\
-[.fx]fxsetup.obj,\
-[.fx]fxtexman.obj,\
-[.fx]fxtris.obj,\
-[.fx]fxvb.obj,\
-[.fx]fxglidew.obj
-
-OBJECTS8=[.swrast]s_aatriangle.obj,\
-[.swrast]s_accum.obj,\
-[.swrast]s_alpha.obj,\
-[.swrast]s_alphabuf.obj,\
-[.swrast]s_bitmap.obj,\
-[.swrast]s_blend.obj,\
-[.swrast]s_buffers.obj,\
-[.swrast]s_copypix.obj,\
-[.swrast]s_context.obj,\
-[.swrast]s_depth.obj
-
-OBJECTS9=[.swrast]s_drawpix.obj,\
-[.swrast]s_fog.obj,\
-[.swrast]s_imaging.obj,\
-[.swrast]s_lines.obj,\
-[.swrast]s_logic.obj,\
-[.swrast]s_masking.obj,\
-[.swrast]s_nvfragprog.obj,\
-[.swrast]s_pixeltex.obj,\
-[.swrast]s_points.obj
-
-OBJECTS10=[.swrast]s_readpix.obj,\
-[.swrast]s_aaline.obj,\
-[.swrast]s_span.obj,\
-[.swrast]s_stencil.obj,\
-[.swrast]s_texstore.obj,\
-[.swrast]s_texture.obj,\
-[.swrast]s_triangle.obj,\
-[.swrast]s_feedback.obj,\
-[.swrast]s_zoom.obj
-
-OBJECTS11=[.swrast_setup]ss_context.obj,\
-[.swrast_setup]ss_triangle.obj,\
-[.swrast_setup]ss_vb.obj 
-
-OBJECTS12=[.tnl]t_array_api.obj,\
-[.tnl]t_array_import.obj,\
-[.tnl]t_context.obj,\
-[.tnl]t_eval_api.obj,\
-[.tnl]t_imm_alloc.obj,\
-[.tnl]t_imm_api.obj,\
-[.tnl]t_imm_debug.obj,\
-[.tnl]t_imm_dlist.obj,\
-[.tnl]t_imm_elt.obj,\
-[.tnl]t_imm_eval.obj,\
-[.tnl]t_imm_exec.obj
-
-OBJECTS13=[.tnl]t_imm_fixup.obj,\
-[.tnl]t_pipeline.obj,\
-[.tnl]t_vb_fog.obj,\
-[.tnl]t_vb_light.obj,\
-[.tnl]t_vb_normals.obj,\
-[.tnl]t_vb_points.obj,\
-[.tnl]t_vb_program.obj,\
-[.tnl]t_vb_render.obj,\
-[.tnl]t_vb_texgen.obj,\
-[.tnl]t_vb_texmat.obj,\
-[.tnl]t_vb_vertex.obj
-
-OBJECTS14=[.math]m_debug_xform.obj,\
-[.math]m_debug_norm.obj,\
-[.math]m_eval.obj,\
-[.math]m_matrix.obj,\
-[.math]m_translate.obj,\
-[.math]m_vector.obj,\
-[.math]m_xform.obj 
-
-OBJECTS15=[.array_cache]ac_context.obj,\
-	[.array_cache]ac_import.obj
-
 ##### RULES #####
 
 VERSION=Mesa V3.4
 
 ##### TARGETS #####
 # Make the library
-$(LIBDIR)$(GL_LIB) : $(OBJECTS1),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
-	$(OBJECTS5) $(OBJECTS6) $(OBJECTS7) $(OBJECTS8) $(OBJECTS9)\
-	$(OBJECTS10) $(OBJECTS11) $(OBJECTS12) $(OBJECTS13) $(OBJECTS14)\
-	$(OBJECTS15)
-.ifdef SHARE
-  @ WRITE_ SYS$OUTPUT "  generating mesagl1.opt"
-  @ OPEN_/WRITE FILE  mesagl1.opt
-  @ WRITE_ FILE "!"
-  @ WRITE_ FILE "! mesagl1.opt generated by DESCRIP.$(MMS_EXT)" 
-  @ WRITE_ FILE "!"
-  @ WRITE_ FILE "IDENTIFICATION=""$(VERSION)"""
-  @ WRITE_ FILE "GSMATCH=LEQUAL,3,4
-  @ WRITE_ FILE "$(OBJECTS1)"
-  @ WRITE_ FILE "$(OBJECTS2)"
-  @ WRITE_ FILE "$(OBJECTS3)"
-  @ WRITE_ FILE "$(OBJECTS4)"
-  @ WRITE_ FILE "$(OBJECTS5)"
-  @ WRITE_ FILE "$(OBJECTS6)"
-  @ WRITE_ FILE "$(OBJECTS7)"
-  @ WRITE_ FILE "$(OBJECTS8)"
-  @ WRITE_ FILE "$(OBJECTS9)"
-  @ WRITE_ FILE "$(OBJECTS10)"
-  @ WRITE_ FILE "$(OBJECTS11)"
-  @ WRITE_ FILE "$(OBJECTS12)"
-  @ WRITE_ FILE "$(OBJECTS13)"
-  @ WRITE_ FILE "$(OBJECTS14)"
-  @ WRITE_ FILE "$(OBJECTS15)"
-  @ write_ file "sys$share:decw$xextlibshr/share"
-  @ write_ file "sys$share:decw$xlibshr/share"
-  @ write_ file "sys$share:pthread$rtl/share"
-  @ CLOSE_ FILE
-  @ WRITE_ SYS$OUTPUT "  generating mesagl.map ..."
-  @ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT
-  @ WRITE_ SYS$OUTPUT "  analyzing mesagl.map ..."
-  @ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
-  @ WRITE_ SYS$OUTPUT "  linking $(GL_LIB) ..."
-  @ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
-.else
-  @ $(MAKELIB) $(GL_LIB) $(OBJECTS1)
-  @ library $(GL_LIB) $(OBJECTS2)
-  @ library $(GL_LIB) $(OBJECTS3)
-  @ library $(GL_LIB) $(OBJECTS4)
-  @ library $(GL_LIB) $(OBJECTS5)
-  @ library $(GL_LIB) $(OBJECTS6)
-  @ library $(GL_LIB) $(OBJECTS7)
-  @ library $(GL_LIB) $(OBJECTS8)
-  @ library $(GL_LIB) $(OBJECTS9)
-  @ library $(GL_LIB) $(OBJECTS10)
-  @ library $(GL_LIB) $(OBJECTS11)
-  @ library $(GL_LIB) $(OBJECTS12)
-  @ library $(GL_LIB) $(OBJECTS13)
-  @ library $(GL_LIB) $(OBJECTS14)
-  @ library $(GL_LIB) $(OBJECTS15)
-.endif
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ $(MAKELIB) $(GL_LIB) $(OBJECTS)
   @ rename $(GL_LIB)* $(LIBDIR)
 
 clean :
 	purge
 	delete *.obj;*
-
-pixeltex.obj : pixeltex.c
-
-imports.obj : imports.c
-
-[.x86]x86.obj : [.x86]x86.c
-	$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c
-[.x]glxapi.obj : [.x]glxapi.c
-	$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c
-[.x]fakeglx.obj : [.x]fakeglx.c
-	$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c
-[.x]xfonts.obj : [.x]xfonts.c
-	$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c
-[.x]xm_api.obj : [.x]xm_api.c
-	$(CC) $(CFLAGS) /obj=[.x]xm_api.obj [.x]xm_api.c
-[.x]xm_dd.obj : [.x]xm_dd.c
-	$(CC) $(CFLAGS)/nowarn /obj=[.x]xm_dd.obj [.x]xm_dd.c
-[.x]xm_line.obj : [.x]xm_line.c
-	$(CC) $(CFLAGS) /obj=[.x]xm_line.obj [.x]xm_line.c
-[.x]xm_span.obj : [.x]xm_span.c
-	$(CC) $(CFLAGS) /obj=[.x]xm_span.obj [.x]xm_span.c
-[.x]xm_tri.obj : [.x]xm_tri.c
-	$(CC) $(CFLAGS) /obj=[.x]xm_tri.obj [.x]xm_tri.c
-[.osmesa]osmesa.obj : [.osmesa]osmesa.c
-	$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c
-[.svga]svgamesa.obj : [.svga]svgamesa.c
-	$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c
-[.fx]fxapi.obj : [.fx]fxapi.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c
-[.fx]fxdd.obj : [.fx]fxdd.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c
-[.fx]fxddtex.obj : [.fx]fxddtex.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c
-[.fx]fxddspan.obj : [.fx]fxddspan.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
-[.fx]fxsetup.obj : [.fx]fxsetup.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
-[.fx]fxtexman.obj : [.fx]fxtexman.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
-[.fx]fxtris.obj : [.fx]fxtris.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxtris.obj [.fx]fxtris.c
-[.fx]fxvb.obj : [.fx]fxvb.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxvb.obj [.fx]fxvb.c
-[.fx]fxglidew.obj : [.fx]fxglidew.c
-	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c
-[.swrast]s_aaline.obj : [.swrast]s_aaline.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_aaline.obj [.swrast]s_aaline.c
-[.swrast]s_aatriangle.obj : [.swrast]s_aatriangle.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_aatriangle.obj [.swrast]s_aatriangle.c
-[.swrast]s_accum.obj : [.swrast]s_accum.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_accum.obj [.swrast]s_accum.c
-[.swrast]s_alpha.obj : [.swrast]s_alpha.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_alpha.obj [.swrast]s_alpha.c
-[.swrast]s_alphabuf.obj : [.swrast]s_alphabuf.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_alphabuf.obj [.swrast]s_alphabuf.c
-[.swrast]s_bitmap.obj : [.swrast]s_bitmap.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_bitmap.obj [.swrast]s_bitmap.c
-[.swrast]s_blend.obj : [.swrast]s_blend.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_blend.obj [.swrast]s_blend.c
-[.swrast]s_buffers.obj : [.swrast]s_buffers.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_buffers.obj [.swrast]s_buffers.c
-[.swrast]s_copypix.obj : [.swrast]s_copypix.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_copypix.obj [.swrast]s_copypix.c
-[.swrast]s_context.obj : [.swrast]s_context.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_context.obj [.swrast]s_context.c
-[.swrast]s_depth.obj : [.swrast]s_depth.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_depth.obj [.swrast]s_depth.c
-[.swrast]s_drawpix.obj : [.swrast]s_drawpix.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_drawpix.obj [.swrast]s_drawpix.c
-[.swrast]s_feedback.obj : [.swrast]s_feedback.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_feedback.obj [.swrast]s_feedback.c
-[.swrast]s_fog.obj : [.swrast]s_fog.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_fog.obj [.swrast]s_fog.c
-[.swrast]s_imaging.obj : [.swrast]s_imaging.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_imaging.obj [.swrast]s_imaging.c
-[.swrast]s_lines.obj : [.swrast]s_lines.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_lines.obj [.swrast]s_lines.c
-[.swrast]s_logic.obj : [.swrast]s_logic.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_logic.obj [.swrast]s_logic.c
-[.swrast]s_masking.obj : [.swrast]s_masking.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_masking.obj [.swrast]s_masking.c
-[.swrast]s_nvfragprog.obj : [.swrast]s_nvfragprog.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_nvfragprog.obj [.swrast]s_nvfragprog.c
-[.swrast]s_pixeltex.obj : [.swrast]s_pixeltex.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_pixeltex.obj [.swrast]s_pixeltex.c
-[.swrast]s_points.obj : [.swrast]s_points.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_points.obj [.swrast]s_points.c
-[.swrast]s_readpix.obj : [.swrast]s_readpix.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_readpix.obj [.swrast]s_readpix.c
-[.swrast]s_span.obj : [.swrast]s_span.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_span.obj [.swrast]s_span.c
-[.swrast]s_stencil.obj : [.swrast]s_stencil.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_stencil.obj [.swrast]s_stencil.c
-[.swrast]s_texstore.obj : [.swrast]s_texstore.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_texstore.obj [.swrast]s_texstore.c
-[.swrast]s_texture.obj : [.swrast]s_texture.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_texture.obj [.swrast]s_texture.c
-[.swrast]s_triangle.obj : [.swrast]s_triangle.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_triangle.obj [.swrast]s_triangle.c
-[.swrast]s_zoom.obj : [.swrast]s_zoom.c
-	$(CC) $(CFLAGS) /obj=[.swrast]s_zoom.obj [.swrast]s_zoom.c
-[.swrast_setup]ss_context.obj : [.swrast_setup]ss_context.c
-	$(CC) $(CFLAGS) /obj=[.swrast_setup]ss_context.obj [.swrast_setup]ss_context.c
-[.swrast_setup]ss_triangle.obj : [.swrast_setup]ss_triangle.c
-	$(CC) $(CFLAGS) /obj=[.swrast_setup]ss_triangle.obj [.swrast_setup]ss_triangle.c
-[.swrast_setup]ss_vb.obj : [.swrast_setup]ss_vb.c
-	$(CC) $(CFLAGS) /obj=[.swrast_setup]ss_vb.obj [.swrast_setup]ss_vb.c
-[.tnl]t_array_api.obj : [.tnl]t_array_api.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_array_api.obj [.tnl]t_array_api.c
-[.tnl]t_array_import.obj : [.tnl]t_array_import.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_array_import.obj [.tnl]t_array_import.c
-[.tnl]t_context.obj : [.tnl]t_context.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_context.obj [.tnl]t_context.c
-[.tnl]t_eval_api.obj : [.tnl]t_eval_api.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_eval_api.obj [.tnl]t_eval_api.c
-[.tnl]t_imm_alloc.obj : [.tnl]t_imm_alloc.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_alloc.obj [.tnl]t_imm_alloc.c
-[.tnl]t_imm_api.obj : [.tnl]t_imm_api.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_api.obj [.tnl]t_imm_api.c
-[.tnl]t_imm_debug.obj : [.tnl]t_imm_debug.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_debug.obj [.tnl]t_imm_debug.c
-[.tnl]t_imm_dlist.obj : [.tnl]t_imm_dlist.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_dlist.obj [.tnl]t_imm_dlist.c
-[.tnl]t_imm_elt.obj : [.tnl]t_imm_elt.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_elt.obj [.tnl]t_imm_elt.c
-[.tnl]t_imm_eval.obj : [.tnl]t_imm_eval.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_eval.obj [.tnl]t_imm_eval.c
-[.tnl]t_imm_exec.obj : [.tnl]t_imm_exec.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_exec.obj [.tnl]t_imm_exec.c
-[.tnl]t_imm_fixup.obj : [.tnl]t_imm_fixup.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_imm_fixup.obj [.tnl]t_imm_fixup.c
-[.tnl]t_pipeline.obj : [.tnl]t_pipeline.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_pipeline.obj [.tnl]t_pipeline.c
-[.tnl]t_vb_fog.obj : [.tnl]t_vb_fog.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_fog.obj [.tnl]t_vb_fog.c
-[.tnl]t_vb_light.obj : [.tnl]t_vb_light.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_light.obj [.tnl]t_vb_light.c
-[.tnl]t_vb_normals.obj : [.tnl]t_vb_normals.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_normals.obj [.tnl]t_vb_normals.c
-[.tnl]t_vb_points.obj : [.tnl]t_vb_points.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_points.obj [.tnl]t_vb_points.c
-[.tnl]t_vb_program.obj : [.tnl]t_vb_program.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_program.obj [.tnl]t_vb_program.c
-[.tnl]t_vb_render.obj : [.tnl]t_vb_render.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_render.obj [.tnl]t_vb_render.c
-[.tnl]t_vb_texgen.obj : [.tnl]t_vb_texgen.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_texgen.obj [.tnl]t_vb_texgen.c
-[.tnl]t_vb_texmat.obj : [.tnl]t_vb_texmat.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_texmat.obj [.tnl]t_vb_texmat.c
-[.tnl]t_vb_vertex.obj : [.tnl]t_vb_vertex.c
-	$(CC) $(CFLAGS) /obj=[.tnl]t_vb_vertex.obj [.tnl]t_vb_vertex.c
-[.math]m_debug_xform.obj : [.math]m_debug_xform.c
-	$(CC) $(CFLAGS) /obj=[.math]m_debug_xform.obj [.math]m_debug_xform.c
-[.math]m_debug_norm.obj : [.math]m_debug_norm.c
-	$(CC) $(CFLAGS) /obj=[.math]m_debug_norm.obj [.math]m_debug_norm.c
-[.math]m_eval.obj : [.math]m_eval.c
-	$(CC) $(CFLAGS) /obj=[.math]m_eval.obj [.math]m_eval.c
-[.math]m_matrix.obj : [.math]m_matrix.c
-	$(CC) $(CFLAGS) /obj=[.math]m_matrix.obj [.math]m_matrix.c
-[.math]m_translate.obj : [.math]m_translate.c
-	$(CC) $(CFLAGS) /obj=[.math]m_translate.obj [.math]m_translate.c
-[.math]m_vector.obj : [.math]m_vector.c
-	$(CC) $(CFLAGS) /obj=[.math]m_vector.obj [.math]m_vector.c
-[.math]m_xform.obj : [.math]m_xform.c
-	$(CC) $(CFLAGS) /obj=[.math]m_xform.obj [.math]m_xform.c
-[.array_cache]ac_context.obj : [.array_cache]ac_context.c
-	$(CC) $(CFLAGS) /obj=[.array_cache]ac_context.obj \
-	[.array_cache]ac_context.c
-[.array_cache]ac_import.obj : [.array_cache]ac_import.c
-	$(CC) $(CFLAGS) /obj=[.array_cache]ac_import.obj \
-	[.array_cache]ac_import.c
-[.tnl_dd]t_dd.obj : [.tnl_dd]t_dd.c
-	$(CC) $(CFLAGS) /obj=[.tnl_dd]t_dd.obj [.tnl_dd]t_dd.c
-[.tnl_dd]t_dd_vb.obj : [.tnl_dd]t_dd_vb.c
-	$(CC) $(CFLAGS) /obj=[.tnl_dd]t_dd_vb.obj [.tnl_dd]t_dd_vb.c
diff --git a/src/mesa/math/descrip.mms b/src/mesa/math/descrip.mms
new file mode 100644
index 0000000..1e8e0e4
--- /dev/null
+++ b/src/mesa/math/descrip.mms
@@ -0,0 +1,36 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [---.include.gl]
+	define math [-.math]
+
+.include [---]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [---.include],[-.main],[-.glapi]
+LIBDIR = [---.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = m_debug_clip.c m_debug_norm.c m_debug_xform.c m_eval.c m_matrix.c\
+	m_translate.c m_vector.c m_xform.c
+
+OBJECTS = m_debug_clip.obj,m_debug_norm.obj,m_debug_xform.obj,m_eval.obj,\
+	m_matrix.obj,m_translate.obj,m_vector.obj,m_xform.obj
+ 
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/swrast/descrip.mms b/src/mesa/swrast/descrip.mms
new file mode 100644
index 0000000..e126694
--- /dev/null
+++ b/src/mesa/swrast/descrip.mms
@@ -0,0 +1,45 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [---.include.gl]
+	define math [-.math]
+	define swrast [-.swrast]
+	define array_cache [-.array_cache]
+
+.include [---]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [---.include],[-.main],[-.glapi]
+LIBDIR = [---.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = s_aaline.c s_aatriangle.c s_accum.c s_alpha.c s_alphabuf.c \
+	s_bitmap.c s_blend.c s_buffers.c s_context.c s_copypix.c s_depth.c \
+        s_drawpix.c s_feedback.c s_fog.c s_imaging.c s_lines.c s_logic.c \
+	s_masking.c s_nvfragprog.c s_pixeltex.c s_points.c s_readpix.c \
+	s_span.c s_stencil.c s_texstore.c s_texture.c s_triangle.c s_zoom.c
+ 
+OBJECTS = s_aaline.obj,s_aatriangle.obj,s_accum.obj,s_alpha.obj,\
+	s_alphabuf.obj,s_bitmap.obj,s_blend.obj,s_buffers.obj,s_context.obj,\
+	s_copypix.obj,s_depth.obj,s_drawpix.obj,s_feedback.obj,s_fog.obj,\
+	s_imaging.obj,s_lines.obj,s_logic.obj,s_masking.obj,s_nvfragprog.obj,\
+	s_pixeltex.obj,s_points.obj,s_readpix.obj,s_span.obj,s_stencil.obj,\
+	s_texstore.obj,s_texture.obj,s_triangle.obj,s_zoom.obj
+ 
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/swrast_setup/descrip.mms b/src/mesa/swrast_setup/descrip.mms
new file mode 100644
index 0000000..bc86eb6
--- /dev/null
+++ b/src/mesa/swrast_setup/descrip.mms
@@ -0,0 +1,36 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [---.include.gl]
+	define math [-.math]
+	define tnl [-.tnl]
+	define swrast [-.swrast]
+	define array_cache [-.array_cache]
+
+.include [---]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [---.include],[-.main],[-.glapi]
+LIBDIR = [---.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = ss_context.c ss_triangle.c ss_vb.c
+
+OBJECTS =  ss_context.obj,ss_triangle.obj,ss_vb.obj
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/src/mesa/tnl/descrip.mms b/src/mesa/tnl/descrip.mms
new file mode 100644
index 0000000..c051887
--- /dev/null
+++ b/src/mesa/tnl/descrip.mms
@@ -0,0 +1,44 @@
+# Makefile for core library for VMS
+# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
+# Last revision : 16 June 2003
+
+.first
+	define gl [---.include.gl]
+	define math [-.math]
+	define array_cache [-.array_cache]
+
+.include [---]mms-config.
+
+##### MACROS #####
+
+VPATH = RCS
+
+INCDIR = [---.include],[-.main],[-.glapi]
+LIBDIR = [---.lib]
+CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
+
+SOURCES = t_array_api.c t_array_import.c t_context.c t_eval_api.c \
+	t_imm_alloc.c t_imm_api.c t_imm_debug.c t_imm_dlist.c t_imm_elt.c \
+	t_imm_eval.c t_imm_exec.c t_imm_fixup.c t_pipeline.c t_vb_fog.c \
+	t_vb_light.c t_vb_normals.c t_vb_points.c t_vb_program.c \
+	t_vb_render.c t_vb_texgen.c t_vb_texmat.c t_vb_vertex.c
+
+OBJECTS = t_array_api.obj,t_array_import.obj,t_context.obj,t_eval_api.obj,\
+	t_imm_alloc.obj,t_imm_api.obj,t_imm_debug.obj,t_imm_dlist.obj,\
+	t_imm_elt.obj,t_imm_eval.obj,t_imm_exec.obj,t_imm_fixup.obj,\
+	t_pipeline.obj,t_vb_fog.obj,t_vb_light.obj,t_vb_normals.obj,\
+	t_vb_points.obj,t_vb_program.obj,t_vb_render.obj,t_vb_texgen.obj,\
+	t_vb_texmat.obj,t_vb_vertex.obj
+
+##### RULES #####
+
+VERSION=Mesa V3.4
+
+##### TARGETS #####
+# Make the library
+$(LIBDIR)$(GL_LIB) : $(OBJECTS)
+  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
+
+clean :
+	purge
+	delete *.obj;*
diff --git a/vms/analyze_map.com b/vms/analyze_map.com
new file mode 100644
index 0000000..d024ffc
--- /dev/null
+++ b/vms/analyze_map.com
@@ -0,0 +1,148 @@
+$! Analyze Map for OpenVMS AXP
+$!
+$! Originally found in the distribution of gv
+$!       http://wwwthep.physik.uni-mainz.de/~plass/gv/
+$!
+$! 1-Jul-1999 : modified to be used with $BSS$ & $READONLY sections in the
+$!              map-file by J. Jansen (joukj@hrem.stm.tudelft.nl)
+$!
+$ SET SYMBOL/GENERAL/SCOPE=(NOLOCAL,NOGLOBAL)
+$ SAY := "WRITE_ SYS$OUTPUT"
+$ 
+$ IF F$SEARCH("''P1'") .EQS. ""
+$ THEN
+$    SAY "  ANALYZE_MAP.COM:  Error, no mapfile provided"
+$    EXIT_
+$ ENDIF
+$ IF "''P2'" .EQS. ""
+$ THEN
+$    SAY "  ANALYZE_MAP.COM:  Error, no output file provided"
+$    EXIT_
+$ ENDIF
+$
+$ LINK_TMP  = F$PARSE(P2,,,"DEVICE")+F$PARSE(P2,,,"DIRECTORY")+F$PARSE(P2,,,"NAME")+".TMP"
+$
+$ SAY "  checking PSECT list in ''P2'"
+$ OPEN_/READ IN 'P1'
+$ LOOP_PSECT_SEARCH:
+$    READ_/END=EOF_PSECT IN REC
+$ LOOP_PSECT_SEARCH0:
+$    if F$EXTRACT(0,5,REC) .eqs. "$DATA" .or. F$EXTRACT(0,5,REC) .eqs. -
+       "$BSS$" .or. f$extract(0,10,rec) .eqs. "$READONLY$" then goto do_data
+$    if F$EXTRACT(0,14,REC) .eqs. "$READONLY_ADDR" then goto do_readonly
+$    goto LOOP_PSECT_SEARCH
+$ do_data:
+$ LAST = ""
+$ LOOP_PSECT:
+$    READ_/END=EOF_PSECT IN REC
+$    if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,5,REC) .nes. "$DATA" -
+       .and. F$EXTRACT(0,5,REC) .nes. "$BSS$" .and.  f$extract(0,10,rec) -
+       .nes. "$READONLY$" then goto LOOP_PSECT_SEARCH0
+$    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,  WRT,NOVEC" .nes. REC
+$    then 
+$       J = F$LOCATE(" ",REC)
+$       S = F$EXTRACT(0,J,REC)
+$       IF S .EQS. LAST THEN GOTO LOOP_PSECT
+$       P$_'S= 1
+$       LAST = S
+$    endif
+$    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,NOWRT,NOVEC" .nes. REC
+$    then 
+$       J = F$LOCATE(" ",REC)
+$       S = F$EXTRACT(0,J,REC)
+$       IF S .EQS. LAST THEN GOTO LOOP_PSECT
+$       P$_'S= 1
+$       LAST = S
+$    endif
+$    GOTO LOOP_PSECT
+$ 
+$ do_readonly:
+$ LAST = ""
+$ LOOP_PSECT3:
+$    READ_/END=EOF_PSECT IN REC
+$    if F$EXTRACT(0,1,REC) .eqs. "-" .or. F$EXTRACT(0,3,REC) .eqs. "NL:" then -
+       goto loop_psect3
+$    if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,14,REC) .nes. -
+       "$READONLY_ADDR" then goto LOOP_PSECT_SEARCH0
+$    if REC - "OCTA" .nes. REC
+$    then 
+$       J = F$LOCATE(" ",REC)
+$       S = F$EXTRACT(0,J,REC)
+$       IF S .EQS. LAST THEN GOTO LOOP_PSECT3
+$       P$_'S= 1
+$       LAST = S
+$    endif
+$    GOTO LOOP_PSECT3
+$
+$ EOF_PSECT:
+$    CLOSE_ IN
+$
+$ SAY "  appending list of UNIVERSAL procedures to ''P2'"
+$ SEARCH_/NOHIGH/WINDOW=(0,0) 'P1' " R-"/OUT='LINK_TMP
+$ OPEN_/READ IN 'LINK_TMP
+$ OPEN_/write OUT 'P2'
+$ WRITE_ OUT "!"
+$ WRITE_ OUT "! ### UNIVERSAL procedures and global definitions extracted from ''P1'"
+$ WRITE_ OUT "!"
+$ write_ OUT "case_sensitive=YES"
+$ LOOP_UNIVERSAL:
+$    READ_/END=EOF_UNIVERSAL IN REC
+$    J = F$LOCATE(" R-",REC)
+$    S = F$EXTRACT(J+3,F$length(rec),REC)
+$    J = F$LOCATE(" ",S)
+$    S = F$EXTRACT(0,J,S)
+$    PP$_'S= 1
+$    IF F$TYPE(P$_'S').EQS.""
+$    THEN
+$       WRITE_ OUT "symbol_vector = ("+S+"	= PROCEDURE)"
+$    ELSE
+$       WRITE_ OUT "symbol_vector = ("+S+"	= DATA)"
+$    ENDIF
+$    GOTO LOOP_UNIVERSAL
+$ EOF_UNIVERSAL:
+$    CLOSE_ IN
+$    CLOSE_ OUT
+$!
+$ SAY "  creating PSECT list in ''P2'"
+$ OPEN_/READ IN 'P1'
+$ OPEN_/append OUT 'P2'
+$ WRITE_ OUT "!"
+$ WRITE_ OUT "! ### PSECT list extracted from ''P1'"
+$ WRITE_ OUT "!" 
+$ LOOP_PSECT_SEARCH1:
+$    READ_/END=EOF_PSECT1 IN REC
+$    if F$EXTRACT(0,5,REC) .nes. "$DATA" .and. F$EXTRACT(0,5,REC) .nes. -
+       "$BSS$" .and.  f$extract(0,10,rec) .nes. "$READONLY$" then goto -
+       LOOP_PSECT_SEARCH1
+$ LAST = ""
+$ LOOP_PSECT1:
+$    READ_/END=EOF_PSECT1 IN REC
+$    if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,5,REC) .nes. "$DATA" -
+       .and. F$EXTRACT(0,5,REC) .nes. "$BSS$" .and.  f$extract(0,10,rec) -
+       .nes. "$READONLY$" then goto LOOP_PSECT_SEARCH1
+$    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,  WRT,NOVEC" .nes. REC
+$    then 
+$       J = F$LOCATE(" ",REC)
+$       S = F$EXTRACT(0,J,REC)
+$       IF S .EQS. LAST THEN GOTO LOOP_PSECT1
+$       IF F$TYPE(PP$_'S').nes."" then WRITE_ OUT "symbol_vector = (" +  S + " = PSECT)"
+$       P$_'S= 1
+$       LAST = S
+$    endif
+$    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,NOWRT,NOVEC" .nes. REC
+$    then 
+$       J = F$LOCATE(" ",REC)
+$       S = F$EXTRACT(0,J,REC)
+$       IF S .EQS. LAST THEN GOTO LOOP_PSECT1
+$       IF F$TYPE(PP$_'S').nes."" then WRITE_ OUT "symbol_vector = (" +  S + " = PSECT)"
+$       P$_'S= 1
+$       LAST = S
+$    endif
+$    GOTO LOOP_PSECT1
+$
+$ EOF_PSECT1:
+$    CLOSE_ IN
+$    CLOSE_ OUT 
+$    if f$search("''LINK_TMP'") .nes. "" then DELETE_/NOLOG/NOCONFIRM 'LINK_TMP';*
+$
+$ EXIT_ 
diff --git a/vms/xlib.opt b/vms/xlib.opt
new file mode 100644
index 0000000..acae358
--- /dev/null
+++ b/vms/xlib.opt
@@ -0,0 +1,2 @@
+sys$library:decw$xlibshr.exe/share
+sys$library:decw$xmulibshr.exe/share
diff --git a/vms/xlib_share.opt b/vms/xlib_share.opt
new file mode 100644
index 0000000..ebe039f
--- /dev/null
+++ b/vms/xlib_share.opt
@@ -0,0 +1,7 @@
+[--.lib]libmesagl.exe/share
+[--.lib]libmesaglu.exe/share
+[--.lib]libglut.exe/share
+sys$library:decw$xlibshr.exe/share
+sys$library:decw$xmulibshr.exe/share
+sys$library:decw$xmlibshr12/share
+sys$library:decw$xtlibshrr5/share