 Committing in .

 Modified Files:
 	Mesa/src/descrip.mms

 inserted imports.c
----------------------------------------------------------------------

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
# Last revision : 22 August 2000

.first
	define gl [-.include.gl]

.include [-]mms-config.

##### MACROS #####

VPATH = RCS

INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short)

CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c convolve.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c imports.c\
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.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]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\
[.fx]fxglidew.c

ASM_SOURCES =

OBJECTS =aatriangle.obj,\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj

OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj

OBJECTS7=polygon.obj,imports.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\
pixeltex.obj,convolve.obj

OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj

OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
	vertices.obj,[.x86]x86.obj

OBJECTS2=[.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

OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj

OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj

##### RULES #####

VERSION=Mesa V3.1

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
	$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6)
.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,1
  @ WRITE_ FILE "$(OBJECTS)"
  @ WRITE_ FILE "$(OBJECTS3)"
  @ WRITE_ FILE "$(OBJECTS4)"
  @ WRITE_ FILE "$(OBJECTS7)"
  @ WRITE_ FILE "$(OBJECTS6)"
  @ WRITE_ FILE "$(OBJECTS2)"
  @ WRITE_ FILE "$(OBJECTS5)"
  @ WRITE_ FILE "$(OBJECTS8)"
  @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
  @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/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) $(OBJECTS)
  @ library $(GL_LIB) $(OBJECTS2)
  @ library $(GL_LIB) $(OBJECTS3)
  @ library $(GL_LIB) $(OBJECTS4)
  @ library $(GL_LIB) $(OBJECTS5)
  @ library $(GL_LIB) $(OBJECTS8)
  @ library $(GL_LIB) $(OBJECTS7)
  @ library $(GL_LIB) $(OBJECTS6)
.endif
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

aatriangle.obj : aatriangle.c

triangle.obj : triangle.c

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) /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]fxclip.obj : [.fx]fxclip.c
	$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c
[.fx]fxcva.obj : [.fx]fxcva.c
	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.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]fxfastpath.obj : [.fx]fxfastpath.c
	$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c
[.fx]fxpipeline.obj : [.fx]fxpipeline.c
	$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c
[.fx]fxsanity.obj : [.fx]fxsanity.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c
[.fx]fxvsetup.obj : [.fx]fxvsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
[.fx]fxglidew.obj : [.fx]fxglidew.c
	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c

.include mms_depend.

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
# Last revision : 22 August 2000

.first
	define gl [-.include.gl]

.include [-]mms-config.

##### MACROS #####

VPATH = RCS

INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short)

CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c convolve.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c \
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.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]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\
[.fx]fxglidew.c

ASM_SOURCES =

OBJECTS =aatriangle.obj,\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj

OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj

OBJECTS7=polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\
pixeltex.obj,convolve.obj

OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj

OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
	vertices.obj,[.x86]x86.obj

OBJECTS2=[.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

OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj

OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj

##### RULES #####

VERSION=Mesa V3.1

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
	$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6)
.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,1
  @ WRITE_ FILE "$(OBJECTS)"
  @ WRITE_ FILE "$(OBJECTS3)"
  @ WRITE_ FILE "$(OBJECTS4)"
  @ WRITE_ FILE "$(OBJECTS7)"
  @ WRITE_ FILE "$(OBJECTS6)"
  @ WRITE_ FILE "$(OBJECTS2)"
  @ WRITE_ FILE "$(OBJECTS5)"
  @ WRITE_ FILE "$(OBJECTS8)"
  @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
  @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/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) $(OBJECTS)
  @ library $(GL_LIB) $(OBJECTS2)
  @ library $(GL_LIB) $(OBJECTS3)
  @ library $(GL_LIB) $(OBJECTS4)
  @ library $(GL_LIB) $(OBJECTS5)
  @ library $(GL_LIB) $(OBJECTS8)
  @ library $(GL_LIB) $(OBJECTS7)
  @ library $(GL_LIB) $(OBJECTS6)
.endif
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

aatriangle.obj : aatriangle.c

triangle.obj : triangle.c

pixeltex.obj : pixeltex.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) /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]fxclip.obj : [.fx]fxclip.c
	$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c
[.fx]fxcva.obj : [.fx]fxcva.c
	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.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]fxfastpath.obj : [.fx]fxfastpath.c
	$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c
[.fx]fxpipeline.obj : [.fx]fxpipeline.c
	$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c
[.fx]fxsanity.obj : [.fx]fxsanity.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c
[.fx]fxvsetup.obj : [.fx]fxvsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
[.fx]fxglidew.obj : [.fx]fxglidew.c
	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c

.include mms_depend.


added shaderobjects.c

added shaderobjects.c

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
# Last revision : 23 March 2004

.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 = \
	arbfragparse.c \
	arbprogparse.c \
	arbprogram.c \
	arbvertparse.c \
	grammar_mesa.c \
	nvfragparse.c \
	nvprogram.c \
	nvvertexec.c \
	nvvertparse.c \
	program.c \
	shaderobjects.c

OBJECTS = \
	arbfragparse.obj,\
	arbprogparse.obj,\
	arbprogram.obj,\
	arbvertparse.obj,\
	grammar_mesa.obj,\
	nvfragparse.obj,\
	nvprogram.obj,\
	nvvertexec.obj,\
	nvvertparse.obj,\
	program.obj \
	shaderobjects.obj

##### RULES #####

VERSION=Mesa V3.4

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS)
  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)

clean :
	purge
	delete *.obj;*

arbfragparse.obj : arbfragparse.c
arbprogparse.obj : arbprogparse.c
arbprogram.obj : arbprogram.c
arbvertparse.obj : arbvertparse.c
grammar_mesa.obj : grammar_mesa.c
nvfragparse.obj : nvfragparse.c
nvprogram.obj : nvprogram.c
nvvertexec.obj : nvvertexec.c
nvvertparse.obj : nvvertparse.c
program.obj : program.c
shaderobjects.obj: shaderobjects.c

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
# Last revision : 23 March 2004

.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 = \
	arbfragparse.c \
	arbprogparse.c \
	arbprogram.c \
	arbvertparse.c \
	grammar_mesa.c \
	nvfragparse.c \
	nvprogram.c \
	nvvertexec.c \
	nvvertparse.c \
	program.c

OBJECTS = \
	arbfragparse.obj,\
	arbprogparse.obj,\
	arbprogram.obj,\
	arbvertparse.obj,\
	grammar_mesa.obj,\
	nvfragparse.obj,\
	nvprogram.obj,\
	nvvertexec.obj,\
	nvvertparse.obj,\
	program.obj

##### RULES #####

VERSION=Mesa V3.4

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS)
  @ library $(LIBDIR)$(GL_LIB) $(OBJECTS)

clean :
	purge
	delete *.obj;*

arbfragparse.obj : arbfragparse.c
arbprogparse.obj : arbprogparse.c
arbprogram.obj : arbprogram.c
arbvertparse.obj : arbvertparse.c
grammar_mesa.obj : grammar_mesa.c
nvfragparse.obj : nvfragparse.c
nvprogram.obj : nvprogram.c
nvvertexec.obj : nvvertexec.c
nvvertparse.obj : nvvertparse.c
program.obj : program.c


Committing in .

 Committing in .

 optional compilation of progs/test/ since it seems not to appear in the
 releases.

 Modified Files:
 	Mesa/descrip.mms
 ----------------------------------------------------------------------

# 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)
	if f$search("[-]test.DIR") .nes. "" then pipe set default [-.test] ; $(MMS)$(MMSQUALIFIERS)

# 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)


 Committing in .

 New compile support for FX on VMS

 Modified Files:
 	Mesa/src/descrip.mms
 ----------------------------------------------------------------------

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
# Last revision : 3 May 1999

.first
	define gl [-.include.gl]

.include [-]mms-config.

##### MACROS #####

VPATH = RCS

INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)

CORE_SOURCES = accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c \
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.c

DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\
[.fx]fxglidew.c

ASM_SOURCES =

OBJECTS =\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj

OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj

OBJECTS7=polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj

OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj

OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
	vertices.obj,[.x86]x86.obj

OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj

OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj

OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj

##### RULES #####

VERSION=Mesa V3.1

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
	$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6)
.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,1
  @ WRITE_ FILE "$(OBJECTS)"
  @ WRITE_ FILE "$(OBJECTS3)"
  @ WRITE_ FILE "$(OBJECTS4)"
  @ WRITE_ FILE "$(OBJECTS7)"
  @ WRITE_ FILE "$(OBJECTS6)"
  @ WRITE_ FILE "$(OBJECTS2)"
  @ WRITE_ FILE "$(OBJECTS5)"
  @ WRITE_ FILE "$(OBJECTS8)"
  @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
  @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/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) $(OBJECTS)
  @ library $(GL_LIB) $(OBJECTS2)
  @ library $(GL_LIB) $(OBJECTS3)
  @ library $(GL_LIB) $(OBJECTS4)
  @ library $(GL_LIB) $(OBJECTS5)
  @ library $(GL_LIB) $(OBJECTS8)
  @ library $(GL_LIB) $(OBJECTS7)
  @ library $(GL_LIB) $(OBJECTS6)
.endif
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

triangle.obj : triangle.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]xmesa1.obj : [.x]xmesa1.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.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]fxclip.obj : [.fx]fxclip.c
	$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c
[.fx]fxcva.obj : [.fx]fxcva.c
	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.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]fxfastpath.obj : [.fx]fxfastpath.c
	$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c
[.fx]fxpipeline.obj : [.fx]fxpipeline.c
	$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c
[.fx]fxsanity.obj : [.fx]fxsanity.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c
[.fx]fxvsetup.obj : [.fx]fxvsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
[.fx]fxglidew.obj : [.fx]fxglidew.c
	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c

.include mms_depend.

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
# Last revision : 3 May 1999

.first
	define gl [-.include.gl]

.include [-]mms-config.

##### MACROS #####

VPATH = RCS

INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)

CORE_SOURCES = accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c \
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.c

DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c \
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c

ASM_SOURCES =

OBJECTS =\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj

OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj

OBJECTS7=polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj

OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj

OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
	vertices.obj,[.x86]x86.obj

OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj

OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,\
[.fx]fxtrifuncs.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj

##### RULES #####

VERSION=Mesa V3.1

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
	$(OBJECTS5) $(OBJECTS7) $(OBJECTS6)
.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,1
  @ WRITE_ FILE "$(OBJECTS)"
  @ WRITE_ FILE "$(OBJECTS3)"
  @ WRITE_ FILE "$(OBJECTS4)"
  @ WRITE_ FILE "$(OBJECTS7)"
  @ WRITE_ FILE "$(OBJECTS6)"
  @ WRITE_ FILE "$(OBJECTS2)"
  @ WRITE_ FILE "$(OBJECTS5)"
  @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
  @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/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) $(OBJECTS)
  @ library $(GL_LIB) $(OBJECTS2)
  @ library $(GL_LIB) $(OBJECTS3)
  @ library $(GL_LIB) $(OBJECTS4)
  @ library $(GL_LIB) $(OBJECTS5)
  @ library $(GL_LIB) $(OBJECTS7)
  @ library $(GL_LIB) $(OBJECTS6)
