1 Brief instructions for building flex 2.5.x for VMS: 2 3 0) if you have either MMS (from Digital) or MMK (freeware) for use 4 as a `make' utility, follow the directions in steps #1 through #5 below. 5 If not, execute 6 @BUILD.COM xxxC 7 where "xxxC" is either "VAXC" or "DECC" or "GNUC", and then skip to 8 step #5. 9 10 1) set default to the source directory (not the [.MISC.VMS] subdirectory 11 where this file is located). 12 13 2) COPY [.MISC.VMS]DESCRIP.MMS []*.* 14 (Recursive invocations of `make' for the `bigcheck' test assume that the 15 makefile will be found as descrip.mms in the current directory.) 16 17 To build with VAX C for VAX/VMS: 18 3) MMS /MACRO=("VAXC=1") FLEX.EXE 19 (The /macro qualifier is optional in this case.) 20 21 To build with GNU C for VAX/VMS: 22 2.5) possibly edit descrip.mms to uncomment `SET COMMAND' for GCCINIT, 23 depending on local site configuration 24 3) MMS /MACRO=("GNUC=1") FLEX.EXE 25 26 To build with DEC C for either VAX/VMS or Alpha/VMS: 27 3) MMS /MACRO=("DECC=1") FLEX.EXE 28 (Expect one or two informational messages from the compiler about 29 implicitly declared functions.) 30 31 Minimal testing of the resulting program: 32 4) MMS CHECK 33 (If `diff' reports no warnings, the test has succeeded.) 34 35 More thorough testing: 36 4.5) MMS /MACRO=("xxxC=1") BIGCHECK ! "xxxC=1" as in step #3 above 37 (If using an older version of MMK rather than MMS, this might fail when 38 `make' is invoked recursively due to excessive BYTLM usage by MMK.) 39 40 Installation (the VMS makefile does not support an `install' target; 41 you'll need to do this part manually): 42 5) copy flex.exe, flex.doc, flex.skl, flexlib.olb, and FlexLexer.h to 43 location(s) appropriate for your site. To use flex, define a "foreign" 44 command by making a DCL symbol whose value begins with a dollar sign 45 immediately followed by the filename for flex.exe, as in 46 $ flex :== $local_tools:flex.exe 47 where `local_tools:' is the logical name pointing to flex.exe's location. 48 This symbol will ordinarily be a candidate for your login.com. When 49 invoking flex, upper- or mixed-case command line options must be enclosed 50 in quotes. For example, 51 $ flex "-Pxyz" "-L" -t mylexer.l > mylexer.c 52 (use prefix "xyz" instead of "yy", suppress `#line' compiler directives 53 in the output, write the output to `stdout', process file mylexer.l, 54 and capture `stdout' in file mylexer.c). As illustrated here, this VMS 55 version of flex supports emulation of command line I/O redirection used 56 by Unix shells. 57 58 flex.exe -- the executable image for the flex program; 59 flex.doc -- documentation, the "man page" describing flex (flex.1 60 processed with `nroff -man' followed by `col -b'); 61 flex.skl -- a text file containing flex's default skeleton; 62 with this version of flex, it is for reference only; 63 flex.exe does not need to know where to find it; 64 flexlib.olb -- an object library containing some support routines; 65 you might need to link your generated lexer against 66 it, depending on how your program is designed; 67 flex.exe does not access it; it corresponds to 68 `libfl.a' under Unix; 69 FlexLexer.h -- header file used for C++ class-based lexers; not 70 needed for ordinary C lexers. 71 72 Notes: 73 This VMS port of flex supports only the original Unix command line 74 interface, not the native DCL interface which was available for flex 2.3. 75 76 build.com -- DCL command procedure as alternative to descrip.mms; 77 descrip.mms -- 2.5.x makefile for use with MMS or MMK (see step #1); 78 mkskel.tpu -- TPU program used to make skel.c from flex.skl for full 79 build from scratch; performs same function as mkskel.sh; 80 vms-conf.h -- pre-configured `conf.in', copied to [-.-]config.h; 81 vms-code.c -- VMS-specific support code, copied to [-.-]vms-code.c; 82 README.VMS -- this file 83 84