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 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 (" @<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 293end Bindusg; 294