.endif
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

triangle.obj : triangle.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]xmesa1.obj : [.x]xmesa1.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.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]fxcva.obj : [.fx]fxcva.c
	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.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]fxvsetup.obj : [.fx]fxvsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c

.include mms_depend.


Added vertices.c to compile list

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
# Last revision : 3 May 1999

.first
	define gl [-.include.gl]

.include [-]mms-config.

##### MACROS #####

VPATH = RCS

INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)

CORE_SOURCES = accum.c alpha.c alphabuf.c api1.c api2.c apiext.c attrib.c \
bitmap.c blend.c clip.c colortab.c context.c copypix.c depth.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c image.c light.c lines.c logic.c masking.c matrix.c \
misc.c mmath.c mthreads.c pb.c pixel.c points.c pointers.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c vertices.c [.x86]x86.c

DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]realglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c \
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c

ASM_SOURCES =

OBJECTS =\
accum.obj,alpha.obj,alphabuf.obj,api1.obj,api2.obj,apiext.obj,attrib.obj,\
bitmap.obj,blend.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj

OBJECTS3=get.obj,hash.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,matrix.obj,\
misc.obj,mmath.obj,mthreads.obj,pb.obj,pixel.obj,points.obj,pointers.obj,polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj

OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj

OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,\
	vertices.obj,[.x86]x86.obj

OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]realglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj

OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,\
[.fx]fxtrifuncs.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj

##### RULES #####

VERSION=Mesa V3.1

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
	$(OBJECTS5) $(OBJECTS6)
.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,1
  @ WRITE_ FILE "$(OBJECTS)"
  @ WRITE_ FILE "$(OBJECTS3)"
  @ WRITE_ FILE "$(OBJECTS4)"
  @ WRITE_ FILE "$(OBJECTS6)"
  @ WRITE_ FILE "$(OBJECTS2)"
  @ WRITE_ FILE "$(OBJECTS5)"
  @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
  @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/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) $(OBJECTS)
  @ library $(GL_LIB) $(OBJECTS2)
  @ library $(GL_LIB) $(OBJECTS3)
  @ library $(GL_LIB) $(OBJECTS4)
  @ library $(GL_LIB) $(OBJECTS5)
  @ library $(GL_LIB) $(OBJECTS6)
.endif
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

triangle.obj : triangle.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]realglx.obj : [.x]realglx.c
	$(CC) $(CFLAGS) /obj=[.x]realglx.obj [.x]realglx.c
[.x]xfonts.obj : [.x]xfonts.c
	$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c
[.x]xmesa1.obj : [.x]xmesa1.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.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]fxcva.obj : [.fx]fxcva.c
	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.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]fxvsetup.obj : [.fx]fxvsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c

.include mms_depend.

# Makefile for core library for VMS
# contributed by Jouk Jansen  joukj@crys.chem.uva.nl
# Last revision : 3 May 1999

.first
	define gl [-.include.gl]

.include [-]mms-config.

##### MACROS #####

VPATH = RCS

INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)

CORE_SOURCES = accum.c alpha.c alphabuf.c api1.c api2.c apiext.c attrib.c \
bitmap.c blend.c clip.c colortab.c context.c copypix.c depth.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c image.c light.c lines.c logic.c masking.c matrix.c \
misc.c mmath.c mthreads.c pb.c pixel.c points.c pointers.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c [.x86]x86.c

DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]realglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c \
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c

ASM_SOURCES =

OBJECTS =\
accum.obj,alpha.obj,alphabuf.obj,api1.obj,api2.obj,apiext.obj,attrib.obj,\
bitmap.obj,blend.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj

OBJECTS3=get.obj,hash.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,matrix.obj,\
misc.obj,mmath.obj,mthreads.obj,pb.obj,pixel.obj,points.obj,pointers.obj,polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj

OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj

OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,\
	[.x86]x86.obj

OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]realglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj

OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,\
[.fx]fxtrifuncs.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj

##### RULES #####

VERSION=Mesa V3.1

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
	$(OBJECTS5) $(OBJECTS6)
.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,1
  @ WRITE_ FILE "$(OBJECTS)"
  @ WRITE_ FILE "$(OBJECTS3)"
  @ WRITE_ FILE "$(OBJECTS4)"
  @ WRITE_ FILE "$(OBJECTS6)"
  @ WRITE_ FILE "$(OBJECTS2)"
  @ WRITE_ FILE "$(OBJECTS5)"
  @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
  @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/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) $(OBJECTS)
  @ library $(GL_LIB) $(OBJECTS2)
  @ library $(GL_LIB) $(OBJECTS3)
  @ library $(GL_LIB) $(OBJECTS4)
  @ library $(GL_LIB) $(OBJECTS5)
  @ library $(GL_LIB) $(OBJECTS6)
.endif
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

triangle.obj : triangle.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]realglx.obj : [.x]realglx.c
	$(CC) $(CFLAGS) /obj=[.x]realglx.obj [.x]realglx.c
[.x]xfonts.obj : [.x]xfonts.c
	$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c
[.x]xmesa1.obj : [.x]xmesa1.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.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]fxcva.obj : [.fx]fxcva.c
	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.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]fxvsetup.obj : [.fx]fxvsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c

.include mms_depend.


Typo...

Typo...

!++
!   DESCRIP.MMS
!
!   Description file for building MMK.
!   Copyright (c) 2008, Matthew Madison.
!   Copyright (c) 2012, Endless Software Solutions.
!
!   All rights reserved.
!
!   Redistribution and use in source and binary forms, with or without
!   modification, are permitted provided that the following conditions
!   are met:
!
!       * Redistributions of source code must retain the above
!         copyright notice, this list of conditions and the following
!         disclaimer.
!       * Redistributions in binary form must reproduce the above
!         copyright notice, this list of conditions and the following
!         disclaimer in the documentation and/or other materials provided
!         with the distribution.
!       * Neither the name of the copyright owner nor the names of any
!         other contributors may be used to endorse or promote products
!         derived from this software without specific prior written
!         permission.
!
!   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
!   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
!   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
!   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
!   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
!   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
!   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
!   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
!   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
!   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
!   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
!   28-SEP-1993	V1.0	Madison	    Initial commenting.
!   25-JUL-1994	V1.1	Madison	    Update for V3.2.
!   27-DEC-1998	V1.2	Madison	    Update for V3.8.
!   03-MAY-2004 V1.3    Madison     Integrate IA64 support.
!   03-MAR-2008 V2.0    Madison     Cleanup for open-source release.
!   05-JUL-2009 V2.1    Sneddon     Added HTML documentation.
!   16-APR-2010 V2.2	Sneddon     New modules, etc.
!   06-AUG-2010 V2.3	Sneddon     Add release notes, plus SDML dynamic
!				     symbols.
!--

.IFDEF ARCH
.ELSE
.IFDEF MMS$ARCH_NAME
ARCH = $(MMS$ARCH_NAME)
.ELSE
.ERROR You must define the ARCH macro as one of: VAX, ALPHA, IA64
.ENDIF
.ENDIF

.SUFFIXES : .PS .PDF
.PS.PDF :
    < DEFINE/USER GS_LIB SYS$SYSDEVICE:[GS.LIB],SYS$SYSDEVICE:[GS.FONTS]
    < GS == "$SYS$SYSDEVICE:[GS.BIN]GS.EXE_$(MMSARCH_NAME)"
    - PIPE GS "-sDEVICE=pdfwrite" "-dBATCH" "-dNOPAUSE" "-sOutputFile=$(MMS$TARGET)" $(MMS$SOURCE) > $(MMS$TARGET:.pdf=.gs_out)
    > TYPE $(MMS$TARGET:.pdf=.gs_out)
    > IF F$SEARCH("$(MMS$TARGET:.pdf=.gs_out)") .NES. "" THEN DELETE/NOLOG $(MMS$TARGET:.pdf=.gs_out);*
    > DELETE/SYMBOL/GLOBAL GS
    > IF F$SEARCH("_TEMP_*.*") .NES. "" THEN DELETE/NOLOG _TEMP_*.*;*

.IFDEF __MADGOAT_BUILD__
MG_FACILITY = MMK
SRCDIR = MG_SRC:[MMK]
BINDIR = MG_BIN:[MMK]
ETCDIR = MG_ETC:[MMK]
KITDIR = MG_KIT:[MMK]
.ELSE
SRCDIR = SYS$DISK:[]
BINDIR = SYS$DISK:[.BIN-$(ARCH)]
ETCDIR = SYS$DISK:[.ETC-$(ARCH)]
KITDIR = SYS$DISK:[.KIT-$(ARCH)]
.ENDIF
.FIRST
    @ IF F$PARSE("$(BINDIR)") .EQS. "" THEN CREATE/DIR $(BINDIR)
    @ DEFINE/NOLOG BIN_DIR $(BINDIR)
    @ IF F$PARSE("$(ETCDIR)") .EQS. "" THEN CREATE/DIR $(ETCDIR)
    @ DEFINE/NOLOG ETC_DIR $(ETCDIR)
    @ IF F$PARSE("$(KITDIR)") .EQS. "" THEN CREATE/DIR $(KITDIR)
    @ DEFINE/NOLOG KIT_DIR $(KITDIR)
    @ DEFINE/NOLOG SRC_DIR $(SRCDIR)
    @ IF F$TRNLNM("MMK_SDL_SETUP") .NES. "" -
	THEN @MMK_SDL_SETUP:

OPT = .$(ARCH)_OPT
MMKCOPT = MMK_COMPILE_RULES$(OPT)

SDL = SDL/VAX

.IFDEF DBG
CFLAGS = $(CFLAGS)/DEBUG/NOOPT/LIST=$(ETCDIR)
.IFDEF __VAX__
CFLAGS = $(CFLAGS)/MACHINE=AFTER
.ELSE
CFLAGS = $(CFLAGS)/MACHINE
.ENDIF
LINKFLAGS = $(LINKFLAGS)/TRACEBACK
.ENDIF

!
! Modules for building MMK
!
OBJECTS = MMK=$(BINDIR)MMK.OBJ,FILEIO=$(BINDIR)FILEIO.OBJ,-
          MEM=$(BINDIR)MEM.OBJ,GET_RDT=$(BINDIR)GET_RDT.OBJ,-
          SP_MGR=$(BINDIR)SP_MGR.OBJ,MISC=$(BINDIR)MISC.OBJ,-
          OBJECTS=$(BINDIR)OBJECTS.OBJ,SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
          READDESC=$(BINDIR)READDESC.OBJ,-
          BUILD_TARGET=$(BINDIR)BUILD_TARGET.OBJ,-
          PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
          CMS_INTERFACE=$(BINDIR)CMS_INTERFACE.OBJ,-
          PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
          PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
          MMK_MSG=$(BINDIR)MMK_MSG.OBJ,MMK_CLD=$(BINDIR)MMK_CLD.OBJ,-
          DEFAULT_RULES=$(BINDIR)DEFAULT_RULES.OBJ
