blob: e7653ebc5522deb60da23bafaf299d6b4ab2e437 [file] [log] [blame]
------------------------------------------------------------------------------
-- --
-- GNAT COMPILER COMPONENTS --
-- --
-- M A K E U S G --
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2022, 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 Make_Util;
with Osint;
with Output; use Output;
with Switch; use Switch;
with Usage;
procedure Makeusg is
-- Start of processing for Makeusg
begin
-- Usage line
Write_Str ("Usage: ");
Osint.Write_Program_Name;
Write_Str (" opts name ");
Write_Str ("{[-cargs opts] [-bargs opts] [-largs opts] [-margs opts]}");
Write_Eol;
Write_Eol;
Write_Str (" name is one or more file name from which you");
Write_Str (" can omit the .adb or .ads suffix");
Write_Eol;
Write_Eol;
-- GNATMAKE switches
Write_Str ("gnatmake switches:");
Write_Eol;
Display_Usage_Version_And_Help;
-- Line for -a
Write_Str (" -a Consider all files, even readonly ali files");
Write_Eol;
-- Line for -b
Write_Str (" -b Bind only");
Write_Eol;
-- Line for -B
Write_Str (" -B Build, bind and link full project");
Write_Eol;
-- Line for -c
Write_Str (" -c Compile only");
Write_Eol;
-- Line for -C
Write_Str (" -C Cache source mappings: " &
"invoke compiler with temp mapping file");
Write_Eol;
-- Line for -C=<mapping file>
Write_Str (" -C=mapp Cache source mappings: " &
"invoke compiler with mapping file mapp");
Write_Eol;
-- Line for -d
Write_Str (" -d Display compilation progress");
Write_Eol;
-- Line for -D
Write_Str (" -D dir Specify dir as the object directory");
Write_Eol;
-- Line for -eI
Write_Str (" -eI Index of unit in multi-unit source file");
Write_Eol;
-- Line for -eL
Write_Str (" -eL Follow symbolic links when processing " &
"project files");
Write_Eol;
-- Line for -eS
Write_Str (" -eS Echo commands to stdout instead of stderr");
Write_Eol;
-- Line for -f
Write_Str (" -f Force recompilations of non predefined units");
Write_Eol;
-- Line for -F
Write_Str (" -F Full project path name in brief error messages");
Write_Eol;
-- Line for -i
Write_Str (" -i In place. Replace existing ali file, ");
Write_Str ("or put it with source");
Write_Eol;
-- Line for -jnnn
Write_Str (" -jnum Use nnn processes to compile");
Write_Eol;
-- Line for -k
Write_Str (" -k Keep going after compilation errors");
Write_Eol;
-- Line for -l
Write_Str (" -l Link only");
Write_Eol;
-- Line for -m
Write_Str (" -m Minimal recompilation");
Write_Eol;
-- Line for -M
Write_Str (" -M List object file dependences for Makefile");
Write_Eol;
-- Line for -n
Write_Str (" -n Check objects up to date, output next file ");
Write_Str ("to compile if not");
Write_Eol;
-- Line for -o
Write_Str (" -o name Choose an alternate executable name");
Write_Eol;
-- Line for -p
Write_Str (" -p Create missing obj, lib and exec dirs");
Write_Eol;
-- Line for -P
Write_Str (" -Pproj Use GNAT Project File proj");
Write_Eol;
-- Line for -q
Write_Str (" -q Be quiet/terse");
Write_Eol;
-- Line for -R
Write_Str (" -R Do not use a run_path_option when linking");
Write_Eol;
-- Line for -s
Write_Str (" -s Recompile if compiler switches have changed");
Write_Eol;
-- Line for -u
Write_Str (" -u Unique compilation, only compile the given files");
Write_Eol;
-- Line for -U
Write_Str (" -U Unique compilation for all sources of all projects");
Write_Eol;
-- Line for -v
Write_Str (" -v Display reasons for all (re)compilations");
Write_Eol;
-- Line for -vl
Write_Str (" -vl Verbose output (low verbosity)");
Write_Eol;
-- Line for -vm
Write_Str (" -vm Verbose output (medium verbosity)");
Write_Eol;
-- Line for -vh
Write_Str (" -vh Equivalent to -v (high verbosity)");
Write_Eol;
-- Line for -vPx
Write_Str (" -vPx Specify verbosity when parsing GNAT Project Files");
Write_Eol;
-- Line for -we
Write_Str (" -we Treat all warnings as errors");
Write_Eol;
-- Line for -wn
Write_Str (" -wn Normal warning mode (cancels -we/-ws)");
Write_Eol;
-- Line for -ws
Write_Str (" -ws Suppress all warnings");
Write_Eol;
-- Line for -x
Write_Str (" -x " &
"Allow compilation of needed units external to the projects");
Write_Eol;
-- Line for -X
Write_Str (" -Xnm=val Specify an external reference for GNAT " &
"Project Files");
Write_Eol;
-- Line for -z
Write_Str (" -z No main subprogram (zero main)");
Write_Eol;
Write_Eol;
Write_Str (" --create-map-file Create map file mainprog.map");
Write_Eol;
Write_Str (" --create-map-file=mapfile");
Write_Eol;
Write_Str (" Create map file mapfile");
Write_Eol;
Write_Str (" --keep-temp-files Keep temporary files");
Write_Eol;
Write_Str (" --GCC=command Use this gcc command");
Write_Eol;
Write_Str (" --GNATBIND=command Use this gnatbind command");
Write_Eol;
Write_Str (" --GNATLINK=command Use this gnatlink command");
Write_Eol;
Write_Eol;
-- Source and Library search path switches
Write_Str ("Project, Source and Library search path switches:");
Write_Eol;
-- Line for -aP
Write_Str (" -aPdir Add directory dir to project search path");
Write_Eol;
-- Line for -aL
Write_Str (" -aLdir Skip missing library sources if ali in dir");
Write_Eol;
-- Line for -A
Write_Str (" -Adir like -aLdir -aIdir");
Write_Eol;
-- Line for -aO switch
Write_Str (" -aOdir Specify library/object files search path");
Write_Eol;
-- Line for -aI switch
Write_Str (" -aIdir Specify source files search path");
Write_Eol;
-- Line for -I switch
Write_Str (" -Idir Like -aIdir -aOdir");
Write_Eol;
-- Line for -I- switch
Write_Str (" -I- Don't look for sources & library files");
Write_Str (" in the default directory");
Write_Eol;
-- Line for -L
Write_Str (" -Ldir Look for program libraries also in dir");
Write_Eol;
-- Line for -nostdinc
Write_Str (" -nostdinc Don't look for sources");
Write_Str (" in the system default directory");
Write_Eol;
-- Line for -nostdlib
Write_Str (" -nostdlib Don't look for library files");
Write_Str (" in the system default directory");
Write_Eol;
-- Line for --RTS
Write_Str (" --RTS=dir specify the default source and object search"
& " path");
Write_Eol;
-- Line for --subdirs=
Write_Str (" --subdirs=dir real obj/lib/exec dirs are subdirs");
Write_Eol;
-- Line for --source-info=
Write_Str (" ");
Write_Str (Make_Util.Source_Info_Option);
Write_Str ("file specify a source info file");
Write_Eol;
-- Line for --unchecked-shared-lib-imports
Write_Str (" ");
Write_Str (Make_Util.Unchecked_Shared_Lib_Imports);
Write_Eol;
Write_Str (" Allow shared libraries to import static libraries");
Write_Eol;
Write_Eol;
-- General Compiler, Binder, Linker switches
Write_Str ("To pass an arbitrary switch to the Compiler, ");
Write_Str ("Binder or Linker:");
Write_Eol;
-- Line for -cargs
Write_Str (" -cargs opts opts are passed to the compiler");
Write_Eol;
-- Line for -bargs
Write_Str (" -bargs opts opts are passed to the binder");
Write_Eol;
-- Line for -largs
Write_Str (" -largs opts opts are passed to the linker");
Write_Eol;
-- Line for -margs
Write_Str (" -margs opts opts are passed to gnatmake");
Write_Eol;
-- Add usage information for gcc
Usage;
end Makeusg;