blob: 664da34d42effcc10b4aa52bb8dd1dd9668bc184 [file] [log] [blame]
------------------------------------------------------------------------------
-- --
-- GNAT COMPILER COMPONENTS --
-- --
-- B I N D U S G --
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2021, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING3. If not, go to --
-- http://www.gnu.org/licenses for a complete copy of the license. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
with Osint; use Osint;
with Output; use Output;
with Switch; use Switch;
with System.WCh_Con; use System.WCh_Con;
package body Bindusg is
Already_Displayed : Boolean := False;
-- Set True if Display called, used to avoid showing usage information
-- more than once.
-------------
-- Display --
-------------
procedure Display is
begin
if Already_Displayed then
return;
else
Already_Displayed := True;
end if;
-- Usage line
Write_Str ("Usage: ");
Write_Program_Name;
Write_Char (' ');
Write_Str ("switches lfile");
Write_Eol;
Write_Eol;
Display_Usage_Version_And_Help;
-- Line for @response_file
Write_Line
(" @<resp_file> Get arguments from response file");
Write_Eol;
-- Line for -aO switch
Write_Line
(" -aOdir Specify library files search path");
-- Line for -aI switch
Write_Line
(" -aIdir Specify source files search path");
-- Line for a switch
Write_Line
(" -a Automatically initialize elaboration procedure");
-- Lines for -A switch
Write_Line
(" -A Give list of ALI files in partition");
Write_Line
(" -A=file Write ALI file list to named file");
-- Line for -b switch
Write_Line
(" -b Generate brief messages to stderr even if verbose mode "
& "set");
-- Line for -c switch
Write_Line
(" -c Check only, no generation of binder output file");
-- Line for -d switch
Write_Line
(" -dnn[k|m] Default primary stack size = nn [kilo|mega] bytes");
-- Line for D switch
Write_Line
(" -Dnn[k|m] Default secondary stack size = nn [kilo|mega] bytes");
-- Line for -e switch
Write_Line
(" -e Output complete list of elaboration order dependencies");
-- Line for -E switch
Write_Line
(" -Ea Store tracebacks in exception occurrences");
Write_Line
(" -Es Store tracebacks in exception occurrences,");
Write_Line
(" and enable symbolic tracebacks");
Write_Line
(" -E Same as -Ea");
-- Line for -f switch
Write_Line
(" -ffile Force elaboration order from given file");
-- Line for -F switch
Write_Line
(" -F Force checking of elaboration Flags");
-- Line for -G switch
Write_Line
(" -G Generate binder file suitable for CCG");
-- Line for -h switch
Write_Line
(" -h Output this usage (help) information");
-- Line for -H switch
Write_Line
(" -H Legacy elaboration order model enabled");
-- Lines for -I switch
Write_Line
(" -Idir Specify library and source files search path");
Write_Line
(" -I- Don't look for sources & library files in default "
& "directory");
-- Line for -K switch
Write_Line
(" -K Give list of linker options specified for link");
-- Line for -l switch
Write_Line
(" -l Output chosen elaboration order");
-- Line of -L switch
Write_Line
(" -Lxyz Library build: adainit/final renamed to xyzinit/final, "
& "implies -n");
-- Line for -m switch
Write_Line
(" -mnnn Limit number of detected errors/warnings to nnn "
& "(1-999999)");
-- Line for -minimal switch
Write_Line
(" -minimal Generate binder file suitable for space-constrained "
& "applications");
-- Line for -M switch
Write_Line
(" -Mxyz Rename generated main program from main to xyz");
-- Line for -n switch
Write_Line
(" -n No Ada main program (foreign main routine)");
-- Line for -nostdinc
Write_Line
(" -nostdinc Don't look for source files in the system default "
& "directory");
-- Line for -nostdlib
Write_Line
(" -nostdlib Don't look for library files in the system default "
& "directory");
-- Line for -o switch
Write_Line
(" -o file Give the output file name (default is b~xxx.adb)");
-- Line for -O switch
Write_Line
(" -O Give list of objects required for link");
-- Line for -p switch
Write_Line
(" -p Pessimistic (worst-case) elaboration order");
-- Line for -P switch
Write_Line
(" -P Generate binder file suitable for CodePeer");
-- Line for Q switch
Write_Line
(" -Qnnn Generate nnn default-sized secondary stacks");
-- Line for -r switch
Write_Line
(" -r List restrictions that could be applied to this "
& "partition");
-- Line for -R switch
Write_Line
(" -R List sources referenced in closure");
-- Line for -s switch
Write_Line
(" -s Require all source files to be present");
-- Line for -S?? switch
Write_Line
(" -S?? Sin/lo/hi/xx/ev Initialize_Scalars "
& "invalid/low/high/hex/env var");
-- Line for -static
Write_Line
(" -static Link against a static GNAT run time");
-- Line for -shared
Write_Line
(" -shared Link against a shared GNAT run time");
-- Line for -t switch
Write_Line
(" -t Tolerate time stamp and other consistency errors");
-- Line for -T switch
Write_Line
(" -Tn Set time slice value to n milliseconds (n >= 0)");
-- Line for -u switch
Write_Line
(" -un Enable dynamic stack analysis, with n results stored");
-- Line for -v switch
Write_Line
(" -v Verbose mode. Error messages, header, summary output to "
& "stdout");
-- Line for -V switch
Write_Line
(" -Vkey=val Record bind-time variable key with value val");
-- Line for -w switch
Write_Line
(" -wx Warning mode. (x=s/e for suppress/treat as error)");
-- Line for -W switch
Write_Str
(" -W? Wide character encoding method (");
for J in WC_Encoding_Method loop
Write_Char (WC_Encoding_Letters (J));
if J = WC_Encoding_Method'Last then
Write_Char (')');
else
Write_Char ('/');
end if;
end loop;
Write_Eol;
-- Line for -x switch
Write_Line
(" -x Exclude source files (check object consistency only)");
-- Line for -xdr switch
Write_Line
(" -xdr Use the XDR protocol for streaming");
-- Line for -X switch
Write_Line
(" -Xnnn Default exit status value = nnn");
-- Line for -y switch
Write_Line
(" -y Enable leap seconds");
-- Line for -z switch
Write_Line
(" -z No main subprogram (zero main)");
-- Line for -Z switch
Write_Line
(" -Z Zero formatting in auxiliary outputs (-e, -K, -l, -R)");
-- Line for --RTS
Write_Line
(" --RTS=dir Specify the default source and object search path");
-- Line for sfile
Write_Line
(" lfile Library file names");
end Display;
end Bindusg;