!
! Modules for building the rules compiler
!
MMKCMODS = FILEIO=$(BINDIR)FILEIO.OBJ,MEM=$(BINDIR)MEM.OBJ,-
           MISC=$(BINDIR)MISC.OBJ,OBJECTS=$(BINDIR)OBJECTS.OBJ,-
           SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
           READDESC=$(BINDIR)READDESC.OBJ,-
           PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
           PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
           PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
           MMK_MSG=$(BINDIR)MMK_MSG.OBJ

CFLAGS = /NODEBUG$(CFLAGS)$(DEFINE)
LINKFLAGS = /NOTRACEBACK/NODEBUG$(LINKFLAGS)

$(BINDIR)MMK.EXE : $(BINDIR)MMK.OLB($(OBJECTS)),$(SRCDIR)MMK$(OPT)
    $(LIBR)/COMPRESS/OUTPUT=$(BINDIR)MMK.OLB $(BINDIR)MMK.OLB
    $(LINK)$(LINKFLAGS) $(SRCDIR)MMK$(OPT)/OPT

MMK_H	    	    	    = $(SRCDIR)MMK.H, $(ETCDIR)MMK_MSG.H

$(BINDIR)MMK.OBJ            : $(SRCDIR)MMK.C,$(MMK_H) $(SRCDIR)VERSION.H
$(BINDIR)MEM.OBJ            : $(SRCDIR)MEM.C,$(MMK_H)
$(BINDIR)SP_MGR.OBJ         : $(SRCDIR)SP_MGR.C,$(MMK_H)
$(BINDIR)FILEIO.OBJ         : $(SRCDIR)FILEIO.C,$(MMK_H)
$(BINDIR)GET_RDT.OBJ	    : $(SRCDIR)GET_RDT.C,$(MMK_H)

$(BINDIR)SYMBOLS.OBJ        : $(SRCDIR)SYMBOLS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)OBJECTS.OBJ        : $(SRCDIR)OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)MISC.OBJ           : $(SRCDIR)MISC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)READDESC.OBJ       : $(SRCDIR)READDESC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)BUILD_TARGET.OBJ   : $(SRCDIR)BUILD_TARGET.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_DESCRIP.OBJ  : $(SRCDIR)PARSE_DESCRIP.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_OBJECTS.OBJ  : $(SRCDIR)PARSE_OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)CMS_INTERFACE.OBJ  : $(SRCDIR)CMS_INTERFACE.C,-
                              $(MMK_H),$(SRCDIR)CMSDEF.H,$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_TABLES.OBJ   : $(SRCDIR)PARSE_TABLES.MAR
    $(MACRO)$(MFLAGS) SYS$LIBRARY:ARCH_DEFS.MAR+$(SRCDIR)PARSE_TABLES.MAR

$(BINDIR)DEFAULT_RULES.OBJ  : $(SRCDIR)DEFAULT_RULES.C,$(MMK_H),$(SRCDIR)GLOBALS.H,-
                              $(ETCDIR)MMK_DEFAULT_RULES.H

$(BINDIR)MMK_MSG.OBJ        : $(SRCDIR)MMK_MSG.MSG
$(BINDIR)MMK_CLD.OBJ        : $(SRCDIR)MMK_CLD.CLD

$(ETCDIR)MMK_MSG.H	    : $(SRCDIR)MMK_MSG.MSG
    $(MESSAGE)/NOOBJECT/SDL=$(ETCDIR)MMK_MSG.SDL $(MMS$SOURCE)
    $(SDL)/LANGUAGE=CC=$(MMS$TARGET) $(ETCDIR)MMK_MSG.SDL

$(ETCDIR)MMK_DEFAULT_RULES.H : $(SRCDIR)MMK_DEFAULT_RULES_$(ARCH).MMS, $(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC := $$(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE)

MMKCOBJ = $(BINDIR)MMK_COMPILE_RULES.OBJ,$(BINDIR)GENSTRUC.OBJ,$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ

$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ : $(SRCDIR)MMK_COMPILE_RULES_CLD.CLD

$(BINDIR)MMK_COMPILE_RULES.EXE : $(MMKCOBJ),$(BINDIR)MMK.OLB($(MMKCMODS)),$(MMKCOPT)
    $(LINK)$(LINKFLAGS) $(MMKCOBJ),$(SRCDIR)$(MMKCOPT)/opt

$(BINDIR)MMK_COMPILE_RULES.OBJ	: $(SRCDIR)MMK_COMPILE_RULES.C,$(MMK_H)
$(BINDIR)GENSTRUC.OBJ	       	: $(SRCDIR)GENSTRUC.C,$(MMK_H),$(SRCDIR)GLOBALS.H

!
! The help file
!
$(KITDIR)MMK_HELP.HLP : $(SRCDIR)MMK_HELP.RNH

!
! Documentation
!
DOCS : $(KITDIR)MMK_DOC.PS,$(KITDIR)MMK_DOC.TXT,$(KITDIR)MMK_DOC.HTML,-
	$(KITDIR)MMK_HELP.HLP,$(KITDIR)MMK.RELEASE_NOTES $(KITDIR)MMK_DOC.PDF
$(KITDIR)MMK_DOC.PS : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                      $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		      $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE PS
$(KITDIR)MMK_DOC.PDF : $(KITDIR)MMK_DOC.PS
$(KITDIR)MMK_DOC.TXT : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                       $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		       $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL
$(KITDIR)MMK_DOC.HTML : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
			$(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
			$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/OUTPUT=$(KITDIR) $(MMS$SOURCE) SOFTWARE.REFERENCE HTML
$(KITDIR)MMK.RELEASE_NOTES : $(SRCDIR)RELEASE_NOTES.SDML,$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL/CONTENTS
$(ETCDIR)DYNAMIC_SYMBOLS.SDML   : $(BINDIR)MMK.EXE,$(SRCDIR)GENERATE_SYMBOLS.MMS
    MCR $(MMS$SOURCE) /DESCRIPTION=$(SRCDIR)GENERATE_SYMBOLS.MMS -
		/OUTPUT=$(MMS$TARGET)

CLEAN :
    - DELETE $(ETCDIR)*.*;*
    - DELETE $(BINDIR)*.*;*

REALCLEAN : CLEAN
    - DELETE $(KITDIR)*.*;*

.IFDEF ZIP
.ELSE
ZIP = ZIP
.ENDIF

ALWAYS_MAKE : ! fake target to trigger make on every pass

.IFNDEF KITBUILDER

!
! Build new MMK version number...
!
TMP != PIPE TMP="$(MMK_MAJOR_VERSION)" ; IF F$LENGTH(TMP) .EQ 1 THEN TMP="0"+TMP ; WRITE/SYMBOL SYS$OUTPUT TMP
KITNAME = $(COLLAPSE $(MG_FACILITY)$(TMP)$(MMK_MINOR_VERSION))

KIT : $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /MACRO=(KITBUILDER=1,KITNAME=$(KITNAME)) VMSINSTAL

.ELSE

!
! MMK VMSINSTAL Kit Lettering...
!
! A = KITINSTAL, documentation
! B = VAX images
! C = Alpha images
! D = I64 images
! E = Source code
!
BACKUP = BAC/INT/BL=8192

VMSINSTAL : $(KITDIR)$(KITNAME).A,$(KITDIR)$(KITNAME).B,$(KITDIR)$(KITNAME).E
    @ WRITE SYS$OUTPUT "%I, MMK VMSINSTAL kit built"

$(KITDIR)$(KITNAME).RELEASE_NOTES : $(KITDIR)MMK.RELEASE_NOTES
    COPY $(MMS$SOURCE) $(MMS$TARGET)

$(KITDIR)$(KITNAME).A : $(SRCDIR)KITINSTAL.COM,-
			$(KITDIR)$(KITNAME).RELEASE_NOTES,-
			$(KITDIR)MMK_INSTALLING_VERSION.DAT,-
			$(KITDIR)MMK_DOC_LIST.DAT,$(SRCDIR)MMK_CLD.CLD,-
			$(KITDIR)MMK_HELP.HLP
    - PURGE/NOLOG $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    $(BACKUP) $(MMS$SOURCE_LIST),MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT -
	$(MMS$TARGET)/SA

$(KITDIR)MMK_DOC_LIST.DAT : MAKE_MMK_DOC_LIST.COM,DOCS
    -@ DELETE/NOLOG $(MMS$TARGET);*
    @MAKE_MMK_DOC_LIST

$(KITDIR)MMK_INSTALLING_VERSION.DAT : $(SRCDIR)INSTALLING_VERSION.MMS,-
				      $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /DESCRIPTION=$(MMS$SOURCE)/OUTPUT=$(MMS$TARGET)

$(KITDIR)$(KITNAME).B : MG_BIN_VAX:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).C : MG_BIN_AXP:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).D : MG_BIN_I64:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).E : $(KITDIR)$(KITNAME)_SOURCE.ZIP
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME)_SOURCE.ZIP : ALWAYS_MAKE
    - DELETE/NOLOG $(MMS$TARGET);*
    wget --no-check-certificate --output-document=$(MMS$TARGET) -
	"https://github.com/endlesssoftware/mmk/zipball/master"

.ENDIF

!++
!   DESCRIP.MMS
!
!   Description file for building MMK.
!   Copyright (c) 2008, Matthew Madison.
!   Copyright (c) 2012, Endless Software Solutions.
!
!   All rights reserved.
!
!   Redistribution and use in source and binary forms, with or without
!   modification, are permitted provided that the following conditions
!   are met:
!
!       * Redistributions of source code must retain the above
!         copyright notice, this list of conditions and the following
!         disclaimer.
!       * Redistributions in binary form must reproduce the above
!         copyright notice, this list of conditions and the following
!         disclaimer in the documentation and/or other materials provided
!         with the distribution.
!       * Neither the name of the copyright owner nor the names of any
!         other contributors may be used to endorse or promote products
!         derived from this software without specific prior written
!         permission.
!
!   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
!   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
!   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
!   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
!   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
!   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
!   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
!   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
!   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
!   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
!   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
!   28-SEP-1993	V1.0	Madison	    Initial commenting.
!   25-JUL-1994	V1.1	Madison	    Update for V3.2.
!   27-DEC-1998	V1.2	Madison	    Update for V3.8.
!   03-MAY-2004 V1.3    Madison     Integrate IA64 support.
!   03-MAR-2008 V2.0    Madison     Cleanup for open-source release.
!   05-JUL-2009 V2.1    Sneddon     Added HTML documentation.
!   16-APR-2010 V2.2	Sneddon     New modules, etc.
!   06-AUG-2010 V2.3	Sneddon     Add release notes, plus SDML dynamic
!				     symbols.
!--

.IFDEF ARCH
.ELSE
.IFDEF MMS$ARCH_NAME
ARCH = $(MMS$ARCH_NAME)
.ELSE
.ERROR You must define the ARCH macro as one of: VAX, ALPHA, IA64
.ENDIF
.ENDIF

