1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 1992-2010, Free Software Foundation, Inc. --
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. --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
24 ------------------------------------------------------------------------------
27 with Osint; use Osint;
28 with Output; use Output;
33 -- Start of processing for Makeusg
38 Write_Str ("Usage: ");
39 Osint.Write_Program_Name;
40 Write_Str (" opts name ");
41 Write_Str ("{[-cargs opts] [-bargs opts] [-largs opts] [-margs opts]}");
44 Write_Str (" name is one or more file name from which you");
45 Write_Str (" can omit the .adb or .ads suffix");
51 Write_Str ("gnatmake switches:");
56 Write_Str (" -a Consider all files, even readonly ali files");
61 Write_Str (" -b Bind only");
66 Write_Str (" -B Build, bind and link full project");
71 Write_Str (" -c Compile only");
76 Write_Str (" -C Cache source mappings: " &
77 "invoke compiler with temp mapping file");
80 -- Line for -C=<mapping file>
82 Write_Str (" -C=mapp Cache source mappings: " &
83 "invoke compiler with mapping file mapp");
88 Write_Str (" -D dir Specify dir as the object directory");
93 Write_Str (" -eI Index of unit in multi-unit source file");
98 Write_Str (" -eL Follow symbolic links when processing " &
104 Write_Str (" -eS Echo commands to stdout instead of stderr");
109 Write_Str (" -f Force recompilations of non predefined units");
114 Write_Str (" -F Full project path name in brief error messages");
119 Write_Str (" -i In place. Replace existing ali file, ");
120 Write_Str ("or put it with source");
125 Write_Str (" -jnum Use nnn processes to compile");
130 Write_Str (" -k Keep going after compilation errors");
135 Write_Str (" -l Link only");
140 Write_Str (" -m Minimal recompilation");
145 Write_Str (" -M List object file dependences for Makefile");
150 Write_Str (" -n Check objects up to date, output next file ");
151 Write_Str ("to compile if not");
156 Write_Str (" -o name Choose an alternate executable name");
161 Write_Str (" -p Create missing obj, lib and exec dirs");
166 Write_Str (" -Pproj Use GNAT Project File proj");
171 Write_Str (" -q Be quiet/terse");
176 Write_Str (" -R Do not use a run_path_option when linking");
181 Write_Str (" -s Recompile if compiler switches have changed");
186 Write_Str (" -u Unique compilation, only compile the given files");
191 Write_Str (" -U Unique compilation for all sources of all projects");
196 Write_Str (" -v Display reasons for all (re)compilations");
201 Write_Str (" -vPx Specify verbosity when parsing GNAT Project Files");
206 Write_Str (" -we Treat all warnings as errors");
211 Write_Str (" -wn Normal warning mode (cancels -we/-ws)");
216 Write_Str (" -ws Suppress all warnings");
222 "Allow compilation of needed units external to the projects");
227 Write_Str (" -Xnm=val Specify an external reference for GNAT " &
233 Write_Str (" -z No main subprogram (zero main)");
237 Write_Str (" --GCC=command Use this gcc command");
240 Write_Str (" --GNATBIND=command Use this gnatbind command");
243 Write_Str (" --GNATLINK=command Use this gnatlink command");
247 -- Source and Library search path switches
249 Write_Str ("Project, Source and Library search path switches:");
254 Write_Str (" -aPdir Add directory dir to project search path");
259 Write_Str (" -aLdir Skip missing library sources if ali in dir");
264 Write_Str (" -Adir like -aLdir -aIdir");
267 -- Line for -aO switch
269 Write_Str (" -aOdir Specify library/object files search path");
272 -- Line for -aI switch
274 Write_Str (" -aIdir Specify source files search path");
277 -- Line for -I switch
279 Write_Str (" -Idir Like -aIdir -aOdir");
282 -- Line for -I- switch
284 Write_Str (" -I- Don't look for sources & library files");
285 Write_Str (" in the default directory");
290 Write_Str (" -Ldir Look for program libraries also in dir");
293 -- Line for -nostdinc
295 Write_Str (" -nostdinc Don't look for sources");
296 Write_Str (" in the system default directory");
299 -- Line for -nostdlib
301 Write_Str (" -nostdlib Don't look for library files");
302 Write_Str (" in the system default directory");
307 Write_Str (" --RTS=dir specify the default source and object search"
311 -- Line for --subdirs=
313 Write_Str (" --subdirs=dir real obj/lib/exec dirs are subdirs");
316 -- Line for --source-info=
319 Write_Str (Makeutl.Source_Info_Option);
320 Write_Str ("file specify a source info file");
323 -- Line for --unchecked-shared-lib-imports
326 Write_Str (Makeutl.Unchecked_Shared_Lib_Imports);
328 Write_Str (" Allow shared libraries to import static libraries");
332 -- General Compiler, Binder, Linker switches
334 Write_Str ("To pass an arbitrary switch to the Compiler, ");
335 Write_Str ("Binder or Linker:");
340 Write_Str (" -cargs opts opts are passed to the compiler");
345 Write_Str (" -bargs opts opts are passed to the binder");
350 Write_Str (" -largs opts opts are passed to the linker");
355 Write_Str (" -margs opts opts are passed to gnatmake");
358 -- Add usage information for gcc