summaryrefslogtreecommitdiffstats
path: root/Tools/android/flex-2.5.4a/MISC/VMS/build.com
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/android/flex-2.5.4a/MISC/VMS/build.com')
-rw-r--r--Tools/android/flex-2.5.4a/MISC/VMS/build.com155
1 files changed, 155 insertions, 0 deletions
diff --git a/Tools/android/flex-2.5.4a/MISC/VMS/build.com b/Tools/android/flex-2.5.4a/MISC/VMS/build.com
new file mode 100644
index 0000000..dbde55a
--- /dev/null
+++ b/Tools/android/flex-2.5.4a/MISC/VMS/build.com
@@ -0,0 +1,155 @@
+$! VMS build procedure for flex 2.5.x;
+$ v = 'f$verify(0)'
+$!
+$! usage:
+$! $ @[.MISC.VMS]BUILD.COM compiler parser [test]
+$! where `compiler' is either "GNUC" or "DECC" or "VAXC" or empty
+$! and `parser' is either "BISON" or "BYACC" or "YACC" or empty
+$! and `[test]' is either "CHECK-ONLY" or "NO-CHECK" or empty
+$! empty compiler defaults to VAX C (even under Alpha/VMS);
+$! special "LINK" compiler value does link without compilation;
+$! empty parser defaults to using supplied parse code in [.MISC];
+$! optional test is performed by default.
+$!
+$
+$! we start from [.MISC.VMS], then move to the main source directory
+$ where = f$parse("_._;",f$environ("PROCEDURE")) - "_._;"
+$ set default 'where'
+$ brkt = f$extract(f$length(where)-1,1,where)
+$ if f$locate(".MISC.VMS"+brkt,where).lt.f$length(where) then -
+ set default 'f$string(f$extract(0,1,f$dir()) + "-.-" + brkt)'
+$
+$ p1 := 'p1'
+$ p2 := 'p2'
+$ p3 := 'p3'
+$ if p1.eqs."LINK" then goto link
+$ if p3.eqs."CHECK-ONLY" then goto check
+$ p2 = p2 - "_PARSER"
+$!
+$ CDEFS = "/Define=(""VMS"")" ! =(""VMS"",""DEFAULT_CSIZE=256"")
+$!
+$ if p1.eqs."GNUC"
+$ then CC = "gcc"
+$ CFLAGS = "/noList/Opt=2/Debug/noVerbose"
+$ LIBS = "gnu_cc:[000000]gcclib.olb/Library, sys$library:vaxcrtl.olb/Library"
+$ else CC = "cc"
+$ if p1.eqs."DECC"
+$ then CFLAGS = "/noList/Prefix=All"
+$ LIBS = ""
+$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = CC + "/DECC"
+$ else CFLAGS = "/noList/Optimize=noInline"
+$ LIBS = "sys$share:vaxcrtl.exe/Shareable"
+$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = CC + "/VAXC"
+$ if p1.nes."" .and. p1.nes."VAXC" then exit %x002C
+$ endif
+$ endif
+$!
+$ no_parser = 0
+$ if p2.eqs."BISON"
+$ then YACC = "bison"
+$ YACCFLAGS = "/Defines/Fixed_Outfiles"
+$ ALLOCA = ",[]alloca.obj"
+$ else
+$ YACCFLAGS = "-d"
+$ ALLOCA = ""
+$ if p2.eqs."BYACC" .or. p2.eqs."YACC"
+$ then YACC = f$edit(p2,"LOWERCASE")
+$ else YACC = "! yacc"
+$ if p2.nes."" .and. p2.nes."NO" .and. p2.nes."NONE" then exit %x002C
+$ no_parser = 1
+$ endif
+$ endif
+$!
+$ ECHO = "write sys$output"
+$ COPY = "copy_"
+$ MOVE = "rename_/New_Vers"
+$ MUNG = "search_/Exact/Match=NOR"
+$ PURGE = "purge_/noConfirm/noLog"
+$ REMOVE = "delete_/noConfirm/noLog"
+$ TPU = "edit_/TPU/noJournal/noDisplay/noSection"
+$!
+$ if v then set verify
+$!
+$ 'COPY' [.misc.vms]vms-conf.h config.h
+$ 'COPY' [.misc.vms]vms-code.c vms-code.c
+$ 'COPY' [.misc]flex.man flex.doc
+$ if ALLOCA.nes."" then 'COPY' [.MISC]alloca.c alloca.c
+$ 'COPY' initscan.c scan.c !make.bootstrap
+$!
+$ if f$search("skel.c").nes."" then -
+ if f$cvtime(f$file_attr("skel.c","RDT")).gts. -
+ f$cvtime(f$file_attr("flex.skl","RDT")) then goto skip_mkskel
+$ 'TPU' /Command=[.misc.vms]mkskel.tpu flex.skl /Output=skel.c
+$skip_mkskel:
+$!
+$ if f$search("parse.c").nes."" .and. f$search("parse.h").nes."" then -
+ if f$cvtime(f$file_attr("parse.c","RDT")).gts. -
+ f$cvtime(f$file_attr("parse.y","RDT")) then goto skip_yacc
+$ if f$search("y_tab.%").nes."" then 'REMOVE' y_tab.%;*
+$ if no_parser
+$ then 'COPY' [.misc]parse.% sys$disk:[]y_tab.*
+$ else 'YACC' 'YACCFLAGS' parse.y
+$ endif
+$ 'MUNG' y_tab.c "#module","#line" /Output=parse.c
+$ 'REMOVE' y_tab.c;*
+$ 'MOVE' y_tab.h parse.h
+$skip_yacc:
+$!
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] ccl.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] dfa.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] ecs.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] gen.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] main.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] misc.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] nfa.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] parse.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] scan.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] skel.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] sym.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] tblcmp.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] yylex.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] vms-code.c
+$ if ALLOCA.nes."" then - !bison
+ 'CC' 'CFLAGS' /Define=("STACK_DIRECTION=-1","xmalloc=yy_flex_xmalloc") alloca.c
+$!
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] libmain.c
+$ 'CC' 'CFLAGS' 'CDEFS' /Include=[] libyywrap.c
+$ library/Obj flexlib.olb/Create libmain.obj,libyywrap.obj/Insert
+$ if f$search("flexlib.olb;-1").nes."" then 'PURGE' flexlib.olb
+$!
+$ open/Write optfile sys$disk:[]crtl.opt
+$ write optfile LIBS
+$ close optfile
+$ if f$search("crtl.opt;-1").nes."" then 'PURGE' crtl.opt
+$!
+$ version = "# flex ""2.5""" !default, overridden by version.h
+$ open/Read/Error=v_h_2 hfile version.h
+$ read/End=v_h_1 hfile version
+$v_h_1: close/noLog hfile
+$v_h_2: version = f$element(1,"""",version)
+$ open/Write optfile sys$disk:[]ident.opt
+$ write optfile "identification=""flex ''version'"""
+$ close optfile
+$ if f$search("ident.opt;-1").nes."" then 'PURGE' ident.opt
+$!
+$link:
+$ link/noMap/Exe=flex.exe 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,-
+ vms-code.obj 'ALLOCA' ,flexlib.olb/Lib,-
+ sys$disk:[]crtl.opt/Opt,sys$disk:[]ident.opt/Opt
+$!
+$ if p3.eqs."NO-CHECK" .or. p3.eqs."NOCHECK" then goto done
+$
+$check:
+$ 'ECHO' ""
+$ 'ECHO' " Checking with COMPRESSION="""""
+$ mcr sys$disk:[]flex.exe -t -p scan.l > scan.chk
+$ diff_/Output=_NL:/Maximum_Diff=1 scan.c scan.chk
+$ if $status
+$ then 'ECHO' " Test passed."
+$ 'REMOVE' scan.chk;*
+$ else 'ECHO' "? Test failed!"
+$ endif
+$
+$done:
+$ exit