.SUFFIXES : .PS .PDF
.PS.PDF :
    < DEFINE/USER GS_LIB SYS$SYSDEVICE:[GS.LIB],SYS$SYSDEVICE:[GS.FONTS]
    < GS == "$SYS$SYSDEVICE:[GS.BIN]GS.EXE_$(MMSARCH_NAME)"
    - PIPE GS "-sDEVICE=pdfwrite" "-dBATCH" "-dNOPAUSE" "-sOutputFile=$(MMS$TARGET)" $(MMS$SOURCE) > $(MMS$TARGET:.pdf=.gs_out)
    > TYPE $(MMS$TARGET:.pdf=.gs_out)
    > IF F$SEARCH("$(MMS$TARGET:.pdf=.gs_out)") .NES. "" THEN DELETE/NOLOG $(MMS$TARGET:.pdf=.gs_out);*
    > DELETE/SYMBOL/GLOBAL GS
    > IF F$SEARCH("_TEMP_*.*") .NES. "" THEN DELETE/NOLOG _TEMP_*.*;*

.IFDEF __MADGOAT_BUILD__
MG_FACILITY = MMK
SRCDIR = MG_SRC:[MMK]
BINDIR = MG_BIN:[MMK]
ETCDIR = MG_ETC:[MMK]
KITDIR = MG_KIT:[MMK]
.ELSE
SRCDIR = SYS$DISK:[]
BINDIR = SYS$DISK:[.BIN-$(ARCH)]
ETCDIR = SYS$DISK:[.ETC-$(ARCH)]
KITDIR = SYS$DISK:[.KIT-$(ARCH)]
.ENDIF
.FIRST
    @ IF F$PARSE("$(BINDIR)") .EQS. "" THEN CREATE/DIR $(BINDIR)
    @ DEFINE/NOLOG BIN_DIR $(BINDIR)
    @ IF F$PARSE("$(ETCDIR)") .EQS. "" THEN CREATE/DIR $(ETCDIR)
    @ DEFINE/NOLOG ETC_DIR $(ETCDIR)
    @ IF F$PARSE("$(KITDIR)") .EQS. "" THEN CREATE/DIR $(KITDIR)
    @ DEFINE/NOLOG KIT_DIR $(KITDIR)
    @ DEFINE/NOLOG SRC_DIR $(SRCDIR)
    @ IF F$TRNLNM("MMK_SDL_SETUP") .NES. "" -
	THEN @MMK_SDL_SETUP:

OPT = .$(ARCH)_OPT
MMKCOPT = MMK_COMPILE_RULES$(OPT)

SDL = SDL/VAX

.IFDEF DBG
CFLAGS = $(CFLAGS)/DEBUG/NOOPT/LIST=$(ETCDIR)
.IFDEF __VAX__
CFLAGS = $(CFLAGS)/MACHINE=AFTER
.ELSE
CFLAGS = $(CFLAGS)/MACHINE
.ENDIF
LINKFLAGS = $(LINKFLAGS)/TRACEBACK
.ENDIF

!
! Modules for building MMK
!
OBJECTS = MMK=$(BINDIR)MMK.OBJ,FILEIO=$(BINDIR)FILEIO.OBJ,-
          MEM=$(BINDIR)MEM.OBJ,GET_RDT=$(BINDIR)GET_RDT.OBJ,-
          SP_MGR=$(BINDIR)SP_MGR.OBJ,MISC=$(BINDIR)MISC.OBJ,-
          OBJECTS=$(BINDIR)OBJECTS.OBJ,SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
          READDESC=$(BINDIR)READDESC.OBJ,-
          BUILD_TARGET=$(BINDIR)BUILD_TARGET.OBJ,-
          PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
          CMS_INTERFACE=$(BINDIR)CMS_INTERFACE.OBJ,-
          PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
          PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
          MMK_MSG=$(BINDIR)MMK_MSG.OBJ,MMK_CLD=$(BINDIR)MMK_CLD.OBJ,-
          DEFAULT_RULES=$(BINDIR)DEFAULT_RULES.OBJ
!
! Modules for building the rules compiler
!
MMKCMODS = FILEIO=$(BINDIR)FILEIO.OBJ,MEM=$(BINDIR)MEM.OBJ,-
           MISC=$(BINDIR)MISC.OBJ,OBJECTS=$(BINDIR)OBJECTS.OBJ,-
           SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
           READDESC=$(BINDIR)READDESC.OBJ,-
           PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
           PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
           PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
           MMK_MSG=$(BINDIR)MMK_MSG.OBJ

CFLAGS = /NODEBUG$(CFLAGS)$(DEFINE)
LINKFLAGS = /NOTRACEBACK/NODEBUG$(LINKFLAGS)

$(BINDIR)MMK.EXE : $(BINDIR)MMK.OLB($(OBJECTS)),$(SRCDIR)MMK$(OPT)
    $(LIBR)/COMPRESS/OUTPUT=$(BINDIR)MMK.OLB $(BINDIR)MMK.OLB
    $(LINK)$(LINKFLAGS) $(SRCDIR)MMK$(OPT)/OPT

MMK_H	    	    	    = $(SRCDIR)MMK.H, $(ETCDIR)MMK_MSG.H

$(BINDIR)MMK.OBJ            : $(SRCDIR)MMK.C,$(MMK_H) $(SRCDIR)VERSION.H
$(BINDIR)MEM.OBJ            : $(SRCDIR)MEM.C,$(MMK_H)
$(BINDIR)SP_MGR.OBJ         : $(SRCDIR)SP_MGR.C,$(MMK_H)
$(BINDIR)FILEIO.OBJ         : $(SRCDIR)FILEIO.C,$(MMK_H)
$(BINDIR)GET_RDT.OBJ	    : $(SRCDIR)GET_RDT.C,$(MMK_H)

$(BINDIR)SYMBOLS.OBJ        : $(SRCDIR)SYMBOLS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)OBJECTS.OBJ        : $(SRCDIR)OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)MISC.OBJ           : $(SRCDIR)MISC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)READDESC.OBJ       : $(SRCDIR)READDESC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)BUILD_TARGET.OBJ   : $(SRCDIR)BUILD_TARGET.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_DESCRIP.OBJ  : $(SRCDIR)PARSE_DESCRIP.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_OBJECTS.OBJ  : $(SRCDIR)PARSE_OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)CMS_INTERFACE.OBJ  : $(SRCDIR)CMS_INTERFACE.C,-
                              $(MMK_H),$(SRCDIR)CMSDEF.H,$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_TABLES.OBJ   : $(SRCDIR)PARSE_TABLES.MAR
    $(MACRO)$(MFLAGS) SYS$LIBRARY:ARCH_DEFS.MAR+$(SRCDIR)PARSE_TABLES.MAR

$(BINDIR)DEFAULT_RULES.OBJ  : $(SRCDIR)DEFAULT_RULES.C,$(MMK_H),$(SRCDIR)GLOBALS.H,-
                              $(ETCDIR)MMK_DEFAULT_RULES.H

$(BINDIR)MMK_MSG.OBJ        : $(SRCDIR)MMK_MSG.MSG
$(BINDIR)MMK_CLD.OBJ        : $(SRCDIR)MMK_CLD.CLD

$(ETCDIR)MMK_MSG.H	    : $(SRCDIR)MMK_MSG.MSG
    $(MESSAGE)/NOOBJECT/SDL=$(ETCDIR)MMK_MSG.SDL $(MMS$SOURCE)
    $(SDL)/LANGUAGE=CC=$(MMS$TARGET) $(ETCDIR)MMK_MSG.SDL

$(ETCDIR)MMK_DEFAULT_RULES.H : $(SRCDIR)MMK_DEFAULT_RULES_$(ARCH).MMS, $(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC := $$(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE)

MMKCOBJ = $(BINDIR)MMK_COMPILE_RULES.OBJ,$(BINDIR)GENSTRUC.OBJ,$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ

$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ : $(SRCDIR)MMK_COMPILE_RULES_CLD.CLD

$(BINDIR)MMK_COMPILE_RULES.EXE : $(MMKCOBJ),$(BINDIR)MMK.OLB($(MMKCMODS)),$(MMKCOPT)
    $(LINK)$(LINKFLAGS) $(MMKCOBJ),$(SRCDIR)$(MMKCOPT)/opt

$(BINDIR)MMK_COMPILE_RULES.OBJ	: $(SRCDIR)MMK_COMPILE_RULES.C,$(MMK_H)
$(BINDIR)GENSTRUC.OBJ	       	: $(SRCDIR)GENSTRUC.C,$(MMK_H),$(SRCDIR)GLOBALS.H

!
! The help file
!
$(KITDIR)MMK_HELP.HLP : $(SRCDIR)MMK_HELP.RNH

!
! Documentation
!
DOCS : $(KITDIR)MMK_DOC.PS,$(KITDIR)MMK_DOC.TXT,$(KITDIR)MMK_DOC.HTML,-
	$(KITDIR)MMK_HELP.HLP,$(KITDIR)MMK.RELEASE_NOTES $(KITDIR)MMK_DOC.PDF
$(KITDIR)MMK_DOC.PS : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                      $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		      $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE PS
$(KITDIR)MMK_DOC.PDF : $(KITDIR)MMK_DOC.PS
$(KITDIR)MMK_DOC.TXT : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                       $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		       $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL
$(KITDIR)MMK_DOC.HTML : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
			$(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
			$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/OUTPUT=$(KITDIR) $(MMS$SOURCE) SOFTWARE.REFERENCE HTML
$(KITDIR)MMK.RELEASE_NOTES : $(SRCDIR)RELEASE_NOTES.SDML,$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL/CONTENTS
$(ETCDIR)DYNAMIC_SYMBOLS.SDML   : $(BINDIR)MMK.EXE,$(SRCDIR)GENERATE_SYMBOLS.MMS
    MCR $(MMS$SOURCE) /DESCRIPTION=$(SRCDIR)GENERATE_SYMBOLS.MMS -
		/OUTPUT=$(MMS$TARGET)

CLEAN :
    - DELETE $(ETCDIR)*.*;*
    - DELETE $(BINDIR)*.*;*

REALCLEAN : CLEAN
    - DELETE $(KITDIR)*.*;*

.IFDEF ZIP
.ELSE
ZIP = ZIP
.ENDIF

ALWAYS_MAKE : ! fake target to trigger make on every pass

.IFNDEF KITBUILDER

!
! Build new MMK version number...
!
TMP != PIPE TMP="$(MMK_MAJOR_VERSION)" ; IF F$LENGTH(TMP) .EQ 1 THEN TMP="0"+TMP ; WRITE/SYMBOL SYS$OUTPUT TMP
KITNAME = $(COLLAPSE $(MG_FACILITY)$(TMP)$(MMK_MINOR_VERSION))

KIT : $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /MACRO=(KITBUILDER=1,KITNAME=$(KITNAME)) VMSINSTAL

.ELSE

!
! MMK VMSINSTAL Kit Lettering...
!
! A = KITINSTAL, documentation
! B = VAX images
! C = Alpha images
! D = I64 images
! E = Source code
!
BACKUP = BAC/INT/BL=8192

VMSINSTAL : $(KITDIR)$(KITNAME).A,$(KITDIR)$(KITNAME).B,$(KITDIR)$(KITNAME).E
    @ WRITE SYS$OUTPUT "%I, MMK VMSINSTAL kit built"

$(KITDIR)$(KITNAME).RELEASE_NOTES : $(KITDIR)MMK.RELEASE_NOTES
    COPY $(MMS$SOURCE) $(MMS$TARGET)

$(KITDIR)$(KITNAME).A : $(SRCDIR)KITINSTAL.COM,-
			$(KITDIR)$(KITNAME).RELEASE_NOTES,-
			$(KITDIR)MMK_INSTALLING_VERSION.DAT,-
			$(KITDIR)MMK_DOC_LIST.DAT,$(SRCDIR)MMK_CLD.CLD,-
			$(SRCDIR)MMK_HELP.HLP
    - PURGE/NOLOG $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    $(BACKUP) $(MMS$SOURCE_LIST),MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT -
	$(MMS$TARGET)/SA

$(KITDIR)MMK_DOC_LIST.DAT : MAKE_MMK_DOC_LIST.COM,DOCS
    -@ DELETE/NOLOG $(MMS$TARGET);*
    @MAKE_MMK_DOC_LIST

$(KITDIR)MMK_INSTALLING_VERSION.DAT : $(SRCDIR)INSTALLING_VERSION.MMS,-
				      $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /DESCRIPTION=$(MMS$SOURCE)/OUTPUT=$(MMS$TARGET)

$(KITDIR)$(KITNAME).B : MG_BIN_VAX:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).C : MG_BIN_AXP:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).D : MG_BIN_I64:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).E : $(KITDIR)$(KITNAME)_SOURCE.ZIP
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME)_SOURCE.ZIP : ALWAYS_MAKE
    - DELETE/NOLOG $(MMS$TARGET);*
    wget --no-check-certificate --output-document=$(MMS$TARGET) -
	"https://github.com/endlesssoftware/mmk/zipball/master"

