LC(VI)                       5/15/74                       LC(VI)


     lc - LIL compiler


     lc [ -c ] [ -p ] [ -P ] file ...


     Lc is the UNIX LIL compiler.   It  accepts  three  types  of


     Arguments whose names end with `.l'  are  taken  to  be  LIL

     source  programs; they are compiled, and each object program

     is left on the file whose name is that of  the  source  with

     `.o'  subsituted  for  `.l'.   The  `.o'  file  is  normally

     deleted, however, if a single LIL program  is  compiled  and

     loaded all at one go.

     The following flags are interpreted by lc.

     -c    Suppress the loading phase  of  the  compilation,  and

          force  an  object  file to be produced even if only one

          program is compiled.

     -p    if loading takes place, replace the  standard  startup

          routine  by  one  which automatically calls the monitor

          subroutine (III) at the start and arranges to write out

          a  mon.out  file  at normal termination of execution of

          the object program.  An execution profile can  then  be

          generated by use of prof (I).

     -P    Run only the string  preprocessor  on  the  named  LIL

          programs,  and  leave the output on corresponding files

          suffixed `.i'.

     Other arguments are taken to be object programs  or  perhaps

     libraries  of  routines.   These programs, together with the

     results of any compilations specified, are  loaded  (in  the

     order  given) to produce an executable program with the name



     file.l  input file

     file.o  object file

     a.out   loaded output

     /tmp/ctm?       temporary

     /lib/l[01]      compiler

     /lib/crt0.o     runtime startoff

     /lib/mcrt0.o    runtime startoff for monitoring.

     /lib/libc.a     builtin functions, etc.


     ``Programming in LIL: a tutorial,'' LIL Reference Manual,

     monitor (III), prof (I), cdb (I), ld (I).


     The diagnostics produced by LIL itself are  intended  to  be



     Creates temporary symbols of the form `..octal', which might

     conflict with user defined symbols.