111
|
1 ------------------------------------------------------------------------------
|
|
2 -- --
|
|
3 -- GNAT COMPILER COMPONENTS --
|
|
4 -- --
|
|
5 -- M A K E U S G --
|
|
6 -- --
|
|
7 -- B o d y --
|
|
8 -- --
|
131
|
9 -- Copyright (C) 1992-2018, Free Software Foundation, Inc. --
|
111
|
10 -- --
|
|
11 -- GNAT is free software; you can redistribute it and/or modify it under --
|
|
12 -- terms of the GNU General Public License as published by the Free Soft- --
|
|
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
|
|
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
|
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
|
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
|
|
17 -- for more details. You should have received a copy of the GNU General --
|
|
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
|
|
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
|
|
20 -- --
|
|
21 -- GNAT was originally developed by the GNAT team at New York University. --
|
|
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
|
|
23 -- --
|
|
24 ------------------------------------------------------------------------------
|
|
25
|
|
26 with Make_Util;
|
|
27 with Osint;
|
|
28 with Output; use Output;
|
|
29 with Switch; use Switch;
|
|
30 with Usage;
|
|
31
|
|
32 procedure Makeusg is
|
|
33
|
|
34 -- Start of processing for Makeusg
|
|
35
|
|
36 begin
|
|
37 -- Usage line
|
|
38
|
|
39 Write_Str ("Usage: ");
|
|
40 Osint.Write_Program_Name;
|
|
41 Write_Str (" opts name ");
|
|
42 Write_Str ("{[-cargs opts] [-bargs opts] [-largs opts] [-margs opts]}");
|
|
43 Write_Eol;
|
|
44 Write_Eol;
|
|
45 Write_Str (" name is one or more file name from which you");
|
|
46 Write_Str (" can omit the .adb or .ads suffix");
|
|
47 Write_Eol;
|
|
48 Write_Eol;
|
|
49
|
|
50 -- GNATMAKE switches
|
|
51
|
|
52 Write_Str ("gnatmake switches:");
|
|
53 Write_Eol;
|
|
54
|
|
55 Display_Usage_Version_And_Help;
|
|
56
|
|
57 -- Line for -a
|
|
58
|
|
59 Write_Str (" -a Consider all files, even readonly ali files");
|
|
60 Write_Eol;
|
|
61
|
|
62 -- Line for -b
|
|
63
|
|
64 Write_Str (" -b Bind only");
|
|
65 Write_Eol;
|
|
66
|
|
67 -- Line for -B
|
|
68
|
|
69 Write_Str (" -B Build, bind and link full project");
|
|
70 Write_Eol;
|
|
71
|
|
72 -- Line for -c
|
|
73
|
|
74 Write_Str (" -c Compile only");
|
|
75 Write_Eol;
|
|
76
|
|
77 -- Line for -C
|
|
78
|
|
79 Write_Str (" -C Cache source mappings: " &
|
|
80 "invoke compiler with temp mapping file");
|
|
81 Write_Eol;
|
|
82
|
|
83 -- Line for -C=<mapping file>
|
|
84
|
|
85 Write_Str (" -C=mapp Cache source mappings: " &
|
|
86 "invoke compiler with mapping file mapp");
|
|
87 Write_Eol;
|
|
88
|
|
89 -- Line for -d
|
|
90
|
|
91 Write_Str (" -d Display compilation progress");
|
|
92 Write_Eol;
|
|
93
|
|
94 -- Line for -D
|
|
95
|
|
96 Write_Str (" -D dir Specify dir as the object directory");
|
|
97 Write_Eol;
|
|
98
|
|
99 -- Line for -eI
|
|
100
|
|
101 Write_Str (" -eI Index of unit in multi-unit source file");
|
|
102 Write_Eol;
|
|
103
|
|
104 -- Line for -eL
|
|
105
|
|
106 Write_Str (" -eL Follow symbolic links when processing " &
|
|
107 "project files");
|
|
108 Write_Eol;
|
|
109
|
|
110 -- Line for -eS
|
|
111
|
|
112 Write_Str (" -eS Echo commands to stdout instead of stderr");
|
|
113 Write_Eol;
|
|
114
|
|
115 -- Line for -f
|
|
116
|
|
117 Write_Str (" -f Force recompilations of non predefined units");
|
|
118 Write_Eol;
|
|
119
|
|
120 -- Line for -F
|
|
121
|
|
122 Write_Str (" -F Full project path name in brief error messages");
|
|
123 Write_Eol;
|
|
124
|
|
125 -- Line for -i
|
|
126
|
|
127 Write_Str (" -i In place. Replace existing ali file, ");
|
|
128 Write_Str ("or put it with source");
|
|
129 Write_Eol;
|
|
130
|
|
131 -- Line for -jnnn
|
|
132
|
|
133 Write_Str (" -jnum Use nnn processes to compile");
|
|
134 Write_Eol;
|
|
135
|
|
136 -- Line for -k
|
|
137
|
|
138 Write_Str (" -k Keep going after compilation errors");
|
|
139 Write_Eol;
|
|
140
|
|
141 -- Line for -l
|
|
142
|
|
143 Write_Str (" -l Link only");
|
|
144 Write_Eol;
|
|
145
|
|
146 -- Line for -m
|
|
147
|
|
148 Write_Str (" -m Minimal recompilation");
|
|
149 Write_Eol;
|
|
150
|
|
151 -- Line for -M
|
|
152
|
|
153 Write_Str (" -M List object file dependences for Makefile");
|
|
154 Write_Eol;
|
|
155
|
|
156 -- Line for -n
|
|
157
|
|
158 Write_Str (" -n Check objects up to date, output next file ");
|
|
159 Write_Str ("to compile if not");
|
|
160 Write_Eol;
|
|
161
|
|
162 -- Line for -o
|
|
163
|
|
164 Write_Str (" -o name Choose an alternate executable name");
|
|
165 Write_Eol;
|
|
166
|
|
167 -- Line for -p
|
|
168
|
|
169 Write_Str (" -p Create missing obj, lib and exec dirs");
|
|
170 Write_Eol;
|
|
171
|
|
172 -- Line for -P
|
|
173
|
|
174 Write_Str (" -Pproj Use GNAT Project File proj");
|
|
175 Write_Eol;
|
|
176
|
|
177 -- Line for -q
|
|
178
|
|
179 Write_Str (" -q Be quiet/terse");
|
|
180 Write_Eol;
|
|
181
|
|
182 -- Line for -R
|
|
183
|
|
184 Write_Str (" -R Do not use a run_path_option when linking");
|
|
185 Write_Eol;
|
|
186
|
|
187 -- Line for -s
|
|
188
|
|
189 Write_Str (" -s Recompile if compiler switches have changed");
|
|
190 Write_Eol;
|
|
191
|
|
192 -- Line for -u
|
|
193
|
|
194 Write_Str (" -u Unique compilation, only compile the given files");
|
|
195 Write_Eol;
|
|
196
|
|
197 -- Line for -U
|
|
198
|
|
199 Write_Str (" -U Unique compilation for all sources of all projects");
|
|
200 Write_Eol;
|
|
201
|
|
202 -- Line for -v
|
|
203
|
|
204 Write_Str (" -v Display reasons for all (re)compilations");
|
|
205 Write_Eol;
|
|
206
|
|
207 -- Line for -vl
|
|
208
|
|
209 Write_Str (" -vl Verbose output (low verbosity)");
|
|
210 Write_Eol;
|
|
211
|
|
212 -- Line for -vm
|
|
213
|
|
214 Write_Str (" -vm Verbose output (medium verbosity)");
|
|
215 Write_Eol;
|
|
216
|
|
217 -- Line for -vh
|
|
218
|
|
219 Write_Str (" -vh Equivalent to -v (high verbosity)");
|
|
220 Write_Eol;
|
|
221
|
|
222 -- Line for -vPx
|
|
223
|
|
224 Write_Str (" -vPx Specify verbosity when parsing GNAT Project Files");
|
|
225 Write_Eol;
|
|
226
|
|
227 -- Line for -we
|
|
228
|
|
229 Write_Str (" -we Treat all warnings as errors");
|
|
230 Write_Eol;
|
|
231
|
|
232 -- Line for -wn
|
|
233
|
|
234 Write_Str (" -wn Normal warning mode (cancels -we/-ws)");
|
|
235 Write_Eol;
|
|
236
|
|
237 -- Line for -ws
|
|
238
|
|
239 Write_Str (" -ws Suppress all warnings");
|
|
240 Write_Eol;
|
|
241
|
|
242 -- Line for -x
|
|
243
|
|
244 Write_Str (" -x " &
|
|
245 "Allow compilation of needed units external to the projects");
|
|
246 Write_Eol;
|
|
247
|
|
248 -- Line for -X
|
|
249
|
|
250 Write_Str (" -Xnm=val Specify an external reference for GNAT " &
|
|
251 "Project Files");
|
|
252 Write_Eol;
|
|
253
|
|
254 -- Line for -z
|
|
255
|
|
256 Write_Str (" -z No main subprogram (zero main)");
|
|
257 Write_Eol;
|
|
258 Write_Eol;
|
|
259
|
|
260 Write_Str (" --create-map-file Create map file mainprog.map");
|
|
261 Write_Eol;
|
|
262
|
|
263 Write_Str (" --create-map-file=mapfile");
|
|
264 Write_Eol;
|
|
265 Write_Str (" Create map file mapfile");
|
|
266 Write_Eol;
|
|
267
|
|
268 Write_Str (" --keep-temp-files Keep temporary files");
|
|
269 Write_Eol;
|
|
270
|
|
271 Write_Str (" --GCC=command Use this gcc command");
|
|
272 Write_Eol;
|
|
273
|
|
274 Write_Str (" --GNATBIND=command Use this gnatbind command");
|
|
275 Write_Eol;
|
|
276
|
|
277 Write_Str (" --GNATLINK=command Use this gnatlink command");
|
|
278 Write_Eol;
|
|
279 Write_Eol;
|
|
280
|
|
281 -- Source and Library search path switches
|
|
282
|
|
283 Write_Str ("Project, Source and Library search path switches:");
|
|
284 Write_Eol;
|
|
285
|
|
286 -- Line for -aP
|
|
287
|
|
288 Write_Str (" -aPdir Add directory dir to project search path");
|
|
289 Write_Eol;
|
|
290
|
|
291 -- Line for -aL
|
|
292
|
|
293 Write_Str (" -aLdir Skip missing library sources if ali in dir");
|
|
294 Write_Eol;
|
|
295
|
|
296 -- Line for -A
|
|
297
|
|
298 Write_Str (" -Adir like -aLdir -aIdir");
|
|
299 Write_Eol;
|
|
300
|
|
301 -- Line for -aO switch
|
|
302
|
|
303 Write_Str (" -aOdir Specify library/object files search path");
|
|
304 Write_Eol;
|
|
305
|
|
306 -- Line for -aI switch
|
|
307
|
|
308 Write_Str (" -aIdir Specify source files search path");
|
|
309 Write_Eol;
|
|
310
|
|
311 -- Line for -I switch
|
|
312
|
|
313 Write_Str (" -Idir Like -aIdir -aOdir");
|
|
314 Write_Eol;
|
|
315
|
|
316 -- Line for -I- switch
|
|
317
|
|
318 Write_Str (" -I- Don't look for sources & library files");
|
|
319 Write_Str (" in the default directory");
|
|
320 Write_Eol;
|
|
321
|
|
322 -- Line for -L
|
|
323
|
|
324 Write_Str (" -Ldir Look for program libraries also in dir");
|
|
325 Write_Eol;
|
|
326
|
|
327 -- Line for -nostdinc
|
|
328
|
|
329 Write_Str (" -nostdinc Don't look for sources");
|
|
330 Write_Str (" in the system default directory");
|
|
331 Write_Eol;
|
|
332
|
|
333 -- Line for -nostdlib
|
|
334
|
|
335 Write_Str (" -nostdlib Don't look for library files");
|
|
336 Write_Str (" in the system default directory");
|
|
337 Write_Eol;
|
|
338
|
|
339 -- Line for --RTS
|
|
340
|
|
341 Write_Str (" --RTS=dir specify the default source and object search"
|
|
342 & " path");
|
|
343 Write_Eol;
|
|
344
|
|
345 -- Line for --subdirs=
|
|
346
|
|
347 Write_Str (" --subdirs=dir real obj/lib/exec dirs are subdirs");
|
|
348 Write_Eol;
|
|
349
|
|
350 -- Line for --source-info=
|
|
351
|
|
352 Write_Str (" ");
|
|
353 Write_Str (Make_Util.Source_Info_Option);
|
|
354 Write_Str ("file specify a source info file");
|
|
355 Write_Eol;
|
|
356
|
|
357 -- Line for --unchecked-shared-lib-imports
|
|
358
|
|
359 Write_Str (" ");
|
|
360 Write_Str (Make_Util.Unchecked_Shared_Lib_Imports);
|
|
361 Write_Eol;
|
|
362 Write_Str (" Allow shared libraries to import static libraries");
|
|
363 Write_Eol;
|
|
364 Write_Eol;
|
|
365
|
|
366 -- General Compiler, Binder, Linker switches
|
|
367
|
|
368 Write_Str ("To pass an arbitrary switch to the Compiler, ");
|
|
369 Write_Str ("Binder or Linker:");
|
|
370 Write_Eol;
|
|
371
|
|
372 -- Line for -cargs
|
|
373
|
|
374 Write_Str (" -cargs opts opts are passed to the compiler");
|
|
375 Write_Eol;
|
|
376
|
|
377 -- Line for -bargs
|
|
378
|
|
379 Write_Str (" -bargs opts opts are passed to the binder");
|
|
380 Write_Eol;
|
|
381
|
|
382 -- Line for -largs
|
|
383
|
|
384 Write_Str (" -largs opts opts are passed to the linker");
|
|
385 Write_Eol;
|
|
386
|
|
387 -- Line for -margs
|
|
388
|
|
389 Write_Str (" -margs opts opts are passed to gnatmake");
|
|
390 Write_Eol;
|
|
391
|
|
392 -- Add usage information for gcc
|
|
393
|
|
394 Usage;
|
|
395
|
|
396 end Makeusg;
|