1------------------------------------------------------------------------------
2--                                                                          --
3--                         GNAT COMPILER COMPONENTS                         --
4--                                                                          --
5--                              M A K E U S G                               --
6--                                                                          --
7--                                 B o d y                                  --
8--                                                                          --
9--          Copyright (C) 1992-2003 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 2,  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 COPYING.  If not, write --
19-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
20-- MA 02111-1307, USA.                                                      --
21--                                                                          --
22-- GNAT was originally developed  by the GNAT team at  New York University. --
23-- Extensive contributions were provided by Ada Core Technologies Inc.      --
24--                                                                          --
25------------------------------------------------------------------------------
26
27with Osint;  use Osint;
28with Output; use Output;
29with Usage;
30
31procedure Makeusg is
32
33--  Start of processing for Makeusg
34
35begin
36   --  Usage line
37
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]}");
42   Write_Eol;
43   Write_Eol;
44   Write_Str ("  name is one or more file name from which you");
45   Write_Str (" can omit the .adb or .ads suffix");
46   Write_Eol;
47   Write_Eol;
48
49   --  GNATMAKE switches
50
51   Write_Str ("gnatmake switches:");
52   Write_Eol;
53
54   --  Line for -a
55
56   Write_Str ("  -a       Consider all files, even readonly ali files");
57   Write_Eol;
58
59   --  Line for -b
60
61   Write_Str ("  -b       Bind only");
62   Write_Eol;
63
64   --  Line for -B
65
66   Write_Str ("  -B       Build, bind and link full project");
67   Write_Eol;
68
69   --  Line for -c
70
71   Write_Str ("  -c       Compile only");
72   Write_Eol;
73
74   --  Line for -C
75
76   Write_Str ("  -C       Cache source mappings: " &
77              "invoke compiler with temp mapping file");
78   Write_Eol;
79
80   --  Line for -C=<mapping file>
81
82   Write_Str ("  -C=mapp  Cache source mappings: " &
83              "invoke compiler with mapping file mapp");
84   Write_Eol;
85
86   --  Line for -D
87
88   Write_Str ("  -D dir   Specify dir as the object directory");
89   Write_Eol;
90
91   --  Line for -f
92
93   Write_Str ("  -f       Force recompilations of non predefined units");
94   Write_Eol;
95
96   --  Line for -F
97
98   Write_Str ("  -F       Full project path name in brief error messages");
99   Write_Eol;
100
101   --  Line for -i
102
103   Write_Str ("  -i       In place. Replace existing ali file, ");
104   Write_Str ("or put it with source");
105   Write_Eol;
106
107   --  Line for -jnnn
108
109   Write_Str ("  -jnum    Use nnn processes to compile");
110   Write_Eol;
111
112   --  Line for -k
113
114   Write_Str ("  -k       Keep going after compilation errors");
115   Write_Eol;
116
117   --  Line for -l
118
119   Write_Str ("  -l       Link only");
120   Write_Eol;
121
122   --  Line for -m
123
124   Write_Str ("  -m       Minimal recompilation");
125   Write_Eol;
126
127   --  Line for -M
128
129   Write_Str ("  -M       List object file dependences for Makefile");
130   Write_Eol;
131
132   --  Line for -n
133
134   Write_Str ("  -n       Check objects up to date, output next file ");
135   Write_Str ("to compile if not");
136   Write_Eol;
137
138   --  Line for -o
139
140   Write_Str ("  -o name  Choose an alternate executable name");
141   Write_Eol;
142
143   --  Line for -P
144
145   Write_Str ("  -Pproj   Use GNAT Project File proj");
146   Write_Eol;
147
148   --  Line for -q
149
150   Write_Str ("  -q       Be quiet/terse");
151   Write_Eol;
152
153   --  Line for -R
154
155   Write_Str ("  -R       Do not use a run_path_option when linking");
156   Write_Eol;
157
158   --  Line for -s
159
160   Write_Str ("  -s       Recompile if compiler switches have changed");
161   Write_Eol;
162
163   --  Line for -u
164
165   Write_Str ("  -u       Unique compilation. Only compile the given files.");
166   Write_Eol;
167
168   --  Line for -U
169
170   Write_Str ("  -U       Unique compilation for all sources of all projects");
171   Write_Eol;
172
173   --  Line for -v
174
175   Write_Str ("  -v       Display reasons for all (re)compilations");
176   Write_Eol;
177
178   --  Line for -vPx
179
180   Write_Str ("  -vPx     Specify verbosity when parsing GNAT Project Files");
181   Write_Eol;
182
183   --  Line for -X
184
185   Write_Str ("  -Xnm=val Specify an external reference for GNAT " &
186              "Project Files");
187   Write_Eol;
188
189   --  Line for -z
190
191   Write_Str ("  -z       No main subprogram (zero main)");
192   Write_Eol;
193   Write_Eol;
194
195   Write_Str ("  --GCC=command       Use this gcc command");
196   Write_Eol;
197
198   Write_Str ("  --GNATBIND=command  Use this gnatbind command");
199   Write_Eol;
200
201   Write_Str ("  --GNATLINK=command  Use this gnatlink command");
202   Write_Eol;
203   Write_Eol;
204
205   --  Source and Library search path switches
206
207   Write_Str ("Source and Library search path switches:");
208   Write_Eol;
209
210   --  Line for -aL
211
212   Write_Str ("  -aLdir    Skip missing library sources if ali in dir");
213   Write_Eol;
214
215   --  Line for -A
216
217   Write_Str ("  -Adir     like -aLdir -aIdir");
218   Write_Eol;
219
220   --  Line for -aO switch
221
222   Write_Str ("  -aOdir    Specify library/object files search path");
223   Write_Eol;
224
225   --  Line for -aI switch
226
227   Write_Str ("  -aIdir    Specify source files search path");
228   Write_Eol;
229
230   --  Line for -I switch
231
232   Write_Str ("  -Idir     Like -aIdir -aOdir");
233   Write_Eol;
234
235   --  Line for -I- switch
236
237   Write_Str ("  -I-       Don't look for sources & library files");
238   Write_Str (" in the default directory");
239   Write_Eol;
240
241   --  Line for -L
242
243   Write_Str ("  -Ldir     Look for program libraries also in dir");
244   Write_Eol;
245
246   --  Line for -nostdinc
247
248   Write_Str ("  -nostdinc Don't look for sources");
249   Write_Str (" in the system default directory");
250   Write_Eol;
251
252   --  Line for -nostdlib
253
254   Write_Str ("  -nostdlib Don't look for library files");
255   Write_Str (" in the system default directory");
256   Write_Eol;
257
258   --  Line for --RTS
259
260   Write_Str ("  --RTS=dir specify the default source and object search"
261              & " path");
262   Write_Eol;
263   Write_Eol;
264
265   --  General Compiler, Binder, Linker switches
266
267   Write_Str ("To pass an arbitrary switch to the Compiler, ");
268   Write_Str ("Binder or Linker:");
269   Write_Eol;
270
271   --  Line for -cargs
272
273   Write_Str ("  -cargs opts   opts are passed to the compiler");
274   Write_Eol;
275
276   --  Line for -bargs
277
278   Write_Str ("  -bargs opts   opts are passed to the binder");
279   Write_Eol;
280
281   --  Line for -largs
282
283   Write_Str ("  -largs opts   opts are passed to the linker");
284   Write_Eol;
285
286   --  Line for -margs
287
288   Write_Str ("  -margs opts   opts are passed to gnatmake");
289   Write_Eol;
290
291   --  Add usage information for gcc
292
293   Usage;
294
295end Makeusg;
296