File : bindusg.adb
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT COMPILER COMPONENTS --
4 -- --
5 -- B I N D U S G --
6 -- --
7 -- B o d y --
8 -- --
9 -- Copyright (C) 1992-2015, 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 Osint; use Osint;
27 with Output; use Output;
28 with Switch; use Switch;
29
30 with System.WCh_Con; use System.WCh_Con;
31
32 package body Bindusg is
33
34 Already_Displayed : Boolean := False;
35 -- Set True if Display called, used to avoid showing usage information
36 -- more than once.
37
38 -------------
39 -- Display --
40 -------------
41
42 procedure Display is
43 begin
44 if Already_Displayed then
45 return;
46 else
47 Already_Displayed := True;
48 end if;
49
50 -- Usage line
51
52 Write_Str ("Usage: ");
53 Write_Program_Name;
54 Write_Char (' ');
55 Write_Str ("switches lfile");
56 Write_Eol;
57 Write_Eol;
58
59 Display_Usage_Version_And_Help;
60
61 -- Line for @response_file
62
63 Write_Line (" @<resp_file> Get arguments from response file");
64 Write_Eol;
65
66 -- Line for -aO switch
67
68 Write_Line (" -aOdir Specify library files search path");
69
70 -- Line for -aI switch
71
72 Write_Line (" -aIdir Specify source files search path");
73
74 -- Line for a switch
75
76 Write_Line (" -a Automatically initialize elaboration " &
77 "procedure");
78
79 -- Lines for -A switch
80
81 Write_Line (" -A Give list of ALI files in partition");
82 Write_Line (" -A=file Write ALI file list to named file");
83
84 -- Line for -b switch
85
86 Write_Line (" -b Generate brief messages to stderr " &
87 "even if verbose mode set");
88
89 -- Line for -c switch
90
91 Write_Line (" -c Check only, no generation of " &
92 "binder output file");
93
94 -- Line for -d switch
95
96 Write_Line (" -dnn[k|m] Default primary stack " &
97 "size = nn [kilo|mega] bytes");
98
99 -- Line for D switch
100
101 Write_Line (" -Dnn[k|m] Default secondary stack " &
102 "size = nn [kilo|mega] bytes");
103
104 -- Line for -e switch
105
106 Write_Line (" -e Output complete list of elaboration " &
107 "order dependencies");
108
109 -- Line for -E switch
110
111 Write_Line (" -Ea Store tracebacks in exception occurrences");
112 Write_Line (" -Es Store tracebacks in exception occurrences,");
113 Write_Line (" and enable symbolic tracebacks");
114 Write_Line (" -E Same as -Ea");
115
116 -- The -f switch is voluntarily omitted, because it is obsolete
117
118 -- Line for -F switch
119
120 Write_Line (" -F Force checking of elaboration Flags");
121
122 -- Line for -h switch
123
124 Write_Line (" -h Output this usage (help) information");
125
126 -- Lines for -I switch
127
128 Write_Line (" -Idir Specify library and source files search path");
129 Write_Line (" -I- Don't look for sources & library files " &
130 "in default directory");
131
132 -- Line for -K switch
133
134 Write_Line (" -K Give list of linker options specified " &
135 "for link");
136
137 -- Line for -l switch
138
139 Write_Line (" -l Output chosen elaboration order");
140
141 -- Line of -L switch
142
143 Write_Line (" -Lxyz Library build: adainit/final " &
144 "renamed to xyzinit/final, implies -n");
145
146 -- Line for -m switch
147
148 Write_Line (" -mnnn Limit number of detected errors/warnings " &
149 "to nnn (1-999999)");
150
151 -- Line for -M switch
152
153 Write_Line (" -Mxyz Rename generated main program from " &
154 "main to xyz");
155
156 -- Line for -n switch
157
158 Write_Line (" -n No Ada main program (foreign main routine)");
159
160 -- Line for -nostdinc
161
162 Write_Line (" -nostdinc Don't look for source files " &
163 "in the system default directory");
164
165 -- Line for -nostdlib
166
167 Write_Line (" -nostdlib Don't look for library files " &
168 "in the system default directory");
169
170 -- Line for -o switch
171
172 Write_Line (" -o file Give the output file name " &
173 "(default is b~xxx.adb)");
174
175 -- Line for -O switch
176
177 Write_Line (" -O Give list of objects required for link");
178
179 -- Line for -p switch
180
181 Write_Line (" -p Pessimistic (worst-case) elaboration order");
182
183 -- Line for -P switch
184
185 Write_Line (" -P Generate binder file suitable for CodePeer");
186
187 -- Line for -r switch
188
189 Write_Line (" -r List restrictions that could be applied " &
190 "to this partition");
191
192 -- Line for -R switch
193
194 Write_Line
195 (" -R List sources referenced in closure");
196
197 -- Line for -s switch
198
199 Write_Line (" -s Require all source files to be present");
200
201 -- Line for -S?? switch
202
203 Write_Line (" -S?? Sin/lo/hi/xx/ev Initialize_Scalars " &
204 "invalid/low/high/hex/env var");
205
206 -- Line for -static
207
208 Write_Line (" -static Link against a static GNAT run time");
209
210 -- Line for -shared
211
212 Write_Line (" -shared Link against a shared GNAT run time");
213
214 -- Line for -t switch
215
216 Write_Line (" -t Tolerate time stamp and other " &
217 "consistency errors");
218
219 -- Line for -T switch
220
221 Write_Line (" -Tn Set time slice value to n " &
222 "milliseconds (n >= 0)");
223
224 -- Line for -u switch
225
226 Write_Line (" -un Enable dynamic stack analysis, with " &
227 "n results stored");
228
229 -- Line for -v switch
230
231 Write_Line (" -v Verbose mode. Error messages, " &
232 "header, summary output to stdout");
233
234 -- Line for -V switch
235
236 Write_Line (" -Vkey=val Record bind-time variable key " &
237 "with value val");
238 -- Line for -w switch
239
240 Write_Line (" -wx Warning mode. (x=s/e for " &
241 "suppress/treat as error)");
242
243 -- Line for -W switch
244
245 Write_Str (" -W? Wide character encoding method (");
246
247 for J in WC_Encoding_Method loop
248 Write_Char (WC_Encoding_Letters (J));
249
250 if J = WC_Encoding_Method'Last then
251 Write_Char (')');
252 else
253 Write_Char ('/');
254 end if;
255 end loop;
256
257 Write_Eol;
258
259 -- Line for -x switch
260
261 Write_Line (" -x Exclude source files (check object " &
262 "consistency only)");
263
264 -- Line for -X switch
265
266 Write_Line (" -Xnnn Default exit status value = nnn");
267
268 -- Line for -y switch
269
270 Write_Line (" -y Enable leap seconds");
271
272 -- Line for -z switch
273
274 Write_Line (" -z No main subprogram (zero main)");
275
276 -- Line for --RTS
277
278 -- Line for -Z switch
279
280 Write_Line (" -Z " &
281 "Zero formatting in auxiliary outputs (-e, -K, -l, -R)");
282
283 -- Line for --RTS
284
285 Write_Line (" --RTS=dir Specify the default source and " &
286 "object search path");
287
288 -- Line for sfile
289
290 Write_Line (" lfile Library file names");
291 end Display;
292
293 end Bindusg;