1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 1992-2008, Free Software Foundation, Inc. --
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. --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
24 ------------------------------------------------------------------------------
26 with Osint
; use Osint
;
27 with Output
; use Output
;
29 with System
.WCh_Con
; use System
.WCh_Con
;
31 package body Bindusg
is
33 Already_Displayed
: Boolean := False;
34 -- Set True if Display called, used to avoid showing usage information
43 if Already_Displayed
then
46 Already_Displayed
:= True;
51 Write_Str
("Usage: ");
54 Write_Str
("switches lfile");
58 -- Line for @response_file
60 Write_Line
(" @<resp_file> Get arguments from response file");
63 -- Line for -aO switch
65 Write_Line
(" -aOdir Specify library files search path");
67 -- Line for -aI switch
69 Write_Line
(" -aIdir Specify source files search path");
73 Write_Line
(" -a Automatically initialize elaboration " &
78 Write_Line
(" -A Generate binder program in Ada (default)");
82 Write_Line
(" -b Generate brief messages to stderr " &
83 "even if verbose mode set");
87 Write_Line
(" -c Check only, no generation of " &
88 "binder output file");
92 Write_Line
(" -C Generate binder program in C");
96 Write_Line
(" -dnn[k|m] Default primary stack " &
97 "size = nn [kilo|mega] bytes");
101 Write_Line
(" -Dnn[k|m] Default secondary stack " &
102 "size = nnn [kilo|mega] bytes");
104 -- Line for -e switch
106 Write_Line
(" -e Output complete list of elaboration " &
107 "order dependencies");
109 -- Line for -E switch
111 Write_Line
(" -E Store tracebacks in Exception occurrences");
113 -- The -f switch is voluntarily omitted, because it is obsolete
115 -- Line for -F switch
117 Write_Line
(" -F Force checking of elaboration Flags");
119 -- Line for -h switch
121 Write_Line
(" -h Output this usage (help) information");
123 -- Lines for -I switch
125 Write_Line
(" -Idir Specify library and source files search path");
126 Write_Line
(" -I- Don't look for sources & library files " &
127 "in default directory");
129 -- Line for -K switch
131 Write_Line
(" -K Give list of linker options specified " &
134 -- Line for -l switch
136 Write_Line
(" -l Output chosen elaboration order");
140 Write_Line
(" -Lxyz Library build: adainit/final " &
141 "renamed to xyzinit/final, implies -n");
143 -- Line for -m switch
145 Write_Line
(" -mnnn Limit number of detected errors " &
146 "to nnn (1-999999)");
148 -- Line for -M switch
150 Write_Line
(" -Mxyz Rename generated main program from " &
153 -- Line for -n switch
155 Write_Line
(" -n No Ada main program (foreign main routine)");
157 -- Line for -nostdinc
159 Write_Line
(" -nostdinc Don't look for source files " &
160 "in the system default directory");
162 -- Line for -nostdlib
164 Write_Line
(" -nostdlib Don't look for library files " &
165 "in the system default directory");
167 -- Line for -o switch
169 Write_Line
(" -o file Give the output file name " &
170 "(default is b~xxx.adb)");
172 -- Line for -O switch
174 Write_Line
(" -O Give list of objects required for link");
176 -- Line for -p switch
178 Write_Line
(" -p Pessimistic (worst-case) elaboration order");
180 -- Line for -r switch
182 Write_Line
(" -r List restrictions that could be applied " &
183 "to this partition");
185 -- Line for -R switch
188 (" -R List sources referenced in closure (implies -c)");
190 -- Line for -s switch
192 Write_Line
(" -s Require all source files to be present");
194 -- Line for -S?? switch
196 Write_Line
(" -S?? Sin/lo/hi/xx/ev Initialize_Scalars " &
197 "invalid/low/high/hex/env var");
201 Write_Line
(" -static Link against a static GNAT run time");
205 Write_Line
(" -shared Link against a shared GNAT run time");
207 -- Line for -t switch
209 Write_Line
(" -t Tolerate time stamp and other " &
210 "consistency errors");
212 -- Line for -T switch
214 Write_Line
(" -Tn Set time slice value to n " &
215 "milliseconds (n >= 0)");
217 -- Line for -u switch
219 Write_Line
(" -un Enable dynamic stack analysis, with " &
222 -- Line for -v switch
224 Write_Line
(" -v Verbose mode. Error messages, " &
225 "header, summary output to stdout");
227 -- Line for -w switch
229 Write_Line
(" -wx Warning mode. (x=s/e for " &
230 "suppress/treat as error)");
232 -- Line for -W switch
234 Write_Str
(" -W? Wide character encoding method (");
236 for J
in WC_Encoding_Method
loop
237 Write_Char
(WC_Encoding_Letters
(J
));
239 if J
= WC_Encoding_Method
'Last then
248 -- Line for -x switch
250 Write_Line
(" -x Exclude source files (check object " &
251 "consistency only)");
253 -- Line for -X switch
255 Write_Line
(" -Xnnn Default exit status value = nnn");
257 -- Line for -y switch
259 Write_Line
(" -y Enable leap seconds");
261 -- Line for -z switch
263 Write_Line
(" -z No main subprogram (zero main)");
267 -- Line for -Z switch
270 "Zero formatting in auxiliary outputs (-e, -K, -l, -R)");
274 Write_Line
(" --RTS=dir Specify the default source and " &
275 "object search path");
279 Write_Line
(" lfile Library file names");