.ENDIF


Corrected to download the version of the software based on the tag.

!++
!   DESCRIP.MMS
!
!   Description file for building MMK.
!   Copyright (c) 2008, Matthew Madison.
!   Copyright (c) 2012, Endless Software Solutions.
!
!   All rights reserved.
!
!   Redistribution and use in source and binary forms, with or without
!   modification, are permitted provided that the following conditions
!   are met:
!
!       * Redistributions of source code must retain the above
!         copyright notice, this list of conditions and the following
!         disclaimer.
!       * Redistributions in binary form must reproduce the above
!         copyright notice, this list of conditions and the following
!         disclaimer in the documentation and/or other materials provided
!         with the distribution.
!       * Neither the name of the copyright owner nor the names of any
!         other contributors may be used to endorse or promote products
!         derived from this software without specific prior written
!         permission.
!
!   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
!   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
!   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
!   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
!   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
!   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
!   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
!   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
!   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
!   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
!   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
!   28-SEP-1993	V1.0	Madison	    Initial commenting.
!   25-JUL-1994	V1.1	Madison	    Update for V3.2.
!   27-DEC-1998	V1.2	Madison	    Update for V3.8.
!   03-MAY-2004 V1.3    Madison     Integrate IA64 support.
!   03-MAR-2008 V2.0    Madison     Cleanup for open-source release.
!   05-JUL-2009 V2.1    Sneddon     Added HTML documentation.
!   16-APR-2010 V2.2	Sneddon     New modules, etc.
!   06-AUG-2010 V2.3	Sneddon     Add release notes, plus SDML dynamic
!				     symbols.
!--

.IFDEF ARCH
.ELSE
.IFDEF MMS$ARCH_NAME
ARCH = $(MMS$ARCH_NAME)
.ELSE
.ERROR You must define the ARCH macro as one of: VAX, ALPHA, IA64
.ENDIF
.ENDIF

.SUFFIXES : .PS .PDF
.PS.PDF :
    < DEFINE/USER GS_LIB SYS$SYSDEVICE:[GS.LIB],SYS$SYSDEVICE:[GS.FONTS]
    < GS == "$SYS$SYSDEVICE:[GS.BIN]GS.EXE_$(MMSARCH_NAME)"
    - PIPE GS "-sDEVICE=pdfwrite" "-dBATCH" "-dNOPAUSE" "-sOutputFile=$(MMS$TARGET)" $(MMS$SOURCE) > $(MMS$TARGET:.pdf=.gs_out)
    > TYPE $(MMS$TARGET:.pdf=.gs_out)
    > IF F$SEARCH("$(MMS$TARGET:.pdf=.gs_out)") .NES. "" THEN DELETE/NOLOG $(MMS$TARGET:.pdf=.gs_out);*
    > DELETE/SYMBOL/GLOBAL GS
    > IF F$SEARCH("_TEMP_*.*") .NES. "" THEN DELETE/NOLOG _TEMP_*.*;*

.IFDEF __MADGOAT_BUILD__
MG_FACILITY = MMK
SRCDIR = MG_SRC:[MMK]
BINDIR = MG_BIN:[MMK]
ETCDIR = MG_ETC:[MMK]
KITDIR = MG_KIT:[MMK]
.ELSE
SRCDIR = SYS$DISK:[]
BINDIR = SYS$DISK:[.BIN-$(ARCH)]
ETCDIR = SYS$DISK:[.ETC-$(ARCH)]
KITDIR = SYS$DISK:[.KIT-$(ARCH)]
.ENDIF
.FIRST
    @ IF F$PARSE("$(BINDIR)") .EQS. "" THEN CREATE/DIR $(BINDIR)
    @ DEFINE/NOLOG BIN_DIR $(BINDIR)
    @ IF F$PARSE("$(ETCDIR)") .EQS. "" THEN CREATE/DIR $(ETCDIR)
    @ DEFINE/NOLOG ETC_DIR $(ETCDIR)
    @ IF F$PARSE("$(KITDIR)") .EQS. "" THEN CREATE/DIR $(KITDIR)
    @ DEFINE/NOLOG KIT_DIR $(KITDIR)
    @ DEFINE/NOLOG SRC_DIR $(SRCDIR)
    @ IF F$TRNLNM("MMK_SDL_SETUP") .NES. "" -
	THEN @MMK_SDL_SETUP:

OPT = .$(ARCH)_OPT
MMKCOPT = MMK_COMPILE_RULES$(OPT)

SDL = SDL/VAX

.IFDEF DBG
CFLAGS = $(CFLAGS)/DEBUG/NOOPT/LIST=$(ETCDIR)
.IFDEF __VAX__
CFLAGS = $(CFLAGS)/MACHINE=AFTER
.ELSE
CFLAGS = $(CFLAGS)/MACHINE
.ENDIF
LINKFLAGS = $(LINKFLAGS)/TRACEBACK
.ENDIF

!
! Modules for building MMK
!
OBJECTS = MMK=$(BINDIR)MMK.OBJ,FILEIO=$(BINDIR)FILEIO.OBJ,-
          MEM=$(BINDIR)MEM.OBJ,GET_RDT=$(BINDIR)GET_RDT.OBJ,-
          SP_MGR=$(BINDIR)SP_MGR.OBJ,MISC=$(BINDIR)MISC.OBJ,-
          OBJECTS=$(BINDIR)OBJECTS.OBJ,SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
          READDESC=$(BINDIR)READDESC.OBJ,-
          BUILD_TARGET=$(BINDIR)BUILD_TARGET.OBJ,-
          PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
          CMS_INTERFACE=$(BINDIR)CMS_INTERFACE.OBJ,-
          PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
          PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
          MMK_MSG=$(BINDIR)MMK_MSG.OBJ,MMK_CLD=$(BINDIR)MMK_CLD.OBJ,-
          DEFAULT_RULES=$(BINDIR)DEFAULT_RULES.OBJ
!
! Modules for building the rules compiler
!
MMKCMODS = FILEIO=$(BINDIR)FILEIO.OBJ,MEM=$(BINDIR)MEM.OBJ,-
           MISC=$(BINDIR)MISC.OBJ,OBJECTS=$(BINDIR)OBJECTS.OBJ,-
           SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
           READDESC=$(BINDIR)READDESC.OBJ,-
           PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
           PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
           PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
           MMK_MSG=$(BINDIR)MMK_MSG.OBJ

CFLAGS = /NODEBUG$(CFLAGS)$(DEFINE)
LINKFLAGS = /NOTRACEBACK/NODEBUG$(LINKFLAGS)

$(BINDIR)MMK.EXE : $(BINDIR)MMK.OLB($(OBJECTS)),$(SRCDIR)MMK$(OPT)
    $(LIBR)/COMPRESS/OUTPUT=$(BINDIR)MMK.OLB $(BINDIR)MMK.OLB
    $(LINK)$(LINKFLAGS) $(SRCDIR)MMK$(OPT)/OPT

MMK_H	    	    	    = $(SRCDIR)MMK.H, $(ETCDIR)MMK_MSG.H

$(BINDIR)MMK.OBJ            : $(SRCDIR)MMK.C,$(MMK_H) $(SRCDIR)VERSION.H
$(BINDIR)MEM.OBJ            : $(SRCDIR)MEM.C,$(MMK_H)
$(BINDIR)SP_MGR.OBJ         : $(SRCDIR)SP_MGR.C,$(MMK_H)
$(BINDIR)FILEIO.OBJ         : $(SRCDIR)FILEIO.C,$(MMK_H)
$(BINDIR)GET_RDT.OBJ	    : $(SRCDIR)GET_RDT.C,$(MMK_H)

$(BINDIR)SYMBOLS.OBJ        : $(SRCDIR)SYMBOLS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)OBJECTS.OBJ        : $(SRCDIR)OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)MISC.OBJ           : $(SRCDIR)MISC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)READDESC.OBJ       : $(SRCDIR)READDESC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)BUILD_TARGET.OBJ   : $(SRCDIR)BUILD_TARGET.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_DESCRIP.OBJ  : $(SRCDIR)PARSE_DESCRIP.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_OBJECTS.OBJ  : $(SRCDIR)PARSE_OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)CMS_INTERFACE.OBJ  : $(SRCDIR)CMS_INTERFACE.C,-
                              $(MMK_H),$(SRCDIR)CMSDEF.H,$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_TABLES.OBJ   : $(SRCDIR)PARSE_TABLES.MAR
    $(MACRO)$(MFLAGS) SYS$LIBRARY:ARCH_DEFS.MAR+$(SRCDIR)PARSE_TABLES.MAR

$(BINDIR)DEFAULT_RULES.OBJ  : $(SRCDIR)DEFAULT_RULES.C,$(MMK_H),$(SRCDIR)GLOBALS.H,-
                              $(ETCDIR)MMK_DEFAULT_RULES.H

$(BINDIR)MMK_MSG.OBJ        : $(SRCDIR)MMK_MSG.MSG
$(BINDIR)MMK_CLD.OBJ        : $(SRCDIR)MMK_CLD.CLD

$(ETCDIR)MMK_MSG.H	    : $(SRCDIR)MMK_MSG.MSG
    $(MESSAGE)/NOOBJECT/SDL=$(ETCDIR)MMK_MSG.SDL $(MMS$SOURCE)
    $(SDL)/LANGUAGE=CC=$(MMS$TARGET) $(ETCDIR)MMK_MSG.SDL

