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;