1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 1992-2023, 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
;
28 with Switch
; use Switch
;
30 with System
.WCh_Con
; use System
.WCh_Con
;
32 package body Bindusg
is
34 Already_Displayed
: Boolean := False;
35 -- Set True if Display called, used to avoid showing usage information
44 if Already_Displayed
then
47 Already_Displayed
:= True;
52 Write_Str
("Usage: ");
55 Write_Str
("switches lfile");
59 Display_Usage_Version_And_Help
;
61 -- Line for @response_file
64 (" @<resp_file> Get arguments from response file");
67 -- Line for -aO switch
70 (" -aOdir Specify library files search path");
72 -- Line for -aI switch
75 (" -aIdir Specify source files search path");
80 (" -a Automatically initialize elaboration procedure");
82 -- Lines for -A switch
85 (" -A Give list of ALI files in partition");
87 (" -A=file Write ALI file list to named file");
92 (" -b Generate brief messages to stderr even if verbose mode "
98 (" -c Check only, no generation of binder output file");
100 -- Line for -d switch
103 (" -dnn[k|m] Default primary stack size = nn [kilo|mega] bytes");
108 (" -Dnn[k|m] Default secondary stack size = nn [kilo|mega] bytes");
110 -- Line for -e switch
113 (" -e Output complete list of elaboration order dependencies");
115 -- Line for -E switch
118 (" -Ea Store tracebacks in exception occurrences");
120 (" -Es Store tracebacks in exception occurrences,");
122 (" and enable symbolic tracebacks");
126 -- Line for -f switch
129 (" -ffile Force elaboration order from given file");
131 -- Line for -F switch
134 (" -F Force checking of elaboration Flags");
136 -- Line for -G switch
139 (" -G Generate binder file suitable for CCG");
141 -- Line for -h switch
144 (" -h Output this usage (help) information");
146 -- Line for -H switch
149 (" -H Legacy elaboration order model enabled");
151 -- Lines for -I switch
154 (" -Idir Specify library and source files search path");
156 (" -I- Don't look for sources & library files in default "
159 -- Line for -k switch
162 (" -k Disable checking of elaboration flags");
164 -- Line for -K switch
167 (" -K Give list of linker options specified for link");
169 -- Line for -l switch
172 (" -l Output chosen elaboration order");
177 (" -Lxyz Library build: adainit/final renamed to xyzinit/final, "
180 -- Line for -m switch
183 (" -mnnn Limit number of detected errors/warnings to nnn "
186 -- Line for -minimal switch
189 (" -minimal Generate binder file suitable for space-constrained "
192 -- Line for -M switch
195 (" -Mxyz Rename generated main program from main to xyz");
197 -- Line for -n switch
200 (" -n No Ada main program (foreign main routine)");
202 -- Line for -nostdinc
205 (" -nostdinc Don't look for source files in the system default "
208 -- Line for -nostdlib
211 (" -nostdlib Don't look for library files in the system default "
214 -- Line for -o switch
217 (" -o file Give the output file name (default is b~xxx.adb)");
219 -- Line for -O switch
222 (" -O Give list of objects required for link");
224 -- Line for -p switch
227 (" -p Pessimistic (worst-case) elaboration order");
229 -- Line for -P switch
232 (" -P Generate binder file suitable for CodePeer");
237 (" -Qnnn Generate nnn additional default-sized secondary stacks");
239 -- Line for -r switch
242 (" -r List restrictions that could be applied to this "
245 -- Line for -R switch
248 (" -R List sources referenced in closure");
250 -- Line for -s switch
253 (" -s Require all source files to be present");
255 -- Line for -S?? switch
258 (" -S?? Sin/lo/hi/xx/ev Initialize_Scalars "
259 & "invalid/low/high/hex/env var");
264 (" -static Link against a static GNAT run time");
269 (" -shared Link against a shared GNAT run time");
271 -- Line for -t switch
274 (" -t Tolerate time stamp and other consistency errors");
276 -- Line for -T switch
279 (" -Tn Set time slice value to n milliseconds (n >= 0)");
281 -- Line for -u switch
284 (" -un Enable dynamic stack analysis, with n results stored");
286 -- Line for -v switch
289 (" -v Verbose mode. Error messages, header, summary output to "
292 -- Line for -V switch
295 (" -Vkey=val Record bind-time variable key with value val");
296 -- Line for -w switch
299 (" -wx Warning mode. (x=s/e for suppress/treat as error)");
301 -- Line for -W switch
304 (" -W? Wide character encoding method (");
306 for J
in WC_Encoding_Method
loop
307 Write_Char
(WC_Encoding_Letters
(J
));
309 if J
= WC_Encoding_Method
'Last then
318 -- Line for -x switch
321 (" -x Exclude source files (check object consistency only)");
323 -- Line for -xdr switch
326 (" -xdr Use the XDR protocol for streaming");
328 -- Line for -X switch
331 (" -Xnnn Default exit status value = nnn");
333 -- Line for -y switch
336 (" -y Enable leap seconds");
338 -- Line for -z switch
341 (" -z No main subprogram (zero main)");
343 -- Line for -Z switch
346 (" -Z Zero formatting in auxiliary outputs (-e, -K, -l, -R)");
351 (" --RTS=dir Specify the default source and object search path");
356 (" lfile Library file names");