$(ETCDIR)MMK_DEFAULT_RULES.H : $(SRCDIR)MMK_DEFAULT_RULES_$(ARCH).MMS, $(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC := $$(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE)

MMKCOBJ = $(BINDIR)MMK_COMPILE_RULES.OBJ,$(BINDIR)GENSTRUC.OBJ,$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ

$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ : $(SRCDIR)MMK_COMPILE_RULES_CLD.CLD

$(BINDIR)MMK_COMPILE_RULES.EXE : $(MMKCOBJ),$(BINDIR)MMK.OLB($(MMKCMODS)),$(MMKCOPT)
    $(LINK)$(LINKFLAGS) $(MMKCOBJ),$(SRCDIR)$(MMKCOPT)/opt

$(BINDIR)MMK_COMPILE_RULES.OBJ	: $(SRCDIR)MMK_COMPILE_RULES.C,$(MMK_H)
$(BINDIR)GENSTRUC.OBJ	       	: $(SRCDIR)GENSTRUC.C,$(MMK_H),$(SRCDIR)GLOBALS.H

!
! The help file
!
$(KITDIR)MMK_HELP.HLP : $(SRCDIR)MMK_HELP.RNH

!
! Documentation
!
DOCS : $(KITDIR)MMK_DOC.PS,$(KITDIR)MMK_DOC.TXT,$(KITDIR)MMK_DOC.HTML,-
	$(KITDIR)MMK_HELP.HLP,$(KITDIR)MMK.RELEASE_NOTES $(KITDIR)MMK_DOC.PDF
$(KITDIR)MMK_DOC.PS : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                      $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		      $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE PS
$(KITDIR)MMK_DOC.PDF : $(KITDIR)MMK_DOC.PS
$(KITDIR)MMK_DOC.TXT : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                       $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		       $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL
$(KITDIR)MMK_DOC.HTML : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
			$(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
			$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/OUTPUT=$(KITDIR) $(MMS$SOURCE) SOFTWARE.REFERENCE HTML
$(KITDIR)MMK.RELEASE_NOTES : $(SRCDIR)RELEASE_NOTES.SDML,$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL/CONTENTS
$(ETCDIR)DYNAMIC_SYMBOLS.SDML   : $(BINDIR)MMK.EXE,$(SRCDIR)GENERATE_SYMBOLS.MMS
    MCR $(MMS$SOURCE) /DESCRIPTION=$(SRCDIR)GENERATE_SYMBOLS.MMS -
		/OUTPUT=$(MMS$TARGET)

CLEAN :
    - DELETE $(ETCDIR)*.*;*
    - DELETE $(KITDIR)*.*;*
    - DELETE $(BINDIR)*.*;*

REALCLEAN : CLEAN
    - DELETE $(KITDIR)*.*;*

.IFDEF ZIP
.ELSE
ZIP = ZIP
.ENDIF

ALWAYS_MAKE : ! fake target to trigger make on every pass

.IFNDEF KITBUILDER

!
! Build new MMK version number...
!
TMP != PIPE TMP="$(MMK_MAJOR_VERSION)" ; IF F$LENGTH(TMP) .EQ 1 THEN TMP="0"+TMP ; WRITE/SYMBOL SYS$OUTPUT TMP
KITNAME = $(COLLAPSE $(MG_FACILITY)$(TMP)$(MMK_MINOR_VERSION))

KIT : $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /MACRO=(KITBUILDER=1,KITNAME=$(KITNAME)) VMSINSTAL
    MCR $(BINDIR)MMK.EXE /MACRO=(KITBUILDER=1,KITNAME=$(KITNAME)) PCSI

.ELSE

!
! MMK VMSINSTAL Kit Lettering...
!
! A = KITINSTAL, documentation
! B = VAX images
! C = Alpha images
! D = I64 images
! E = Source code
!
BACKUP = BAC/INT/BL=8192

VMSINSTAL : $(KITDIR)$(KITNAME).A,$(KITDIR)$(KITNAME).B,-
	    $(KITDIR)$(KITNAME).C,$(KITDIR)$(KITNAME).D,$(KITDIR)$(KITNAME).E
    @ WRITE SYS$OUTPUT "%I, MMK VMSINSTAL kit built"

$(KITDIR)$(KITNAME).RELEASE_NOTES : $(KITDIR)MMK.RELEASE_NOTES
    COPY $(MMS$SOURCE) $(MMS$TARGET)

$(KITDIR)$(KITNAME).A : $(SRCDIR)KITINSTAL.COM,-
			$(KITDIR)$(KITNAME).RELEASE_NOTES,-
			$(KITDIR)MMK_INSTALLING_VERSION.DAT,-
			$(KITDIR)MMK_DOC_LIST.DAT,$(SRCDIR)MMK_CLD.CLD,-
			$(KITDIR)MMK_HELP.HLP
    - PURGE/NOLOG $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    $(BACKUP) $(MMS$SOURCE_LIST),MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT -
	$(MMS$TARGET)/SA

$(KITDIR)MMK_DOC_LIST.DAT : MAKE_MMK_DOC_LIST.COM,DOCS
    -@ DELETE/NOLOG $(MMS$TARGET);*
    @MAKE_MMK_DOC_LIST

$(KITDIR)MMK_INSTALLING_VERSION.DAT : $(SRCDIR)INSTALLING_VERSION.MMS,-
				      $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /DESCRIPTION=$(MMS$SOURCE)/OUTPUT=$(MMS$TARGET)

$(KITDIR)$(KITNAME).B : MG_BIN_VAX:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).C : MG_BIN_AXP:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).D : MG_BIN_I64:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).E : $(KITDIR)$(KITNAME)_SOURCE.ZIP
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME)_SOURCE.ZIP : ALWAYS_MAKE
    - DELETE/NOLOG $(MMS$TARGET);*
    wget --no-check-certificate --output-document=$(MMS$TARGET) -
	"https://github.com/endlesssoftware/mmk/archive/$(MMK_VERSION).zip"

PCSI : $(KITDIR)MMK.PCSI$DESC $(KITDIR)MMK.PCSI$TEXT
    MCR $(BINDIR)MMK.EXE PACKAGE/DESCRIPTION=$(SRCDIR)MMK_PCSI.MMS

$(KITDIR)MMK.PCSI$DESC : $(SRCDIR)MMK_PCSI.MMS
    MCR $(BINDIR)MMK.EXE DESCRIPTION/OUTPUT=$(MMS$TARGET) -
	/DESCRIPTION=$(MMS$SOURCE)

$(KITDIR)MMK.PCSI$TEXT : $(SRCDIR)MMK_PCSI.MMS
    MCR $(BINDIR)MMK.EXE TEXT/OUTPUT=$(MMS$TARGET) -
	/DESCRIPTION=$(MMS$SOURCE)

.ENDIF

!++
!   DESCRIP.MMS
!
!   Description file for building MMK.
!   Copyright (c) 2008, Matthew Madison.
!   Copyright (c) 2012, Endless Software Solutions.
!
!   All rights reserved.
!
!   Redistribution and use in source and binary forms, with or without
!   modification, are permitted provided that the following conditions
!   are met:
!
!       * Redistributions of source code must retain the above
!         copyright notice, this list of conditions and the following
!         disclaimer.
!       * Redistributions in binary form must reproduce the above
!         copyright notice, this list of conditions and the following
!         disclaimer in the documentation and/or other materials provided
!         with the distribution.
!       * Neither the name of the copyright owner nor the names of any
!         other contributors may be used to endorse or promote products
!         derived from this software without specific prior written
!         permission.
!
!   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
!   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
!   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
!   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
!   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
!   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
!   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
!   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
!   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
!   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
!   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
!   28-SEP-1993	V1.0	Madison	    Initial commenting.
!   25-JUL-1994	V1.1	Madison	    Update for V3.2.
!   27-DEC-1998	V1.2	Madison	    Update for V3.8.
!   03-MAY-2004 V1.3    Madison     Integrate IA64 support.
!   03-MAR-2008 V2.0    Madison     Cleanup for open-source release.
!   05-JUL-2009 V2.1    Sneddon     Added HTML documentation.
!   16-APR-2010 V2.2	Sneddon     New modules, etc.
!   06-AUG-2010 V2.3	Sneddon     Add release notes, plus SDML dynamic
!				     symbols.
!--

.IFDEF ARCH
.ELSE
.IFDEF MMS$ARCH_NAME
ARCH = $(MMS$ARCH_NAME)
.ELSE
.ERROR You must define the ARCH macro as one of: VAX, ALPHA, IA64
.ENDIF
.ENDIF

.SUFFIXES : .PS .PDF
.PS.PDF :
    < DEFINE/USER GS_LIB SYS$SYSDEVICE:[GS.LIB],SYS$SYSDEVICE:[GS.FONTS]
    < GS == "$SYS$SYSDEVICE:[GS.BIN]GS.EXE_$(MMSARCH_NAME)"
    - PIPE GS "-sDEVICE=pdfwrite" "-dBATCH" "-dNOPAUSE" "-sOutputFile=$(MMS$TARGET)" $(MMS$SOURCE) > $(MMS$TARGET:.pdf=.gs_out)
    > TYPE $(MMS$TARGET:.pdf=.gs_out)
    > IF F$SEARCH("$(MMS$TARGET:.pdf=.gs_out)") .NES. "" THEN DELETE/NOLOG $(MMS$TARGET:.pdf=.gs_out);*
    > DELETE/SYMBOL/GLOBAL GS
    > IF F$SEARCH("_TEMP_*.*") .NES. "" THEN DELETE/NOLOG _TEMP_*.*;*

.IFDEF __MADGOAT_BUILD__
MG_FACILITY = MMK
SRCDIR = MG_SRC:[MMK]
BINDIR = MG_BIN:[MMK]
ETCDIR = MG_ETC:[MMK]
KITDIR = MG_KIT:[MMK]
.ELSE
SRCDIR = SYS$DISK:[]
BINDIR = SYS$DISK:[.BIN-$(ARCH)]
ETCDIR = SYS$DISK:[.ETC-$(ARCH)]
KITDIR = SYS$DISK:[.KIT-$(ARCH)]
.ENDIF
.FIRST
    @ IF F$PARSE("$(BINDIR)") .EQS. "" THEN CREATE/DIR $(BINDIR)
    @ DEFINE/NOLOG BIN_DIR $(BINDIR)
    @ IF F$PARSE("$(ETCDIR)") .EQS. "" THEN CREATE/DIR $(ETCDIR)
    @ DEFINE/NOLOG ETC_DIR $(ETCDIR)
    @ IF F$PARSE("$(KITDIR)") .EQS. "" THEN CREATE/DIR $(KITDIR)
    @ DEFINE/NOLOG KIT_DIR $(KITDIR)
    @ DEFINE/NOLOG SRC_DIR $(SRCDIR)
    @ IF F$TRNLNM("MMK_SDL_SETUP") .NES. "" -
	THEN @MMK_SDL_SETUP:

OPT = .$(ARCH)_OPT
MMKCOPT = MMK_COMPILE_RULES$(OPT)

SDL = SDL/VAX

.IFDEF DBG
CFLAGS = $(CFLAGS)/DEBUG/NOOPT/LIST=$(ETCDIR)
.IFDEF __VAX__
CFLAGS = $(CFLAGS)/MACHINE=AFTER
.ELSE
CFLAGS = $(CFLAGS)/MACHINE
.ENDIF
LINKFLAGS = $(LINKFLAGS)/TRACEBACK
.ENDIF

