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-2012, 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 (" -E Store tracebacks in exception occurrences"); 112 113 -- The -f switch is voluntarily omitted, because it is obsolete 114 115 -- Line for -F switch 116 117 Write_Line (" -F Force checking of elaboration Flags"); 118 119 -- Line for -h switch 120 121 Write_Line (" -h Output this usage (help) information"); 122 123 -- Line for -H switch 124 125 Write_Line (" -Hnn Use nn bit heap where nn is 32 or 64 " & 126 "(VMS Only)"); 127 128 -- Lines for -I switch 129 130 Write_Line (" -Idir Specify library and source files search path"); 131 Write_Line (" -I- Don't look for sources & library files " & 132 "in default directory"); 133 134 -- Line for -K switch 135 136 Write_Line (" -K Give list of linker options specified " & 137 "for link"); 138 139 -- Line for -l switch 140 141 Write_Line (" -l Output chosen elaboration order"); 142 143 -- Line of -L switch 144 145 Write_Line (" -Lxyz Library build: adainit/final " & 146 "renamed to xyzinit/final, implies -n"); 147 148 -- Line for -m switch 149 150 Write_Line (" -mnnn Limit number of detected errors/warnings " & 151 "to nnn (1-999999)"); 152 153 -- Line for -M switch 154 155 Write_Line (" -Mxyz Rename generated main program from " & 156 "main to xyz"); 157 158 -- Line for -n switch 159 160 Write_Line (" -n No Ada main program (foreign main routine)"); 161 162 -- Line for -nostdinc 163 164 Write_Line (" -nostdinc Don't look for source files " & 165 "in the system default directory"); 166 167 -- Line for -nostdlib 168 169 Write_Line (" -nostdlib Don't look for library files " & 170 "in the system default directory"); 171 172 -- Line for -o switch 173 174 Write_Line (" -o file Give the output file name " & 175 "(default is b~xxx.adb)"); 176 177 -- Line for -O switch 178 179 Write_Line (" -O Give list of objects required for link"); 180 181 -- Line for -p switch 182 183 Write_Line (" -p Pessimistic (worst-case) elaboration order"); 184 185 -- Line for -P switch 186 187 Write_Line (" -P Generate binder file suitable for CodePeer"); 188 189 -- Line for -r switch 190 191 Write_Line (" -r List restrictions that could be applied " & 192 "to this partition"); 193 194 -- Line for -R switch 195 196 Write_Line 197 (" -R List sources referenced in closure"); 198 199 -- Line for -s switch 200 201 Write_Line (" -s Require all source files to be present"); 202 203 -- Line for -S?? switch 204 205 Write_Line (" -S?? Sin/lo/hi/xx/ev Initialize_Scalars " & 206 "invalid/low/high/hex/env var"); 207 208 -- Line for -static 209 210 Write_Line (" -static Link against a static GNAT run time"); 211 212 -- Line for -shared 213 214 Write_Line (" -shared Link against a shared GNAT run time"); 215 216 -- Line for -t switch 217 218 Write_Line (" -t Tolerate time stamp and other " & 219 "consistency errors"); 220 221 -- Line for -T switch 222 223 Write_Line (" -Tn Set time slice value to n " & 224 "milliseconds (n >= 0)"); 225 226 -- Line for -u switch 227 228 Write_Line (" -un Enable dynamic stack analysis, with " & 229 "n results stored"); 230 231 -- Line for -v switch 232 233 Write_Line (" -v Verbose mode. Error messages, " & 234 "header, summary output to stdout"); 235 236 -- Line for -w switch 237 238 Write_Line (" -wx Warning mode. (x=s/e for " & 239 "suppress/treat as error)"); 240 241 -- Line for -W switch 242 243 Write_Str (" -W? Wide character encoding method ("); 244 245 for J in WC_Encoding_Method loop 246 Write_Char (WC_Encoding_Letters (J)); 247 248 if J = WC_Encoding_Method'Last then 249 Write_Char (')'); 250 else 251 Write_Char ('/'); 252 end if; 253 end loop; 254 255 Write_Eol; 256 257 -- Line for -x switch 258 259 Write_Line (" -x Exclude source files (check object " & 260 "consistency only)"); 261 262 -- Line for -X switch 263 264 Write_Line (" -Xnnn Default exit status value = nnn"); 265 266 -- Line for -y switch 267 268 Write_Line (" -y Enable leap seconds"); 269 270 -- Line for -z switch 271 272 Write_Line (" -z No main subprogram (zero main)"); 273 274 -- Line for --RTS 275 276 -- Line for -Z switch 277 278 Write_Line (" -Z " & 279 "Zero formatting in auxiliary outputs (-e, -K, -l, -R)"); 280 281 -- Line for --RTS 282 283 Write_Line (" --RTS=dir Specify the default source and " & 284 "object search path"); 285 286 -- Line for sfile 287 288 Write_Line (" lfile Library file names"); 289 end Display; 290 291end Bindusg; 292