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