!
! Modules for building MMK
!
OBJECTS = MMK=$(BINDIR)MMK.OBJ,FILEIO=$(BINDIR)FILEIO.OBJ,-
          MEM=$(BINDIR)MEM.OBJ,GET_RDT=$(BINDIR)GET_RDT.OBJ,-
          SP_MGR=$(BINDIR)SP_MGR.OBJ,MISC=$(BINDIR)MISC.OBJ,-
          OBJECTS=$(BINDIR)OBJECTS.OBJ,SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
          READDESC=$(BINDIR)READDESC.OBJ,-
          BUILD_TARGET=$(BINDIR)BUILD_TARGET.OBJ,-
          PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
          CMS_INTERFACE=$(BINDIR)CMS_INTERFACE.OBJ,-
          PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
          PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
          MMK_MSG=$(BINDIR)MMK_MSG.OBJ,MMK_CLD=$(BINDIR)MMK_CLD.OBJ,-
          DEFAULT_RULES=$(BINDIR)DEFAULT_RULES.OBJ
!
! Modules for building the rules compiler
!
MMKCMODS = FILEIO=$(BINDIR)FILEIO.OBJ,MEM=$(BINDIR)MEM.OBJ,-
           MISC=$(BINDIR)MISC.OBJ,OBJECTS=$(BINDIR)OBJECTS.OBJ,-
           SYMBOLS=$(BINDIR)SYMBOLS.OBJ,-
           READDESC=$(BINDIR)READDESC.OBJ,-
           PARSE_DESCRIP=$(BINDIR)PARSE_DESCRIP.OBJ,-
           PARSE_OBJECTS=$(BINDIR)PARSE_OBJECTS.OBJ,-
           PARSE_TABLES=$(BINDIR)PARSE_TABLES.OBJ,-
           MMK_MSG=$(BINDIR)MMK_MSG.OBJ

CFLAGS = /NODEBUG$(CFLAGS)$(DEFINE)
LINKFLAGS = /NOTRACEBACK/NODEBUG$(LINKFLAGS)

$(BINDIR)MMK.EXE : $(BINDIR)MMK.OLB($(OBJECTS)),$(SRCDIR)MMK$(OPT)
    $(LIBR)/COMPRESS/OUTPUT=$(BINDIR)MMK.OLB $(BINDIR)MMK.OLB
    $(LINK)$(LINKFLAGS) $(SRCDIR)MMK$(OPT)/OPT

MMK_H	    	    	    = $(SRCDIR)MMK.H, $(ETCDIR)MMK_MSG.H

$(BINDIR)MMK.OBJ            : $(SRCDIR)MMK.C,$(MMK_H) $(SRCDIR)VERSION.H
$(BINDIR)MEM.OBJ            : $(SRCDIR)MEM.C,$(MMK_H)
$(BINDIR)SP_MGR.OBJ         : $(SRCDIR)SP_MGR.C,$(MMK_H)
$(BINDIR)FILEIO.OBJ         : $(SRCDIR)FILEIO.C,$(MMK_H)
$(BINDIR)GET_RDT.OBJ	    : $(SRCDIR)GET_RDT.C,$(MMK_H)

$(BINDIR)SYMBOLS.OBJ        : $(SRCDIR)SYMBOLS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)OBJECTS.OBJ        : $(SRCDIR)OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)MISC.OBJ           : $(SRCDIR)MISC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)READDESC.OBJ       : $(SRCDIR)READDESC.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)BUILD_TARGET.OBJ   : $(SRCDIR)BUILD_TARGET.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_DESCRIP.OBJ  : $(SRCDIR)PARSE_DESCRIP.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_OBJECTS.OBJ  : $(SRCDIR)PARSE_OBJECTS.C,$(MMK_H),$(SRCDIR)GLOBALS.H
$(BINDIR)CMS_INTERFACE.OBJ  : $(SRCDIR)CMS_INTERFACE.C,-
                              $(MMK_H),$(SRCDIR)CMSDEF.H,$(SRCDIR)GLOBALS.H
$(BINDIR)PARSE_TABLES.OBJ   : $(SRCDIR)PARSE_TABLES.MAR
    $(MACRO)$(MFLAGS) SYS$LIBRARY:ARCH_DEFS.MAR+$(SRCDIR)PARSE_TABLES.MAR

$(BINDIR)DEFAULT_RULES.OBJ  : $(SRCDIR)DEFAULT_RULES.C,$(MMK_H),$(SRCDIR)GLOBALS.H,-
                              $(ETCDIR)MMK_DEFAULT_RULES.H

$(BINDIR)MMK_MSG.OBJ        : $(SRCDIR)MMK_MSG.MSG
$(BINDIR)MMK_CLD.OBJ        : $(SRCDIR)MMK_CLD.CLD

$(ETCDIR)MMK_MSG.H	    : $(SRCDIR)MMK_MSG.MSG
    $(MESSAGE)/NOOBJECT/SDL=$(ETCDIR)MMK_MSG.SDL $(MMS$SOURCE)
    $(SDL)/LANGUAGE=CC=$(MMS$TARGET) $(ETCDIR)MMK_MSG.SDL

$(ETCDIR)MMK_DEFAULT_RULES.H : $(SRCDIR)MMK_DEFAULT_RULES_$(ARCH).MMS, $(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC := $$(BINDIR)MMK_COMPILE_RULES.EXE
    MMKC/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE)

MMKCOBJ = $(BINDIR)MMK_COMPILE_RULES.OBJ,$(BINDIR)GENSTRUC.OBJ,$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ

$(BINDIR)MMK_COMPILE_RULES_CLD.OBJ : $(SRCDIR)MMK_COMPILE_RULES_CLD.CLD

$(BINDIR)MMK_COMPILE_RULES.EXE : $(MMKCOBJ),$(BINDIR)MMK.OLB($(MMKCMODS)),$(MMKCOPT)
    $(LINK)$(LINKFLAGS) $(MMKCOBJ),$(SRCDIR)$(MMKCOPT)/opt

$(BINDIR)MMK_COMPILE_RULES.OBJ	: $(SRCDIR)MMK_COMPILE_RULES.C,$(MMK_H)
$(BINDIR)GENSTRUC.OBJ	       	: $(SRCDIR)GENSTRUC.C,$(MMK_H),$(SRCDIR)GLOBALS.H

!
! The help file
!
$(KITDIR)MMK_HELP.HLP : $(SRCDIR)MMK_HELP.RNH

!
! Documentation
!
DOCS : $(KITDIR)MMK_DOC.PS,$(KITDIR)MMK_DOC.TXT,$(KITDIR)MMK_DOC.HTML,-
	$(KITDIR)MMK_HELP.HLP,$(KITDIR)MMK.RELEASE_NOTES $(KITDIR)MMK_DOC.PDF
$(KITDIR)MMK_DOC.PS : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                      $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		      $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE PS
$(KITDIR)MMK_DOC.PDF : $(KITDIR)MMK_DOC.PS
$(KITDIR)MMK_DOC.TXT : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
                       $(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
		       $(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/NOPRINT/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL
$(KITDIR)MMK_DOC.HTML : $(SRCDIR)MMK_DOC.SDML,$(SRCDIR)MMK_DEFAULT_RULES_VAX.MMS,-
			$(SRCDIR)MMK_DEFAULT_RULES_ALPHA.MMS,$(SRCDIR)MMK_DEFAULT_RULES_IA64.MMS,-
			$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/CONTENTS/OUTPUT=$(KITDIR) $(MMS$SOURCE) SOFTWARE.REFERENCE HTML
$(KITDIR)MMK.RELEASE_NOTES : $(SRCDIR)RELEASE_NOTES.SDML,$(ETCDIR)DYNAMIC_SYMBOLS.SDML
    @ IF F$TRNLNM("DECC$SHR") .NES. "" THEN DEF/USER DECC$SHR SYS$SHARE:DECC$SHR
    DOCUMENT/DEVICE=BLANK_PAGES/OUTPUT=$(MMS$TARGET) $(MMS$SOURCE) SOFTWARE.REFERENCE MAIL/CONTENTS
$(ETCDIR)DYNAMIC_SYMBOLS.SDML   : $(BINDIR)MMK.EXE,$(SRCDIR)GENERATE_SYMBOLS.MMS
    MCR $(MMS$SOURCE) /DESCRIPTION=$(SRCDIR)GENERATE_SYMBOLS.MMS -
		/OUTPUT=$(MMS$TARGET)

CLEAN :
    - DELETE $(ETCDIR)*.*;*
    - DELETE $(KITDIR)*.*;*
    - DELETE $(BINDIR)*.*;*

REALCLEAN : CLEAN
    - DELETE $(KITDIR)*.*;*

.IFDEF ZIP
.ELSE
ZIP = ZIP
.ENDIF

ALWAYS_MAKE : ! fake target to trigger make on every pass

.IFNDEF KITBUILDER

!
! Build new MMK version number...
!
TMP != PIPE TMP="$(MMK_MAJOR_VERSION)" ; IF F$LENGTH(TMP) .EQ 1 THEN TMP="0"+TMP ; WRITE/SYMBOL SYS$OUTPUT TMP
KITNAME = $(COLLAPSE $(MG_FACILITY)$(TMP)$(MMK_MINOR_VERSION))

KIT : $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /MACRO=(KITBUILDER=1,KITNAME=$(KITNAME)) VMSINSTAL
    MCR $(BINDIR)MMK.EXE /MACRO=(KITBUILDER=1,KITNAME=$(KITNAME)) PCSI

.ELSE

!
! MMK VMSINSTAL Kit Lettering...
!
! A = KITINSTAL, documentation
! B = VAX images
! C = Alpha images
! D = I64 images
! E = Source code
!
BACKUP = BAC/INT/BL=8192

VMSINSTAL : $(KITDIR)$(KITNAME).A,$(KITDIR)$(KITNAME).B,-
	    $(KITDIR)$(KITNAME).C,$(KITDIR)$(KITNAME).D,$(KITDIR)$(KITNAME).E
    @ WRITE SYS$OUTPUT "%I, MMK VMSINSTAL kit built"

$(KITDIR)$(KITNAME).RELEASE_NOTES : $(KITDIR)MMK.RELEASE_NOTES
    COPY $(MMS$SOURCE) $(MMS$TARGET)

$(KITDIR)$(KITNAME).A : $(SRCDIR)KITINSTAL.COM,-
			$(KITDIR)$(KITNAME).RELEASE_NOTES,-
			$(KITDIR)MMK_INSTALLING_VERSION.DAT,-
			$(KITDIR)MMK_DOC_LIST.DAT,$(SRCDIR)MMK_CLD.CLD,-
			$(KITDIR)MMK_HELP.HLP
    - PURGE/NOLOG $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST),-
	MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT
    $(BACKUP) $(MMS$SOURCE_LIST),MG_KIT:[MMK]*.PDF,*.PS,*.HTML,*.TXT -
	$(MMS$TARGET)/SA

$(KITDIR)MMK_DOC_LIST.DAT : MAKE_MMK_DOC_LIST.COM,DOCS
    -@ DELETE/NOLOG $(MMS$TARGET);*
    @MAKE_MMK_DOC_LIST

$(KITDIR)MMK_INSTALLING_VERSION.DAT : $(SRCDIR)INSTALLING_VERSION.MMS,-
				      $(BINDIR)MMK.EXE
    MCR $(BINDIR)MMK.EXE /DESCRIPTION=$(MMS$SOURCE)/OUTPUT=$(MMS$TARGET)

$(KITDIR)$(KITNAME).B : MG_BIN_VAX:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).C : MG_BIN_AXP:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).D : MG_BIN_I64:[MMK]MMK.EXE
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME).E : $(KITDIR)$(KITNAME)_SOURCE.ZIP
    - PURGE/NOLOG $(MMS$SOURCE_LIST)
    SET PROTECTION=W:RE $(MMS$SOURCE_LIST)
    $(BACKUP) $(MMS$SOURCE_LIST) $(MMS$TARGET)/SA

