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-2011, 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 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. -- 20-- -- 21-- GNAT was originally developed by the GNAT team at New York University. -- 22-- Extensive contributions were provided by Ada Core Technologies Inc. -- 23-- -- 24------------------------------------------------------------------------------ 25 26with Makeutl; 27with Osint; use Osint; 28with Output; use Output; 29with Switch; use Switch; 30with Usage; 31 32procedure Makeusg is 33 34-- Start of processing for Makeusg 35 36begin 37 -- Usage line 38 39 Write_Str ("Usage: "); 40 Osint.Write_Program_Name; 41 Write_Str (" opts name "); 42 Write_Str ("{[-cargs opts] [-bargs opts] [-largs opts] [-margs opts]}"); 43 Write_Eol; 44 Write_Eol; 45 Write_Str (" name is one or more file name from which you"); 46 Write_Str (" can omit the .adb or .ads suffix"); 47 Write_Eol; 48 Write_Eol; 49 50 -- GNATMAKE switches 51 52 Write_Str ("gnatmake switches:"); 53 Write_Eol; 54 55 Display_Usage_Version_And_Help; 56 57 -- Line for -a 58 59 Write_Str (" -a Consider all files, even readonly ali files"); 60 Write_Eol; 61 62 -- Line for -b 63 64 Write_Str (" -b Bind only"); 65 Write_Eol; 66 67 -- Line for -B 68 69 Write_Str (" -B Build, bind and link full project"); 70 Write_Eol; 71 72 -- Line for -c 73 74 Write_Str (" -c Compile only"); 75 Write_Eol; 76 77 -- Line for -C 78 79 Write_Str (" -C Cache source mappings: " & 80 "invoke compiler with temp mapping file"); 81 Write_Eol; 82 83 -- Line for -C=<mapping file> 84 85 Write_Str (" -C=mapp Cache source mappings: " & 86 "invoke compiler with mapping file mapp"); 87 Write_Eol; 88 89 -- Line for -D 90 91 Write_Str (" -D dir Specify dir as the object directory"); 92 Write_Eol; 93 94 -- Line for -eI 95 96 Write_Str (" -eI Index of unit in multi-unit source file"); 97 Write_Eol; 98 99 -- Line for -eL 100 101 Write_Str (" -eL Follow symbolic links when processing " & 102 "project files"); 103 Write_Eol; 104 105 -- Line for -eS 106 107 Write_Str (" -eS Echo commands to stdout instead of stderr"); 108 Write_Eol; 109 110 -- Line for -f 111 112 Write_Str (" -f Force recompilations of non predefined units"); 113 Write_Eol; 114 115 -- Line for -F 116 117 Write_Str (" -F Full project path name in brief error messages"); 118 Write_Eol; 119 120 -- Line for -i 121 122 Write_Str (" -i In place. Replace existing ali file, "); 123 Write_Str ("or put it with source"); 124 Write_Eol; 125 126 -- Line for -jnnn 127 128 Write_Str (" -jnum Use nnn processes to compile"); 129 Write_Eol; 130 131 -- Line for -k 132 133 Write_Str (" -k Keep going after compilation errors"); 134 Write_Eol; 135 136 -- Line for -l 137 138 Write_Str (" -l Link only"); 139 Write_Eol; 140 141 -- Line for -m 142 143 Write_Str (" -m Minimal recompilation"); 144 Write_Eol; 145 146 -- Line for -M 147 148 Write_Str (" -M List object file dependences for Makefile"); 149 Write_Eol; 150 151 -- Line for -n 152 153 Write_Str (" -n Check objects up to date, output next file "); 154 Write_Str ("to compile if not"); 155 Write_Eol; 156 157 -- Line for -o 158 159 Write_Str (" -o name Choose an alternate executable name"); 160 Write_Eol; 161 162 -- Line for -p 163 164 Write_Str (" -p Create missing obj, lib and exec dirs"); 165 Write_Eol; 166 167 -- Line for -P 168 169 Write_Str (" -Pproj Use GNAT Project File proj"); 170 Write_Eol; 171 172 -- Line for -q 173 174 Write_Str (" -q Be quiet/terse"); 175 Write_Eol; 176 177 -- Line for -R 178 179 Write_Str (" -R Do not use a run_path_option when linking"); 180 Write_Eol; 181 182 -- Line for -s 183 184 Write_Str (" -s Recompile if compiler switches have changed"); 185 Write_Eol; 186 187 -- Line for -u 188 189 Write_Str (" -u Unique compilation, only compile the given files"); 190 Write_Eol; 191 192 -- Line for -U 193 194 Write_Str (" -U Unique compilation for all sources of all projects"); 195 Write_Eol; 196 197 -- Line for -v 198 199 Write_Str (" -v Display reasons for all (re)compilations"); 200 Write_Eol; 201 202 -- Line for -vl 203 204 Write_Str (" -vl Verbose output (low verbosity)"); 205 Write_Eol; 206 207 -- Line for -vm 208 209 Write_Str (" -vm Verbose output (medium verbosity)"); 210 Write_Eol; 211 212 -- Line for -vh 213 214 Write_Str (" -vh Equivalent to -v (high verbosity)"); 215 Write_Eol; 216 217 -- Line for -vPx 218 219 Write_Str (" -vPx Specify verbosity when parsing GNAT Project Files"); 220 Write_Eol; 221 222 -- Line for -we 223 224 Write_Str (" -we Treat all warnings as errors"); 225 Write_Eol; 226 227 -- Line for -wn 228 229 Write_Str (" -wn Normal warning mode (cancels -we/-ws)"); 230 Write_Eol; 231 232 -- Line for -ws 233 234 Write_Str (" -ws Suppress all warnings"); 235 Write_Eol; 236 237 -- Line for -x 238 239 Write_Str (" -x " & 240 "Allow compilation of needed units external to the projects"); 241 Write_Eol; 242 243 -- Line for -X 244 245 Write_Str (" -Xnm=val Specify an external reference for GNAT " & 246 "Project Files"); 247 Write_Eol; 248 249 -- Line for -z 250 251 Write_Str (" -z No main subprogram (zero main)"); 252 Write_Eol; 253 Write_Eol; 254 255 Write_Str (" --create-map-file Create map file mainprog.map"); 256 Write_Eol; 257 258 Write_Str (" --create-map-file=mapfile"); 259 Write_Eol; 260 Write_Str (" Create map file mapfile"); 261 Write_Eol; 262 263 Write_Str (" --GCC=command Use this gcc command"); 264 Write_Eol; 265 266 Write_Str (" --GNATBIND=command Use this gnatbind command"); 267 Write_Eol; 268 269 Write_Str (" --GNATLINK=command Use this gnatlink command"); 270 Write_Eol; 271 Write_Eol; 272 273 -- Source and Library search path switches 274 275 Write_Str ("Project, Source and Library search path switches:"); 276 Write_Eol; 277 278 -- Line for -aP 279 280 Write_Str (" -aPdir Add directory dir to project search path"); 281 Write_Eol; 282 283 -- Line for -aL 284 285 Write_Str (" -aLdir Skip missing library sources if ali in dir"); 286 Write_Eol; 287 288 -- Line for -A 289 290 Write_Str (" -Adir like -aLdir -aIdir"); 291 Write_Eol; 292 293 -- Line for -aO switch 294 295 Write_Str (" -aOdir Specify library/object files search path"); 296 Write_Eol; 297 298 -- Line for -aI switch 299 300 Write_Str (" -aIdir Specify source files search path"); 301 Write_Eol; 302 303 -- Line for -I switch 304 305 Write_Str (" -Idir Like -aIdir -aOdir"); 306 Write_Eol; 307 308 -- Line for -I- switch 309 310 Write_Str (" -I- Don't look for sources & library files"); 311 Write_Str (" in the default directory"); 312 Write_Eol; 313 314 -- Line for -L 315 316 Write_Str (" -Ldir Look for program libraries also in dir"); 317 Write_Eol; 318 319 -- Line for -nostdinc 320 321 Write_Str (" -nostdinc Don't look for sources"); 322 Write_Str (" in the system default directory"); 323 Write_Eol; 324 325 -- Line for -nostdlib 326 327 Write_Str (" -nostdlib Don't look for library files"); 328 Write_Str (" in the system default directory"); 329 Write_Eol; 330 331 -- Line for --RTS 332 333 Write_Str (" --RTS=dir specify the default source and object search" 334 & " path"); 335 Write_Eol; 336 337 -- Line for --subdirs= 338 339 Write_Str (" --subdirs=dir real obj/lib/exec dirs are subdirs"); 340 Write_Eol; 341 342 -- Line for --source-info= 343 344 Write_Str (" "); 345 Write_Str (Makeutl.Source_Info_Option); 346 Write_Str ("file specify a source info file"); 347 Write_Eol; 348 349 -- Line for --unchecked-shared-lib-imports 350 351 Write_Str (" "); 352 Write_Str (Makeutl.Unchecked_Shared_Lib_Imports); 353 Write_Eol; 354 Write_Str (" Allow shared libraries to import static libraries"); 355 Write_Eol; 356 Write_Eol; 357 358 -- General Compiler, Binder, Linker switches 359 360 Write_Str ("To pass an arbitrary switch to the Compiler, "); 361 Write_Str ("Binder or Linker:"); 362 Write_Eol; 363 364 -- Line for -cargs 365 366 Write_Str (" -cargs opts opts are passed to the compiler"); 367 Write_Eol; 368 369 -- Line for -bargs 370 371 Write_Str (" -bargs opts opts are passed to the binder"); 372 Write_Eol; 373 374 -- Line for -largs 375 376 Write_Str (" -largs opts opts are passed to the linker"); 377 Write_Eol; 378 379 -- Line for -margs 380 381 Write_Str (" -margs opts opts are passed to gnatmake"); 382 Write_Eol; 383 384 -- Add usage information for gcc 385 386 Usage; 387 388end Makeusg; 389