OSDN Git Service

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