Pristine Ack-5.5
[Ack-5.5.git] / fcc / driver / fcc.1
1 .TH FCC 1
2 .SH NAME
3 fcc \- fast CC-compatible C compiler
4 .SH SYNOPSIS
5 .B fcc
6 [
7 .B \-c
8 ]
9 [
10 .B \-v
11 ]
12 [
13 .B \-vn
14 ]
15 [ \fB\-D\fIname\fR ]
16 [ \fB\-D\fIname\fB=\fIdef\fR ]
17 [
18 .BI \-I pathname
19 ]
20 [
21 .B \-w
22 ]
23 [
24 .B \-o 
25 .I outfile
26 ]
27 [
28 .B \-R
29 ]
30 [
31 .BI \-U name
32 ]
33 [
34 .BI -M compiler
35 ]
36 .I sourcefile ...
37 .SH DESCRIPTION
38 .LP
39 .I Fcc
40 is a fast
41 .B C
42 compiler. It translates 
43 .B C
44 programs
45 into cc(1)-compatible relocatable object modules, and does so in one pass.
46 Then, if the \fB\-c\fP flag is not given,
47 .I fcc
48 offers the object modules to a link-editor,
49 to create an executable binary.
50 .LP
51 .I Fcc
52 accepts several types of filename arguments.  Files with 
53 names ending in
54 .B .c
55 are taken to be 
56 .B C
57 source programs. 
58 They are compiled, and the resulting object module is placed in the current
59 directory.
60 The object module is named after its source file, the suffix
61 .B .o
62 replacing 
63 .BR .c
64 in the name of the object.
65 .LP
66 Other arguments refer to loader options,
67 object modules, or object libraries.
68 Unless the
69 .B \-c
70 flag is given, these modules and libraries, together with the results of any
71 specified compilations, are passed (in the order given) to the
72 link-editor to produce
73 an output file named
74 .IR a.out .
75 You can specify a name for the executable by using the
76 .B \-o 
77 option.
78 .SH OPTIONS
79 .LP
80 The \fB\-l\fIlib\fR, \fB\-n\fP, \fB\-N\fP,
81 \fB\-r\fP, \fB\-s\fP, \fB\-S\fP, and \fB\-u\fP options are
82 passed to the link-editor program.
83 The \fB\-u\fP option takes an extra argument.
84 .IP \fB\-c\fP
85 .br
86 Suppress the loading phase of the compilation, and force an object module to
87 be produced, even if only one program is compiled.
88 A single object module can be named explicitly using the
89 .B \-o
90 option.
91 .IP \fB\-D\fIname\fR\fB=\fIdef\fR
92 Define a symbol
93 .I name
94 to the 
95 preprocessor, as if by "#define".
96 .IP \fB\-D\fIname\fR
97 .br
98 same as \fB\-D\fIname\fB=1\fR.
99 .IP \fB\-I\fIpathname\fR
100 .br
101 Add
102 .I pathname
103 to the list of directories in which to search for
104 .B #include
105 files with filenames not beginning with slash.
106 The compiler first searches for
107 .B #include
108 files in the directory containing
109 .I sourcefile,
110 then in directories in
111 .B \-I
112 options, and finally, in
113 .I /usr/include.
114 .IP "\fB\-o \fIoutput\fR"
115 Name the final output file
116 .I output.
117 .IP \fB\-U\fIname\fR
118 .br
119 Remove any initial definition of
120 .I name.
121 .IP \fB\-v\fP
122 .br
123 Verbose. Print the commands as they are executed.
124 .IP \fB\-vn\fP
125 .br
126 Verbose, no execute. Only print the commands, do not execute them.
127 .IP \fB\-w\fP
128 suppress warning messages.
129 .IP \fB\-R\fP
130 .br
131 test for more compatibility with Kernighan & Ritchie C [1].
132 .IP \fB\-M\fIcompiler\fR
133 .br
134 use \fIcompiler\fR as C-2 compiler instead of the default.
135 .LP
136 Object modules produced by cc(1) and
137 .I fcc
138 can be freely mixed, as long as the link-editor is called through
139 .I fcc.
140 .SH "SEE ALSO"
141 .IP [1]
142 B.W. Kernighan, D. Ritchie, "\fIThe C programming Language\fP", Prentice-Hall Inc., 1978
143 .IP [2]
144 E.H. Baalbergen, "\fIThe ACK CEM compiler\fP".
145 .IP [3]
146 cc(1) unix manual page.
147 .SH DIAGNOSTICS
148 Diagnostics are intended to be self-explanatory.