230 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			230 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.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
 |