Home | History | Annotate | Download | only in VMS
      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