84 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Brief instructions for building flex 2.5.x for VMS:
 | 
						|
 | 
						|
   0) if you have either MMS (from Digital) or MMK (freeware) for use
 | 
						|
as a `make' utility, follow the directions in steps #1 through #5 below.
 | 
						|
If not, execute
 | 
						|
      @BUILD.COM xxxC
 | 
						|
where "xxxC" is either "VAXC" or "DECC" or "GNUC", and then skip to
 | 
						|
step #5.
 | 
						|
 | 
						|
   1) set default to the source directory (not the [.MISC.VMS] subdirectory
 | 
						|
where this file is located).
 | 
						|
 | 
						|
   2) COPY [.MISC.VMS]DESCRIP.MMS []*.*
 | 
						|
(Recursive invocations of `make' for the `bigcheck' test assume that the
 | 
						|
makefile will be found as descrip.mms in the current directory.)
 | 
						|
 | 
						|
To build with VAX C for VAX/VMS:
 | 
						|
   3) MMS /MACRO=("VAXC=1") FLEX.EXE
 | 
						|
(The /macro qualifier is optional in this case.)
 | 
						|
 | 
						|
To build with GNU C for VAX/VMS:
 | 
						|
 2.5) possibly edit descrip.mms to uncomment `SET COMMAND' for GCCINIT,
 | 
						|
      depending on local site configuration
 | 
						|
   3) MMS /MACRO=("GNUC=1") FLEX.EXE
 | 
						|
 | 
						|
To build with DEC C for either VAX/VMS or Alpha/VMS:
 | 
						|
   3) MMS /MACRO=("DECC=1") FLEX.EXE
 | 
						|
(Expect one or two informational messages from the compiler about
 | 
						|
implicitly declared functions.)
 | 
						|
 | 
						|
Minimal testing of the resulting program:
 | 
						|
   4) MMS CHECK
 | 
						|
(If `diff' reports no warnings, the test has succeeded.)
 | 
						|
 | 
						|
More thorough testing:
 | 
						|
 4.5) MMS /MACRO=("xxxC=1") BIGCHECK    ! "xxxC=1" as in step #3 above
 | 
						|
(If using an older version of MMK rather than MMS, this might fail when
 | 
						|
`make' is invoked recursively due to excessive BYTLM usage by MMK.)
 | 
						|
 | 
						|
Installation (the VMS makefile does not support an `install' target;
 | 
						|
you'll need to do this part manually):
 | 
						|
   5) copy flex.exe, flex.doc, flex.skl, flexlib.olb, and FlexLexer.h to
 | 
						|
location(s) appropriate for your site.  To use flex, define a "foreign"
 | 
						|
command by making a DCL symbol whose value begins with a dollar sign
 | 
						|
immediately followed by the filename for flex.exe, as in
 | 
						|
      $ flex :== $local_tools:flex.exe
 | 
						|
where `local_tools:' is the logical name pointing to flex.exe's location.
 | 
						|
This symbol will ordinarily be a candidate for your login.com.  When
 | 
						|
invoking flex, upper- or mixed-case command line options must be enclosed
 | 
						|
in quotes.  For example,
 | 
						|
      $ flex "-Pxyz" "-L" -t mylexer.l > mylexer.c
 | 
						|
(use prefix "xyz" instead of "yy", suppress `#line' compiler directives
 | 
						|
in the output, write the output to `stdout', process file mylexer.l,
 | 
						|
and capture `stdout' in file mylexer.c).  As illustrated here, this VMS
 | 
						|
version of flex supports emulation of command line I/O redirection used
 | 
						|
by Unix shells.
 | 
						|
 | 
						|
 flex.exe    -- the executable image for the flex program;
 | 
						|
 flex.doc    -- documentation, the "man page" describing flex (flex.1
 | 
						|
                processed with `nroff -man' followed by `col -b');
 | 
						|
 flex.skl    -- a text file containing flex's default skeleton;
 | 
						|
                with this version of flex, it is for reference only;
 | 
						|
                flex.exe does not need to know where to find it;
 | 
						|
 flexlib.olb -- an object library containing some support routines;
 | 
						|
                you might need to link your generated lexer against
 | 
						|
                it, depending on how your program is designed;
 | 
						|
                flex.exe does not access it; it corresponds to
 | 
						|
                `libfl.a' under Unix;
 | 
						|
 FlexLexer.h -- header file used for C++ class-based lexers; not
 | 
						|
                needed for ordinary C lexers.
 | 
						|
 | 
						|
Notes:
 | 
						|
      This VMS port of flex supports only the original Unix command line
 | 
						|
interface, not the native DCL interface which was available for flex 2.3.
 | 
						|
 | 
						|
 build.com   -- DCL command procedure as alternative to descrip.mms;
 | 
						|
 descrip.mms -- 2.5.x makefile for use with MMS or MMK (see step #1);
 | 
						|
 mkskel.tpu  -- TPU program used to make skel.c from flex.skl for full
 | 
						|
                build from scratch; performs same function as mkskel.sh;
 | 
						|
 vms-conf.h  -- pre-configured `conf.in', copied to [-.-]config.h;
 | 
						|
 vms-code.c  -- VMS-specific support code, copied to [-.-]vms-code.c;
 | 
						|
 README.VMS  -- this file
 | 
						|
 |