123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- .TH CEM 1L 86/11/12
- .SH NAME
- cem \- ACK C compiler
- .SH SYNOPSIS
- .B cem
- [ option ] ... file ...
- .SH DESCRIPTION
- .I Cem
- is a
- .I cc (1)-like
- C compiler that uses the C front-end compiler
- .I cemcom (1)
- of the Amsterdam Compiler Kit.
- .I Cem
- interprets its arguments not starting with a '\-' as
- source files, to be compiled by the various parts of the compilation process,
- which are listed below.
- File arguments whose names end with \fB.\fP\fIcharacter\fP are interpreted as
- follows:
- .IP .[ao]
- object file.
- .IP .[ci]
- C source code
- .IP .e
- EM assembler source file.
- .IP .k
- compact EM file, not yet optimized by the EM peephole optimizer.
- .IP .m
- compact EM file, already optimized by the peephole optimizer.
- .IP .s
- assembler file.
- .LP
- The actions to be taken by
- .I cem
- are directed by the type of file argument and the various options that are
- presented to it.
- .PP
- The following set of options, which is a mixture of options interpreted by
- .I cc (1)
- and
- .I ack (?)
- are interpreted by
- .I cem .
- (The options not specified here are passed to the loader.)
- .IP \fB\-B\fP\fIname\fP
- Use
- .I name
- as front-end compiler instead of the default
- .I cemcom (1).
- .br
- Same as "\fB\-Rcem=\fP\fIname\fP".
- .IP \fB\-C\fP
- Run C preprocessor
- .I /lib/cpp
- only and prevent it from eliding comments.
- .IP \fB\-D\fP\fIname\fP\fB=\fP\fIdef\fP
- Define the
- .I name
- to the preprocessor, as if by "#define".
- .IP \fB\-D\fP\fIname\fP
- .br
- Same as "\fB\-D\fP\fIname\fP\fB=1\fP".
- .IP \fB\-E\fP
- Run only the macro preprocessor on the named files and send the
- result to standard output.
- .IP \fB\-I\fP\fIdir\fP
- \&"#include" files whose names do not begin with '/' are always
- sought first in the directory of the \fIfile\fP argument, then in directories
- in \fB\-I\fP options, then in directories on a standard list (which in fact
- consists of "/usr/include").
- .IP \fB\-L\fP\fIdir\fP
- Use \fIdir\fP as library-containing directory instead of the default.
- .IP \fB\-N\fP\fIc\fP
- Only effective if ACK pipeline is used.
- This option causes some default actions and options to be suppressed, according
- to
- .I c :
- .RS
- .IP \fBc\fP
- do not convert from EM a.out to local a.out format (i.e., skip the
- .B cv
- pass.)
- .IP \fBl\fP
- do not pass the default loader flags to the
- .B ld
- pass.
- .RE
- .IP \fB\-P\fP
- Same as \fB\-E\fP, but sending the result of input file \fIfile\fP\fB.[ceis]\fP
- to \fIfile\fP\fB.i\fP.
- .IP \fB\-R\fP
- Passed to \fIcemcom\fP(1) in order to parse the named C programs according
- to the C language as described in [K&R] (also called \fIRestricted\fP C).
- .IP \fB\-R\fP\fIprog\fP\fB=\fP\fIname\fP
- .br
- Use \fIname\fP as program for phase \fIprog\fP of the compilation instead of
- the default.
- \&\fIProg\fP is one of the following names:
- .RS
- .IP \fBcpp\fP
- macro preprocessor
- .IP \fBcem\fP
- front\-end compiler
- .IP \fBopt\fP
- EM peephole optimizer
- .IP \fBdecode\fP
- EM compact to EM assembler translator
- .IP \fBencode\fP
- EM assembler to EM compact translator
- .IP \fBbe\fP
- EM compact code to target\-machine assembly code compiler
- .IP \fBcg\fP
- same as \fBbe\fP
- .IP \fBas\fP
- assembler
- .IP \fBld\fP
- linker/loader
- .IP \fBcv\fP
- a.out format converting program (only if ACK pipeline is used)
- .RE
- .IP \fB\-R\fP\fIprog\fP\fB\-\fP\fIoption\fP
- .br
- Pass \fB\-\fP\fIoption\fP to the compilation phase indicated by \fIprog\fP.
- .IP \fB\-S\fP
- Same as \fB\-c.s\fP.
- .IP \fB\-U\fP\fIname\fP
- .br
- Remove any initial definition of \fIname\fP.
- .IP \fB\-V\fP\fIcm\fP.\fIn\fP,\ \fB\-V\fIcm\fP.\fIncm\fP.\fIn\fP\ ...
- .br
- Set the size and alignment requirements of the C constructs of the named
- C input files.
- The letter \fIc\fP indicates the simple type, which is one of
- \fBs\fP(short), \fBi\fP(int), \fBl\fP(long), \fBf\fP(float), \fBd\fP(double) or
- \fBp\fP(pointer).
- The \fIm\fP parameter can be used to specify the length of the type (in bytes)
- and the \fIn\fP parameter for the alignment of that type.
- Absence of \fIm\fP or \fIn\fP causes the default value to be retained.
- To specify that the bitfields should be right adjusted instead of the
- default left adjustment, specify \fBr\fP as \fIc\fP parameter
- without parameters.
- .br
- This option is passed directly to \fIcemcom\fP(1).
- .IP \fB\-c\fP
- Same as \fB\-c.o\fP.
- .IP \fB\-c.e\fP
- Produce human-readable EM assembly code on \fIfile\fP\fB.e\fP for the
- named files \fIfile\fP\fB.[cikm]\fP
- .IP \fB\-c.k\fP
- Compile C source \fIfile\fP\fB.[ci]\fP or
- encode human-readable EM assembly code from \fIfile\fP\fB.e\fP
- into non-optimized compact EM code and write the result on \fIfile\fP\fB.k\fP
- .IP \fB\-c.m\fP
- Compile C source \fIfile\fP\fB.[ci]\fP,
- translate non-optimized EM code from \fIfile\fP\fB.k\fP or
- encode EM assembly code from \fIfile\fP\fB.e\fP
- into optimized compact EM code and write the result on \fIfile\fP\fB.m\fP
- .IP \fB\-c.o\fP
- Suppress the loading phase of the compilation, and force an object file to
- be produced even if only one program is compiled
- .IP \fB\-c.s\fP
- Compile the named \fIfile\fP\fB.[ceikm]\fP input files, and leave the
- assembly language output on corresponding files suffixed ".s".
- .IP \fB\-k\fP
- Same as \fB\-c.k\fP.
- .IP \fB\-l\fP\fIname\fP
- .br
- Append the library \fBlib\fP\fIname\fP\fB.a\fP to the list of files that
- should be loaded and linked into the final output file.
- The library is searched for in the library directory.
- .IP \fB\-m\fP
- Same as \fB\-c.m\fP.
- .IP \fB\-o\fP\ \fIoutput\fP
- .br
- Name the final output file \fIoutput\fP.
- If this option is used, the default "a.out" will be left undisturbed.
- .IP \fB\-p\fP
- Produce EM profiling code (\fBfil\fP and \fBlin\fP instructions to
- enable an interpreter to keep track of the current location in the
- source code)
- .IP \fB\-t\fP
- Keep the intermediate files, produced during the various phases of the
- compilation.
- The produced files are named \fIfile\fP\fB.\fP\fIcharacter\fP where
- \&\fIcharacter\fP indicates the type of the file as listed before.
- .IP \fB\-v\fP
- Verbose.
- Print the commands before they are executed.
- .IP \fB\-vn\fP
- Do not really execute (for debugging purposes only).
- .IP \fB\-vd\fP
- Print some additional information (for debugging purposes only).
- .IP \fB\-\-\fP\fIanything\fP
- .br
- Equivalent to \fB\-Rcem\-\-\fP\fIanything\fP.
- The options
- .B \-\-C ,
- .B \-\-E
- and
- .B \-\-P
- all have the same effect as respectively
- .B \-C ,
- .B \-E
- and
- .B \-P
- except for the fact that the macro preprocessor is taken to be the
- built\-in preprocessor of the \fBcem\fP phase.
- Most "\-\-" options are used by
- .I cemcom (1)
- to set some internal debug switches.
- .LP
- .SH SEE ALSO
- cemcom(1), cc(1), ack(?), as(1), ld(1)
- .br
- .IP [K&R]
- B.W. Kernighan and D.M. Ritchie, \fIThe C Programming Language\fP,
- Prentice-Hall, 1978.
- .SH DIAGNOSTICS
- .I Cem
- reports any failure of its components.
- .SH BUGS
- .IP \(bu
- All intermediate files are placed in the current working directory which
- causes files with the same name as the intermediate files to be overwritten.
- .IP \(bu
- .B Cem
- only accepts a limited number of arguments to be passed to the components.
- (e.g., 256).
- .IP \(bu
- Please report suggestions and other bugs to erikb@vu44.uucp
|