------------------------------------------------------------------------------ -- -- -- GNAT COMPILER COMPONENTS -- -- -- -- B I N D U S G -- -- -- -- B o d y -- -- -- -- Copyright (C) 1992-2023, 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 (" @ 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 Disable checking of elaboration flags"); -- 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 additional 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;