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