OSDN Git Service

* gcc-interface/Makefile.in (gnatlib-shared-default): Append
[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 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 dir   Specify dir as the object directory");
92    Write_Eol;
93
94    --  Line for -eI
95
96    Write_Str ("  -eI      Index of unit in multi-unit source file");
97    Write_Eol;
98
99    --  Line for -eL
100
101    Write_Str ("  -eL      Follow symbolic links when processing " &
102               "project files");
103    Write_Eol;
104
105    --  Line for -eS
106
107    Write_Str ("  -eS      Echo commands to stdout instead of stderr");
108    Write_Eol;
109
110    --  Line for -f
111
112    Write_Str ("  -f       Force recompilations of non predefined units");
113    Write_Eol;
114
115    --  Line for -F
116
117    Write_Str ("  -F       Full project path name in brief error messages");
118    Write_Eol;
119
120    --  Line for -i
121
122    Write_Str ("  -i       In place. Replace existing ali file, ");
123    Write_Str ("or put it with source");
124    Write_Eol;
125
126    --  Line for -jnnn
127
128    Write_Str ("  -jnum    Use nnn processes to compile");
129    Write_Eol;
130
131    --  Line for -k
132
133    Write_Str ("  -k       Keep going after compilation errors");
134    Write_Eol;
135
136    --  Line for -l
137
138    Write_Str ("  -l       Link only");
139    Write_Eol;
140
141    --  Line for -m
142
143    Write_Str ("  -m       Minimal recompilation");
144    Write_Eol;
145
146    --  Line for -M
147
148    Write_Str ("  -M       List object file dependences for Makefile");
149    Write_Eol;
150
151    --  Line for -n
152
153    Write_Str ("  -n       Check objects up to date, output next file ");
154    Write_Str ("to compile if not");
155    Write_Eol;
156
157    --  Line for -o
158
159    Write_Str ("  -o name  Choose an alternate executable name");
160    Write_Eol;
161
162    --  Line for -p
163
164    Write_Str ("  -p       Create missing obj, lib and exec dirs");
165    Write_Eol;
166
167    --  Line for -P
168
169    Write_Str ("  -Pproj   Use GNAT Project File proj");
170    Write_Eol;
171
172    --  Line for -q
173
174    Write_Str ("  -q       Be quiet/terse");
175    Write_Eol;
176
177    --  Line for -R
178
179    Write_Str ("  -R       Do not use a run_path_option when linking");
180    Write_Eol;
181
182    --  Line for -s
183
184    Write_Str ("  -s       Recompile if compiler switches have changed");
185    Write_Eol;
186
187    --  Line for -u
188
189    Write_Str ("  -u       Unique compilation, only compile the given files");
190    Write_Eol;
191
192    --  Line for -U
193
194    Write_Str ("  -U       Unique compilation for all sources of all projects");
195    Write_Eol;
196
197    --  Line for -v
198
199    Write_Str ("  -v       Display reasons for all (re)compilations");
200    Write_Eol;
201
202    --  Line for -vl
203
204    Write_Str ("  -vl      Verbose output (low verbosity)");
205    Write_Eol;
206
207    --  Line for -vm
208
209    Write_Str ("  -vm      Verbose output (medium verbosity)");
210    Write_Eol;
211
212    --  Line for -vh
213
214    Write_Str ("  -vh      Equivalent to -v (high verbosity)");
215    Write_Eol;
216
217    --  Line for -vPx
218
219    Write_Str ("  -vPx     Specify verbosity when parsing GNAT Project Files");
220    Write_Eol;
221
222    --  Line for -we
223
224    Write_Str ("  -we      Treat all warnings as errors");
225    Write_Eol;
226
227    --  Line for -wn
228
229    Write_Str ("  -wn      Normal warning mode (cancels -we/-ws)");
230    Write_Eol;
231
232    --  Line for -ws
233
234    Write_Str ("  -ws      Suppress all warnings");
235    Write_Eol;
236
237    --  Line for -x
238
239    Write_Str ("  -x       " &
240               "Allow compilation of needed units external to the projects");
241    Write_Eol;
242
243    --  Line for -X
244
245    Write_Str ("  -Xnm=val Specify an external reference for GNAT " &
246               "Project Files");
247    Write_Eol;
248
249    --  Line for -z
250
251    Write_Str ("  -z       No main subprogram (zero main)");
252    Write_Eol;
253    Write_Eol;
254
255    Write_Str ("  --create-map-file   Create map file mainprog.map");
256    Write_Eol;
257
258    Write_Str ("  --create-map-file=mapfile");
259    Write_Eol;
260    Write_Str ("                      Create map file mapfile");
261    Write_Eol;
262
263    Write_Str ("  --GCC=command       Use this gcc command");
264    Write_Eol;
265
266    Write_Str ("  --GNATBIND=command  Use this gnatbind command");
267    Write_Eol;
268
269    Write_Str ("  --GNATLINK=command  Use this gnatlink command");
270    Write_Eol;
271    Write_Eol;
272
273    --  Source and Library search path switches
274
275    Write_Str ("Project, Source and Library search path switches:");
276    Write_Eol;
277
278    --  Line for -aP
279
280    Write_Str ("  -aPdir    Add directory dir to project search path");
281    Write_Eol;
282
283    --  Line for -aL
284
285    Write_Str ("  -aLdir    Skip missing library sources if ali in dir");
286    Write_Eol;
287
288    --  Line for -A
289
290    Write_Str ("  -Adir     like -aLdir -aIdir");
291    Write_Eol;
292
293    --  Line for -aO switch
294
295    Write_Str ("  -aOdir    Specify library/object files search path");
296    Write_Eol;
297
298    --  Line for -aI switch
299
300    Write_Str ("  -aIdir    Specify source files search path");
301    Write_Eol;
302
303    --  Line for -I switch
304
305    Write_Str ("  -Idir     Like -aIdir -aOdir");
306    Write_Eol;
307
308    --  Line for -I- switch
309
310    Write_Str ("  -I-       Don't look for sources & library files");
311    Write_Str (" in the default directory");
312    Write_Eol;
313
314    --  Line for -L
315
316    Write_Str ("  -Ldir     Look for program libraries also in dir");
317    Write_Eol;
318
319    --  Line for -nostdinc
320
321    Write_Str ("  -nostdinc Don't look for sources");
322    Write_Str (" in the system default directory");
323    Write_Eol;
324
325    --  Line for -nostdlib
326
327    Write_Str ("  -nostdlib Don't look for library files");
328    Write_Str (" in the system default directory");
329    Write_Eol;
330
331    --  Line for --RTS
332
333    Write_Str ("  --RTS=dir specify the default source and object search"
334               & " path");
335    Write_Eol;
336
337    --  Line for --subdirs=
338
339    Write_Str ("  --subdirs=dir real obj/lib/exec dirs are subdirs");
340    Write_Eol;
341
342    --  Line for --source-info=
343
344    Write_Str ("  ");
345    Write_Str (Makeutl.Source_Info_Option);
346    Write_Str ("file specify a source info file");
347    Write_Eol;
348
349    --  Line for --unchecked-shared-lib-imports
350
351    Write_Str ("  ");
352    Write_Str (Makeutl.Unchecked_Shared_Lib_Imports);
353    Write_Eol;
354    Write_Str ("            Allow shared libraries to import static libraries");
355    Write_Eol;
356    Write_Eol;
357
358    --  General Compiler, Binder, Linker switches
359
360    Write_Str ("To pass an arbitrary switch to the Compiler, ");
361    Write_Str ("Binder or Linker:");
362    Write_Eol;
363
364    --  Line for -cargs
365
366    Write_Str ("  -cargs opts   opts are passed to the compiler");
367    Write_Eol;
368
369    --  Line for -bargs
370
371    Write_Str ("  -bargs opts   opts are passed to the binder");
372    Write_Eol;
373
374    --  Line for -largs
375
376    Write_Str ("  -largs opts   opts are passed to the linker");
377    Write_Eol;
378
379    --  Line for -margs
380
381    Write_Str ("  -margs opts   opts are passed to gnatmake");
382    Write_Eol;
383
384    --  Add usage information for gcc
385
386    Usage;
387
388 end Makeusg;