Blame


1 058b0118 2005-01-03 devnull .TH 9C 1
2 058b0118 2005-01-03 devnull .SH NAME
3 0ed5e9f8 2020-12-30 rsc 9c, 9l, 9ar \- C compiler, assembler, linker, archiver
4 058b0118 2005-01-03 devnull .SH SYNOPSIS
5 058b0118 2005-01-03 devnull .B 9c
6 c8b6342d 2005-01-13 devnull [
7 c8b6342d 2005-01-13 devnull .B -I
8 c8b6342d 2005-01-13 devnull .I path
9 c8b6342d 2005-01-13 devnull ]
10 c8b6342d 2005-01-13 devnull [
11 c8b6342d 2005-01-13 devnull .B -D
12 c8b6342d 2005-01-13 devnull .I name
13 c8b6342d 2005-01-13 devnull ]
14 058b0118 2005-01-03 devnull .I file
15 058b0118 2005-01-03 devnull \&...
16 058b0118 2005-01-03 devnull .PP
17 058b0118 2005-01-03 devnull .B 9l
18 058b0118 2005-01-03 devnull [
19 058b0118 2005-01-03 devnull .I -o
20 058b0118 2005-01-03 devnull .I target
21 058b0118 2005-01-03 devnull ]
22 058b0118 2005-01-03 devnull .I object
23 058b0118 2005-01-03 devnull \&...
24 058b0118 2005-01-03 devnull [
25 058b0118 2005-01-03 devnull .I library
26 058b0118 2005-01-03 devnull \&...
27 058b0118 2005-01-03 devnull ]
28 058b0118 2005-01-03 devnull [
29 058b0118 2005-01-03 devnull .BI -L path
30 058b0118 2005-01-03 devnull \&...
31 058b0118 2005-01-03 devnull ]
32 058b0118 2005-01-03 devnull [
33 c8b6342d 2005-01-13 devnull .BI -l name
34 058b0118 2005-01-03 devnull \&...
35 058b0118 2005-01-03 devnull ]
36 058b0118 2005-01-03 devnull .PP
37 058b0118 2005-01-03 devnull .B 9ar
38 058b0118 2005-01-03 devnull .I key
39 058b0118 2005-01-03 devnull [
40 058b0118 2005-01-03 devnull .I posname
41 058b0118 2005-01-03 devnull ]
42 058b0118 2005-01-03 devnull .I afile
43 058b0118 2005-01-03 devnull [
44 058b0118 2005-01-03 devnull .I file
45 058b0118 2005-01-03 devnull \&...
46 058b0118 2005-01-03 devnull ]
47 058b0118 2005-01-03 devnull .SH DESCRIPTION
48 058b0118 2005-01-03 devnull These programs are shell scripts that invoke the appropriate standard tools
49 058b0118 2005-01-03 devnull for the current operating system and architecture.
50 058b0118 2005-01-03 devnull One can use them to write portable recipes for mkfiles.
51 058b0118 2005-01-03 devnull .PP
52 058b0118 2005-01-03 devnull .I 9c
53 058b0118 2005-01-03 devnull compiles the named C
54 058b0118 2005-01-03 devnull .I files
55 058b0118 2005-01-03 devnull into object files for the current system.
56 c8b6342d 2005-01-13 devnull The system C compiler is invoked with warnings enabled.
57 c8b6342d 2005-01-13 devnull The
58 c8b6342d 2005-01-13 devnull .B -I
59 c8b6342d 2005-01-13 devnull option adds
60 c8b6342d 2005-01-13 devnull .I path
61 c8b6342d 2005-01-13 devnull to the include path,
62 c8b6342d 2005-01-13 devnull and the
63 c8b6342d 2005-01-13 devnull .B -D
64 c8b6342d 2005-01-13 devnull option defines
65 c8b6342d 2005-01-13 devnull .I name
66 c8b6342d 2005-01-13 devnull in the C preprocessor.
67 c8b6342d 2005-01-13 devnull .I 9c
68 c8b6342d 2005-01-13 devnull always
69 c8b6342d 2005-01-13 devnull defines the symbol
70 058b0118 2005-01-03 devnull .B PLAN9PORT
71 c8b6342d 2005-01-13 devnull defined in the C preprocessor and adds
72 058b0118 2005-01-03 devnull .B $PLAN9/include
73 c8b6342d 2005-01-13 devnull to the include path.
74 058b0118 2005-01-03 devnull .PP
75 058b0118 2005-01-03 devnull .I 9c
76 058b0118 2005-01-03 devnull also defines
77 058b0118 2005-01-03 devnull .B __sun__
78 cb8f7357 2020-01-20 rsc on SunOS systems.
79 058b0118 2005-01-03 devnull .PP
80 058b0118 2005-01-03 devnull .I 9l
81 058b0118 2005-01-03 devnull links the named object files and libraries to create the target executable.
82 058b0118 2005-01-03 devnull Each
83 058b0118 2005-01-03 devnull .B -l
84 058b0118 2005-01-03 devnull option specifies that a library named
85 c8b6342d 2005-01-13 devnull .BI lib name .a
86 058b0118 2005-01-03 devnull be found and linked.
87 058b0118 2005-01-03 devnull The
88 058b0118 2005-01-03 devnull .B -L
89 058b0118 2005-01-03 devnull option adds directories to the library search path.
90 058b0118 2005-01-03 devnull .I 9l
91 058b0118 2005-01-03 devnull invokes the system linker with
92 058b0118 2005-01-03 devnull .B $PLAN9/lib
93 058b0118 2005-01-03 devnull already on the library search path.
94 058b0118 2005-01-03 devnull .PP
95 c8b6342d 2005-01-13 devnull .I 9l
96 c8b6342d 2005-01-13 devnull searches the named objects and libraries for symbols of the form
97 c8b6342d 2005-01-13 devnull .BI __p9l_autolib_ name \fR,
98 c8b6342d 2005-01-13 devnull which it takes as indication that it should link
99 c8b6342d 2005-01-13 devnull .BI $PLAN9/lib/lib name .a
100 c8b6342d 2005-01-13 devnull as well.
101 c8b6342d 2005-01-13 devnull It also examines such libraries to find their own dependencies.
102 c8b6342d 2005-01-13 devnull A single
103 c8b6342d 2005-01-13 devnull .B -l
104 c8b6342d 2005-01-13 devnull option at the beginning of the command line disables this behavior.
105 c8b6342d 2005-01-13 devnull The symbol
106 c8b6342d 2005-01-13 devnull .BI __p9l_autolib_ name
107 c8b6342d 2005-01-13 devnull is added to an object file by the macro
108 c8b6342d 2005-01-13 devnull .B AUTOLIB( name )\fR,
109 c8b6342d 2005-01-13 devnull defined in
110 c8b6342d 2005-01-13 devnull .B <u.h>.
111 c8b6342d 2005-01-13 devnull Header files associated with libraries contain
112 c8b6342d 2005-01-13 devnull .B AUTOLIB
113 c8b6342d 2005-01-13 devnull annotations; ordinary programs need not use them.
114 c8b6342d 2005-01-13 devnull Due to shortcomings in the implementation, a source file may not
115 c8b6342d 2005-01-13 devnull contain the same
116 c8b6342d 2005-01-13 devnull .B AUTOLIB
117 c8b6342d 2005-01-13 devnull statement multiple times.
118 c8b6342d 2005-01-13 devnull .PP
119 058b0118 2005-01-03 devnull .I 9ar
120 058b0118 2005-01-03 devnull maintains object file archives called libraries.
121 058b0118 2005-01-03 devnull The exact set of valid command keys varies from system to system,
122 058b0118 2005-01-03 devnull but
123 058b0118 2005-01-03 devnull .I 9ar
124 058b0118 2005-01-03 devnull always provides the following key characters:
125 058b0118 2005-01-03 devnull .TP
126 058b0118 2005-01-03 devnull .B d
127 cb8f7357 2020-01-20 rsc Delete
128 cb8f7357 2020-01-20 rsc .I files
129 058b0118 2005-01-03 devnull from the archive file.
130 058b0118 2005-01-03 devnull .TP
131 058b0118 2005-01-03 devnull .B r
132 058b0118 2005-01-03 devnull Replace
133 cb8f7357 2020-01-20 rsc .I files
134 058b0118 2005-01-03 devnull in the archive file, or add them if missing.
135 058b0118 2005-01-03 devnull .TP
136 058b0118 2005-01-03 devnull .B t
137 058b0118 2005-01-03 devnull List a table of contents of the archive.
138 058b0118 2005-01-03 devnull If names are given, only those files are listed.
139 058b0118 2005-01-03 devnull .TP
140 058b0118 2005-01-03 devnull .B x
141 058b0118 2005-01-03 devnull Extract the named files.
142 058b0118 2005-01-03 devnull If no names are given, all files in the archive are
143 058b0118 2005-01-03 devnull extracted.
144 058b0118 2005-01-03 devnull In neither case does
145 058b0118 2005-01-03 devnull .B x
146 058b0118 2005-01-03 devnull alter the archive file.
147 058b0118 2005-01-03 devnull .TP
148 058b0118 2005-01-03 devnull .B v
149 058b0118 2005-01-03 devnull Verbose.
150 058b0118 2005-01-03 devnull Give a file-by-file
151 058b0118 2005-01-03 devnull description of the making of a
152 058b0118 2005-01-03 devnull new archive file from the old archive and the constituent files.
153 058b0118 2005-01-03 devnull With
154 058b0118 2005-01-03 devnull .BR t ,
155 058b0118 2005-01-03 devnull give a long listing of all information about the files,
156 058b0118 2005-01-03 devnull somewhat like a listing by
157 d32deab1 2020-08-16 rsc .MR ls (1) ,
158 058b0118 2005-01-03 devnull showing
159 058b0118 2005-01-03 devnull .br
160 058b0118 2005-01-03 devnull .ns
161 058b0118 2005-01-03 devnull .IP
162 058b0118 2005-01-03 devnull .B
163 058b0118 2005-01-03 devnull mode uid/gid size date name
164 058b0118 2005-01-03 devnull .TP
165 058b0118 2005-01-03 devnull .B c
166 058b0118 2005-01-03 devnull Create.
167 058b0118 2005-01-03 devnull Normally
168 058b0118 2005-01-03 devnull .I 9ar
169 058b0118 2005-01-03 devnull will create a new archive when
170 058b0118 2005-01-03 devnull .I afile
171 058b0118 2005-01-03 devnull does not exist, and give a warning.
172 cb8f7357 2020-01-20 rsc Option
173 058b0118 2005-01-03 devnull .B c
174 058b0118 2005-01-03 devnull discards any old contents and suppresses the warning.
175 058b0118 2005-01-03 devnull .PD
176 058b0118 2005-01-03 devnull .PP
177 058b0118 2005-01-03 devnull When a
178 058b0118 2005-01-03 devnull .BR d ,
179 058b0118 2005-01-03 devnull .BR r ,
180 058b0118 2005-01-03 devnull or
181 058b0118 2005-01-03 devnull .BR m
182 058b0118 2005-01-03 devnull .I key
183 058b0118 2005-01-03 devnull is specified,
184 058b0118 2005-01-03 devnull .I 9ar
185 058b0118 2005-01-03 devnull inserts a table of contents, required by the linker, at
186 058b0118 2005-01-03 devnull the front of the library.
187 058b0118 2005-01-03 devnull The table of contents is
188 058b0118 2005-01-03 devnull rebuilt whenever the archive is modified.
189 c8b6342d 2005-01-13 devnull .SH EXAMPLES
190 058b0118 2005-01-03 devnull .TP
191 058b0118 2005-01-03 devnull .L
192 058b0118 2005-01-03 devnull 9c file1.c file2.c file3.c
193 058b0118 2005-01-03 devnull Compile three C source files.
194 058b0118 2005-01-03 devnull .TP
195 058b0118 2005-01-03 devnull .L
196 058b0118 2005-01-03 devnull 9ar rvc lib.a file[12].o
197 058b0118 2005-01-03 devnull Archive the first two object files into a library.
198 c8b6342d 2005-01-13 devnull .TP
199 058b0118 2005-01-03 devnull .L
200 058b0118 2005-01-03 devnull 9l -o prog file3.o file4.o lib.a
201 058b0118 2005-01-03 devnull Link the final two object files and any necessary objects from the library
202 058b0118 2005-01-03 devnull into an executable.
203 058b0118 2005-01-03 devnull .SH SOURCE
204 c3674de4 2005-01-11 devnull .B \*9/bin