$(KITDIR)$(KITNAME)_SOURCE.ZIP : ALWAYS_MAKE
    - DELETE/NOLOG $(MMS$TARGET);*
    wget --no-check-certificate --output-document=$(MMS$TARGET) -
	"https://github.com/endlesssoftware/mmk/zipball/master"

PCSI : $(KITDIR)MMK.PCSI$DESC $(KITDIR)MMK.PCSI$TEXT
    MCR $(BINDIR)MMK.EXE PACKAGE/DESCRIPTION=$(SRCDIR)MMK_PCSI.MMS

$(KITDIR)MMK.PCSI$DESC : $(SRCDIR)MMK_PCSI.MMS
    MCR $(BINDIR)MMK.EXE DESCRIPTION/OUTPUT=$(MMS$TARGET) -
	/DESCRIPTION=$(MMS$SOURCE)

$(KITDIR)MMK.PCSI$TEXT : $(SRCDIR)MMK_PCSI.MMS
    MCR $(BINDIR)MMK.EXE TEXT/OUTPUT=$(MMS$TARGET) -
	/DESCRIPTION=$(MMS$SOURCE)

.ENDIF


 Committing in .

 Update OpenVMS makefile due to new source files.

 Modified Files:
 	Mesa-newtree/src/mesa/main/descrip.mms
 ----------------------------------------------------------------------

# 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],[-.glapi]
LIBDIR = [---.lib]
CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)

SOURCES =accum.c \
	api_loopback.c \
	api_noop.c \
	api_validate.c \
	arbfragparse.c \
	arbprogram.c \
	arbvertparse.c \
 	attrib.c \
	blend.c \
	bufferobj.c \
	buffers.c \
	clip.c \
	colortab.c \
	context.c \
	convolve.c \
	debug.c \
	depth.c \
	dispatch.c \
	dlist.c \
	drawpix.c \
	enable.c \
	enums.c \
	eval.c \
	extensions.c \
	feedback.c \
	fog.c \
	get.c \
	hash.c \
	hint.c \
	histogram.c \
	image.c \
	imports.c \
	light.c \
	lines.c \
	matrix.c \
	nvprogram.c \
	nvfragparse.c \
	nvvertexec.c \
	nvvertparse.c \
	occlude.c \
	pixel.c \
	points.c \
	polygon.c \
	rastpos.c \
	state.c \
	stencil.c \
	texcompress.c \
	texformat.c \
	teximage.c \
	texobj.c \
	texstate.c \
	texstore.c \
	texutil.c \
	varray.c \
	vtxfmt.c \
	vsnprintf.c

OBJECTS=accum.obj,\
api_loopback.obj,\
api_noop.obj,\
api_validate.obj,\
arbfragparse.obj,\
arbprogram.obj,\
arbvertparse.obj,\
attrib.obj,\
blend.obj,\
bufferobj.obj,\
buffers.obj,\
clip.obj,\
colortab.obj,\
context.obj,\
convolve.obj,\
debug.obj,\
depth.obj,\
dispatch.obj,\
dlist.obj,\
drawpix.obj,\
enable.obj,\
enums.obj,\
eval.obj,\
extensions.obj,\
feedback.obj,\
fog.obj,\
get.obj,\
hash.obj,\
hint.obj,\
histogram.obj,\
image.obj,\
imports.obj,\
light.obj,\
lines.obj,\
matrix.obj,\
nvprogram.obj,\
nvfragparse.obj,\
nvvertexec.obj,\
nvvertparse.obj,\
occlude.obj,\
pixel.obj,\
points.obj,\
polygon.obj,\
rastpos.obj,\
state.obj,\
stencil.obj,\
texcompress.obj,\
texformat.obj,\
teximage.obj,\
texobj.obj,\
texstate.obj,\
texstore.obj,\
texutil.obj,\
varray.obj,\
vtxfmt.obj,\
vsnprintf.obj

##### RULES #####

VERSION=Mesa V3.4

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS)
  @ $(MAKELIB) $(GL_LIB) $(OBJECTS)
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

accum.obj : accum.c
api_loopback.obj : api_loopback.c
api_noop.obj : api_noop.c
api_validate.obj : api_validate.c
arbfragparse.obj : arbfragparse.c
arbprogram.obj : arbprogram.c
arbvertparse.obj : arbvertparse.c
attrib.obj : attrib.c
blend.obj : blend.c
bufferobj.obj : bufferobj.c
buffers.obj : buffers.c
clip.obj : clip.c
colortab.obj : colortab.c
context.obj : context.c
convolve.obj : convolve.c
debug.obj : debug.c
depth.obj : depth.c
dispatch.obj : dispatch.c
dlist.obj : dlist.c
drawpix.obj : drawpix.c
enable.obj : enable.c
enums.obj : enums.c
eval.obj : eval.c
extensions.obj : extensions.c
feedback.obj : feedback.c
fog.obj : fog.c
get.obj : get.c
hash.obj : hash.c
hint.obj : hint.c
histogram.obj : histogram.c
image.obj : image.c
imports.obj : imports.c
light.obj : light.c
lines.obj : lines.c
matrix.obj : matrix.c
nvprogram.obj : nvprogram.c
nvfragparse.obj : nvfragparse.c
nvvertexec.obj : nvvertexec.c
nvvertparse.obj : nvvertparse.c
occlude.obj : occlude.c
pixel.obj : pixel.c
points.obj : points.c
polygon.obj : polygon.c
rastpos.obj : rastpos.c
state.obj : state.c
stencil.obj : stencil.c
texcompress.obj : texcompress.c
texformat.obj : texformat.c
teximage.obj : teximage.c
texobj.obj : texobj.c
texstate.obj : texstate.c
texstore.obj : texstore.c
texutil.obj : texutil.c
varray.obj : varray.c
vtxfmt.obj : vtxfmt.c
vsnprintf.obj : vsnprintf.c

# 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],[-.glapi]
LIBDIR = [---.lib]
CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)

SOURCES =accum.c \
	api_loopback.c \
	api_noop.c \
	api_validate.c \
	arbprogram.c \
 	attrib.c \
	blend.c \
	bufferobj.c \
	buffers.c \
	clip.c \
	colortab.c \
	context.c \
	convolve.c \
	debug.c \
	depth.c \
	dispatch.c \
	dlist.c \
	drawpix.c \
	enable.c \
	enums.c \
	eval.c \
	extensions.c \
	feedback.c \
	fog.c \
	get.c \
	hash.c \
	hint.c \
	histogram.c \
	image.c \
	imports.c \
	light.c \
	lines.c \
	matrix.c \
	nvprogram.c \
	nvfragparse.c \
	nvvertexec.c \
	nvvertparse.c \
	occlude.c \
	pixel.c \
	points.c \
	polygon.c \
	rastpos.c \
	state.c \
	stencil.c \
	texcompress.c \
	texformat.c \
	teximage.c \
	texobj.c \
	texstate.c \
	texstore.c \
	texutil.c \
	varray.c \
	vtxfmt.c \
	vsnprintf.c

OBJECTS=accum.obj,\
api_loopback.obj,\
api_noop.obj,\
api_validate.obj,\
arbprogram.obj,\
attrib.obj,\
blend.obj,\
bufferobj.obj,\
buffers.obj,\
clip.obj,\
colortab.obj,\
context.obj,\
convolve.obj,\
debug.obj,\
depth.obj,\
dispatch.obj,\
dlist.obj,\
drawpix.obj,\
enable.obj,\
enums.obj,\
eval.obj,\
extensions.obj,\
feedback.obj,\
fog.obj,\
get.obj,\
hash.obj,\
hint.obj,\
histogram.obj,\
image.obj,\
imports.obj,\
light.obj,\
lines.obj,\
matrix.obj,\
nvprogram.obj,\
nvfragparse.obj,\
nvvertexec.obj,\
nvvertparse.obj,\
occlude.obj,\
pixel.obj,\
points.obj,\
polygon.obj,\
rastpos.obj,\
state.obj,\
stencil.obj,\
texcompress.obj,\
texformat.obj,\
teximage.obj,\
texobj.obj,\
texstate.obj,\
texstore.obj,\
texutil.obj,\
varray.obj,\
vtxfmt.obj,\
vsnprintf.obj

##### RULES #####

VERSION=Mesa V3.4

##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS)
  @ $(MAKELIB) $(GL_LIB) $(OBJECTS)
  @ rename $(GL_LIB)* $(LIBDIR)

clean :
	purge
	delete *.obj;*

accum.obj : accum.c
api_loopback.obj : api_loopback.c
api_noop.obj : api_noop.c
api_validate.obj : api_validate.c
arbprogram.obj : arbprogram.c
attrib.obj : attrib.c
blend.obj : blend.c
bufferobj.obj : bufferobj.c
buffers.obj : buffers.c
clip.obj : clip.c
colortab.obj : colortab.c
context.obj : context.c
convolve.obj : convolve.c
debug.obj : debug.c
depth.obj : depth.c
dispatch.obj : dispatch.c
dlist.obj : dlist.c
drawpix.obj : drawpix.c
enable.obj : enable.c
enums.obj : enums.c
eval.obj : eval.c
extensions.obj : extensions.c
feedback.obj : feedback.c
fog.obj : fog.c
get.obj : get.c
hash.obj : hash.c
hint.obj : hint.c
histogram.obj : histogram.c
image.obj : image.c
imports.obj : imports.c
light.obj : light.c
lines.obj : lines.c
matrix.obj : matrix.c
nvprogram.obj : nvprogram.c
nvfragparse.obj : nvfragparse.c
nvvertexec.obj : nvvertexec.c
nvvertparse.obj : nvvertparse.c
occlude.obj : occlude.c
pixel.obj : pixel.c
points.obj : points.c
polygon.obj : polygon.c
rastpos.obj : rastpos.c
state.obj : state.c
stencil.obj : stencil.c
texcompress.obj : texcompress.c
texformat.obj : texformat.c
teximage.obj : teximage.c
texobj.obj : texobj.c
texstate.obj : texstate.c
texstore.obj : texstore.c
texutil.obj : texutil.c
varray.obj : varray.c
vtxfmt.obj : vtxfmt.c
vsnprintf.obj : vsnprintf.c