summaryrefslogtreecommitdiff
path: root/MISC/VMS/descrip.mms
diff options
context:
space:
mode:
Diffstat (limited to 'MISC/VMS/descrip.mms')
-rw-r--r--MISC/VMS/descrip.mms311
1 files changed, 311 insertions, 0 deletions
diff --git a/MISC/VMS/descrip.mms b/MISC/VMS/descrip.mms
new file mode 100644
index 0000000..5b2859d
--- /dev/null
+++ b/MISC/VMS/descrip.mms
@@ -0,0 +1,311 @@
+# descrip.mms -- makefile for building `flex' using MMS or MMK on VMS;
+# created manually from Makefile.in
+# flex 2.5.0 Jan'95
+
+MAKEFILE = descrip.mms # from [.MISC.VMS]
+MAKE = $(MMS) /Descr=$(MAKEFILE)
+MAKEFLAGS = $(MMSQUALIFIERS)
+
+# Possible values for DEFS:
+# "VMS" -- used just to make sure parentheses aren't empty;
+# For flex to always generate 8-bit scanners, append
+# ,"DEFAULT_CSIZE=256" inside /Define=() of DEFS.
+
+DEFS = /Define=("VMS")
+LDFLAGS = /noMap
+
+# compiler handling
+.ifdef GNUC
+CC = gcc
+GCCINIT = ! SET COMMAND GNU_CC:[000000]GCC
+CFLAGS = /noList/Opt=2/Debug/noVerbose
+LIBS = gnu_cc:[000000]gcclib.olb/Library, sys$library:vaxcrtl.olb/Library
+C_CHOICE = "GNUC=1"
+.else ! not GNU C
+CC = cc
+GCCINIT =
+.ifdef DECC
+CFLAGS = /noList/Prefix=All
+LIBS =
+C_CHOICE = "DECC=1"
+.else ! not DEC C; assume VAX C
+CFLAGS = /noList/Optimize=noInline
+LIBS = sys$share:vaxcrtl.exe/Shareable
+C_CHOICE = "VAXC=1"
+.endif
+.endif
+
+# parser handling
+# mms/macro=("xxxC=1","zzz_parser=1"), where "zzz_parser" is
+# either "bison_parser" or "byacc_parser" or "yacc_parser",
+# otherwise assumed to be "no_parser"; and where "xxxC=1" is
+# either "VAXC=1", "GNUC=1", or "DECC=1" as above
+.ifdef bison_parser
+YACC = bison
+YACCFLAGS = /Defines/Fixed_Outfiles
+YACCINIT = set command gnu_bison:[000000]bison
+ALLOCA = ,[]alloca.obj # note leading comma
+.else
+YACCFLAGS = -d
+YACCINIT =
+ALLOCA =
+.ifdef byacc_parser
+YACC = byacc
+.else
+.ifdef yacc_parser
+YACC = yacc
+.else
+# none of bison, byacc, or yacc specified
+.ifdef no_parser
+.else
+no_parser=1
+.endif #<none>
+.endif #yacc
+.endif #byacc
+.endif #bison
+
+# VMS-specific hackery
+ECHO = write sys$output # requires single quoted arg
+COPY = copy_ #
+MOVE = rename_/New_Vers # within same device only
+MUNG = search_/Exact/Match=NOR # to strip unwanted `#module' directive
+NOOP = continue # non-empty command that does nothing
+PURGE = purge_/noConfirm/noLog # relatively quiet file removal
+REMOVE = delete_/noConfirm/noLog # ditto
+TOUCH = append_/New _NL: # requires single file arg
+TPU = edit_/TPU/noJournal/noDisplay/noSection
+
+# You can define this to be "lex.exe" if you want to replace lex at your site.
+FLEX =flex.exe
+# note: there should be no whitespace between `=' and the name,
+# or else $(FLEX_EXEC) below will not function properly.
+FLEXLIB = flexlib.olb
+
+# You normally do not need to modify anything below this point.
+# ------------------------------------------------------------
+
+VMSDIR = [.MISC.VMS]
+MISCDIR = [.MISC]
+CURDIR = sys$disk:[]
+
+CPPFLAGS = $(DEFS)/Include=[]
+LIBOPT = $(CURDIR)crtl.opt # run-time library(s)
+ID_OPT = $(CURDIR)ident.opt # version identification
+
+.SUFFIXES : # avoid overhead of umpteen built-in rules
+.SUFFIXES : .obj .c
+
+.c.obj :
+ $(CC)$(CFLAGS)$(CPPFLAGS) $<
+
+VMSHDRS = $(VMSDIR)vms-conf.h # copied to []config.h
+VMSSRCS = $(VMSDIR)vms-code.c # copied to []vms-code.c
+VMSOBJS = ,vms-code.obj # note leading comma
+
+HEADERS = flexdef.h version.h
+
+SOURCES = ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.y \
+ scan.l skel.c sym.c tblcmp.c yylex.c
+OBJECTS = ccl.obj,dfa.obj,ecs.obj,gen.obj,main.obj,misc.obj,nfa.obj,parse.obj,\
+ scan.obj,skel.obj,sym.obj,tblcmp.obj,yylex.obj $(VMSOBJS) $(ALLOCA)
+
+LIBSRCS = libmain.c libyywrap.c
+LIBOBJS = libmain.obj,libyywrap.obj
+
+LINTSRCS = ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.c \
+ scan.c skel.c sym.c tblcmp.c yylex.c
+
+DISTFILES = README NEWS COPYING INSTALL FlexLexer.h \
+ configure.in conf.in Makefile.in mkskel.sh flex.skl \
+ $(HEADERS) $(SOURCES) $(LIBSRCS) MISC \
+ flex.1 scan.c install.sh mkinstalldirs configure
+
+DIST_NAME = flex
+
+# flex options to use when generating scan.c from scan.l
+COMPRESSION =
+PERF_REPORT = -p
+# which "flex" to use to generate scan.c from scan.l
+FLEX_EXEC = mcr $(CURDIR)$(FLEX)
+FLEX_FLAGS = -t $(PERF_REPORT) #$(COMPRESSION)
+
+MARKER = make.bootstrap
+
+##### targets start here #####
+
+all : $(FLEX) flex.doc
+ @ $(NOOP)
+
+install : $(FLEX) flex.doc flex.skl $(FLEXLIB) FlexLexer.h
+ @ $(ECHO) "-- Installation must be done manually."
+ @ $(ECHO) " $+"
+
+.ifdef GCCINIT
+.FIRST
+ $(GCCINIT)
+
+.endif #GCCINIT
+
+flex : $(FLEX)
+ @ $(NOOP)
+
+$(FLEX) : $(MARKER) $(OBJECTS) $(FLEXLIB) $(LIBOPT) $(ID_OPT)
+ $(LINK)/Exe=$(FLEX) $(LDFLAGS)\
+ $(OBJECTS),$(FLEXLIB)/Lib,$(LIBOPT)/Opt,$(ID_OPT)/Opt
+
+$(MARKER) : initscan.c
+ @- if f$search("scan.c").nes."" then $(REMOVE) scan.c;*
+ $(COPY) initscan.c scan.c
+ @ $(TOUCH) $(MARKER)
+
+parse.c : parse.y
+ @- if f$search("y_tab.%").nes."" then $(REMOVE) y_tab.%;*
+.ifdef no_parser
+ $(COPY) $(MISCDIR)parse.% $(CURDIR)y_tab.*
+.else
+ $(YACCINIT)
+ $(YACC) $(YACCFLAGS) parse.y
+.endif
+ $(MUNG) y_tab.c "#module","#line" /Output=parse.c
+ @- $(REMOVE) y_tab.c;*
+ $(MOVE) y_tab.h parse.h
+
+parse.h : parse.c
+ @ $(TOUCH) parse.h
+
+scan.c : scan.l
+ $(FLEX_EXEC) $(FLEX_FLAGS) $(COMPRESSION) scan.l > scan.c
+
+scan.obj : scan.c parse.h flexdef.h config.h
+yylex.obj : yylex.c parse.h flexdef.h config.h
+
+skel.c : flex.skl $(VMSDIR)mkskel.tpu
+ $(TPU) /Command=$(VMSDIR)mkskel.tpu flex.skl /Output=skel.c
+
+main.obj : main.c flexdef.h config.h version.h
+ccl.obj : ccl.c flexdef.h config.h
+dfa.obj : dfa.c flexdef.h config.h
+ecs.obj : ecs.c flexdef.h config.h
+gen.obj : gen.c flexdef.h config.h
+misc.obj : misc.c flexdef.h config.h
+nfa.obj : nfa.c flexdef.h config.h
+parse.obj : parse.c flexdef.h config.h
+skel.obj : skel.c flexdef.h config.h
+sym.obj : sym.c flexdef.h config.h
+tblcmp.obj : tblcmp.c flexdef.h config.h
+vms-code.obj : vms-code.c flexdef.h config.h
+
+[]alloca.obj : alloca.c
+ $(CC)$(CFLAGS)/Define=("STACK_DIRECTION=-1","xmalloc=yy_flex_xmalloc") alloca.c
+
+alloca.c : $(MISCDIR)alloca.c
+ $(COPY) $(MISCDIR)alloca.c alloca.c
+
+config.h : $(VMSDIR)vms-conf.h
+ $(COPY) $(VMSDIR)vms-conf.h config.h
+
+vms-code.c : $(VMSDIR)vms-code.c
+ $(COPY) $(VMSDIR)vms-code.c vms-code.c
+
+test : check
+ @ $(NOOP)
+check : $(FLEX)
+ @ $(ECHO) ""
+ @ $(ECHO) " Checking with COMPRESSION="$(COMPRESSION)""
+ $(FLEX_EXEC) $(FLEX_FLAGS) $(COMPRESSION) scan.l > scan.chk
+ diff_/Output=_NL:/Maximum_Diff=1 scan.c scan.chk
+
+bigcheck :
+ @- if f$search("scan.c").nes."" then $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-C""") check
+ @- $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-Ce""") check
+ @- $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-Cm""") check
+ @- $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-f""") check
+ @- $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-Cfea""") check
+ @- $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-CFer""") check
+ @- $(REMOVE) scan.c;*
+ $(MAKE)$(MAKEFLAGS) /Macro=($(C_CHOICE),"COMPRESSION=""-l""","PERF_REPORT=") check
+ @- $(REMOVE) scan.c;*,scan.chk;*
+ $(MAKE)$(MAKEFLAGS) $(FLEX)
+ @- $(PURGE) scan.obj
+ @ $(ECHO) "All checks successful"
+
+$(FLEXLIB) : $(LIBOBJS)
+ library/Obj $(FLEXLIB)/Create $(LIBOBJS)/Insert
+ @ if f$search("$(FLEXLIB);-1").nes."" then $(PURGE) $(FLEXLIB)
+
+# We call it .doc instead of .man, to lessen culture shock. :-}
+# If MISC/flex.man is out of date relative to flex.1, there's
+# not much we can do about it with the tools readily available.
+flex.doc : flex.1
+ @ if f$search("$(MISCDIR)flex.man").eqs."" then \
+ $(COPY) flex.1 $(MISCDIR)flex.man
+ $(COPY) $(MISCDIR)flex.man flex.doc
+
+#
+# This is completely VMS-specific...
+#
+
+# Linker options file specifying run-time library(s) to link against;
+# choice depends on which C compiler is used, and might be empty.
+$(LIBOPT) : $(MAKEFILE)
+ @ open/Write optfile $(LIBOPT)
+ @ write optfile "$(LIBS)"
+ @ close optfile
+
+# Linker options file putting the version number where the ANALYZE/IMAGE
+# command will be able to find and report it; assumes that the first line
+# of version.h has the version number enclosed within the first and second
+# double quotes on it [as in ``#define FLEX_VERSION "2.5.0"''].
+$(ID_OPT) : version.h
+ @ version = "# flex ""2.5""" !default, overridden by version.h
+ @- open/Read hfile version.h
+ @- read hfile version
+ @- close/noLog hfile
+ @ version = f$element(1,"""",version)
+ @ open/Write optfile $(ID_OPT)
+ @ write optfile "identification=""flex ''version'"""
+ @ close optfile
+
+
+#
+# This is the only stuff moderately useful from the remainder
+# of Makefile.in...
+#
+
+mostlyclean :
+ @- if f$search("scan.chk").nes."" then $(REMOVE) scan.chk;*
+ @- if f$search("*.obj;-1").nes."" then $(PURGE) *.obj
+ @- if f$search("*.exe;-1").nes."" then $(PURGE) *.exe
+ @- if f$search("*.opt;-1").nes."" then $(PURGE) *.opt
+
+clean : mostlyclean
+ @- if f$search("*.obj").nes."" then $(REMOVE) *.obj;*
+ @- if f$search("parse.h").nes."" then $(REMOVE) parse.h;*
+ @- if f$search("parse.c").nes."" then $(REMOVE) parse.c;*
+ @- if f$search("alloca.c").nes."" .and.-
+ f$search("$(MISCDIR)alloca.c").nes."" then $(REMOVE) alloca.c;*
+ @- if f$search("$(LIBOPT)").nes."" then $(REMOVE) $(LIBOPT);*
+ @- if f$search("$(ID_OPT)").nes."" then $(REMOVE) $(ID_OPT);*
+
+distclean : clean
+ @- if f$search("$(MARKER)").nes."" then $(REMOVE) $(MARKER);*
+ @- if f$search("$(FLEX)").nes."" then $(REMOVE) $(FLEX);*
+ @- if f$search("$(FLEXLIB)").nes."" then $(REMOVE) $(FLEXLIB);*
+ @- if f$search("flex.doc").nes."" then $(REMOVE) flex.doc;*
+ @- if f$search("scan.c").nes."" then $(REMOVE) scan.c;*
+ @- if f$search("vms-code.c").nes."" .and.-
+ f$search("$(VMSDIR)vms-code.c").nes."" then $(REMOVE) vms-code.c;*
+ @- if f$search("config.h").nes."" .and.-
+ f$search("$(VMSDIR)vms-conf.h").nes."" then $(REMOVE) config.h;*
+# @- if f$search("descrip.mms").nes."" .and.-
+# f$search("$(VMSDIR)descrip.mms").nes."" then $(REMOVE) descrip.mms;*
+
+realclean : distclean
+ @- if f$search("skel.c").nes."" then $(REMOVE) skel.c;*
+