make: Options Summary
9.7 Summary of Options
======================
Here is a table of all the options 'make' understands:
'-b'
'-m'
These options are ignored for compatibility with other versions of
'make'.
'-B'
'--always-make'
Consider all targets out-of-date. GNU 'make' proceeds to consider
targets and their prerequisites using the normal algorithms;
however, all targets so considered are always remade regardless of
the status of their prerequisites. To avoid infinite recursion, if
'MAKE_RESTARTS' (Other Special Variables Special Variables.)
is set to a number greater than 0 this option is disabled when
considering whether to remake makefiles (How Makefiles Are
Remade Remaking Makefiles.).
'-C DIR'
'--directory=DIR'
Change to directory DIR before reading the makefiles. If multiple
'-C' options are specified, each is interpreted relative to the
previous one: '-C / -C etc' is equivalent to '-C /etc'. This is
typically used with recursive invocations of 'make' (
Recursive Use of 'make' Recursion.).
'-d'
Print debugging information in addition to normal processing. The
debugging information says which files are being considered for
remaking, which file-times are being compared and with what
results, which files actually need to be remade, which implicit
rules are considered and which are applied--everything interesting
about how 'make' decides what to do. The '-d' option is equivalent
to '--debug=a' (see below).
'--debug[=OPTIONS]'
Print debugging information in addition to normal processing.
Various levels and types of output can be chosen. With no
arguments, print the "basic" level of debugging. Possible
arguments are below; only the first character is considered, and
values must be comma- or space-separated.
'a (all)'
All types of debugging output are enabled. This is equivalent
to using '-d'.
'b (basic)'
Basic debugging prints each target that was found to be
out-of-date, and whether the build was successful or not.
'v (verbose)'
A level above 'basic'; includes messages about which makefiles
were parsed, prerequisites that did not need to be rebuilt,
etc. This option also enables 'basic' messages.
'i (implicit)'
Prints messages describing the implicit rule searches for each
target. This option also enables 'basic' messages.
'j (jobs)'
Prints messages giving details on the invocation of specific
sub-commands.
'm (makefile)'
By default, the above messages are not enabled while trying to
remake the makefiles. This option enables messages while
rebuilding makefiles, too. Note that the 'all' option does
enable this option. This option also enables 'basic'
messages.
'n (none)'
Disable all debugging currently enabled. If additional
debugging flags are encountered after this they will still
take effect.
'-e'
'--environment-overrides'
Give variables taken from the environment precedence over variables
from makefiles. Variables from the Environment Environment.
'--eval=STRING'
Evaluate STRING as makefile syntax. This is a command-line version
of the 'eval' function (Eval Function). The evaluation is
performed after the default rules and variables have been defined,
but before any makefiles are read.
'-f FILE'
'--file=FILE'
'--makefile=FILE'
Read the file named FILE as a makefile. Writing Makefiles
Makefiles.
'-h'
'--help'
Remind you of the options that 'make' understands and then exit.
'-i'
'--ignore-errors'
Ignore all errors in recipes executed to remake files.
Errors in Recipes Errors.
'-I DIR'
'--include-dir=DIR'
Specifies a directory DIR to search for included makefiles.
Including Other Makefiles Include. If several '-I' options are
used to specify several directories, the directories are searched
in the order specified.
'-j [JOBS]'
'--jobs[=JOBS]'
Specifies the number of recipes (jobs) to run simultaneously. With
no argument, 'make' runs as many recipes simultaneously as
possible. If there is more than one '-j' option, the last one is
effective. Parallel Execution Parallel, for more
information on how recipes are run. Note that this option is
ignored on MS-DOS.
'-k'
'--keep-going'
Continue as much as possible after an error. While the target that
failed, and those that depend on it, cannot be remade, the other
prerequisites of these targets can be processed all the same.
Testing the Compilation of a Program Testing.
'-l [LOAD]'
'--load-average[=LOAD]'
'--max-load[=LOAD]'
Specifies that no new recipes should be started if there are other
recipes running and the load average is at least LOAD (a
floating-point number). With no argument, removes a previous load
limit. Parallel Execution Parallel.
'-L'
'--check-symlink-times'
On systems that support symbolic links, this option causes 'make'
to consider the timestamps on any symbolic links in addition to the
timestamp on the file referenced by those links. When this option
is provided, the most recent timestamp among the file and the
symbolic links is taken as the modification time for this target
file.
'-n'
'--just-print'
'--dry-run'
'--recon'
Print the recipe that would be executed, but do not execute it
(except in certain circumstances). Instead of Executing
Recipes Instead of Execution.
'-o FILE'
'--old-file=FILE'
'--assume-old=FILE'
Do not remake the file FILE even if it is older than its
prerequisites, and do not remake anything on account of changes in
FILE. Essentially the file is treated as very old and its rules
are ignored. Avoiding Recompilation of Some Files Avoiding
Compilation.
'-O[TYPE]'
'--output-sync[=TYPE]'
Ensure that the complete output from each recipe is printed in one
uninterrupted sequence. This option is only useful when using the
'--jobs' option to run multiple recipes simultaneously (
Parallel Execution Parallel.) Without this option output will be
displayed as it is generated by the recipes.
With no type or the type 'target', output from the entire recipe of
each target is grouped together. With the type 'line', output from
each line in the recipe is grouped together. With the type
'recurse', the output from an entire recursive make is grouped
together. With the type 'none', no output synchronization is
performed. Output During Parallel Execution Parallel
Output.
'-p'
'--print-data-base'
Print the data base (rules and variable values) that results from
reading the makefiles; then execute as usual or as otherwise
specified. This also prints the version information given by the
'-v' switch (see below). To print the data base without trying to
remake any files, use 'make -qp'. To print the data base of
predefined rules and variables, use 'make -p -f /dev/null'. The
data base output contains file name and line number information for
recipe and variable definitions, so it can be a useful debugging
tool in complex environments.
'-q'
'--question'
"Question mode". Do not run any recipes, or print anything; just
return an exit status that is zero if the specified targets are
already up to date, one if any remaking is required, or two if an
error is encountered. Instead of Executing Recipes Instead
of Execution.
'-r'
'--no-builtin-rules'
Eliminate use of the built-in implicit rules (Using Implicit
Rules Implicit Rules.). You can still define your own by writing
pattern rules (Defining and Redefining Pattern Rules Pattern
Rules.). The '-r' option also clears out the default list of
suffixes for suffix rules (Old-Fashioned Suffix Rules Suffix
Rules.). But you can still define your own suffixes with a rule
for '.SUFFIXES', and then define your own suffix rules. Note that
only _rules_ are affected by the '-r' option; default variables
remain in effect (Variables Used by Implicit Rules Implicit
Variables.); see the '-R' option below.
'-R'
'--no-builtin-variables'
Eliminate use of the built-in rule-specific variables (
Variables Used by Implicit Rules Implicit Variables.). You can
still define your own, of course. The '-R' option also
automatically enables the '-r' option (see above), since it doesn't
make sense to have implicit rules without any definitions for the
variables that they use.
'-s'
'--silent'
'--quiet'
Silent operation; do not print the recipes as they are executed.
Recipe Echoing Echoing.
'-S'
'--no-keep-going'
'--stop'
Cancel the effect of the '-k' option. This is never necessary
except in a recursive 'make' where '-k' might be inherited from the
top-level 'make' via 'MAKEFLAGS' (Recursive Use of 'make'
Recursion.) or if you set '-k' in 'MAKEFLAGS' in your environment.
'-t'
'--touch'
Touch files (mark them up to date without really changing them)
instead of running their recipes. This is used to pretend that the
recipes were done, in order to fool future invocations of 'make'.
Instead of Executing Recipes Instead of Execution.
'--trace'
Show tracing information for 'make' execution. Prints the entire
recipe to be executed, even for recipes that are normally silent
(due to '.SILENT' or '@'). Also prints the makefile name and line
number where the recipe was defined, and information on why the
target is being rebuilt.
'-v'
'--version'
Print the version of the 'make' program plus a copyright, a list of
authors, and a notice that there is no warranty; then exit.
'-w'
'--print-directory'
Print a message containing the working directory both before and
after executing the makefile. This may be useful for tracking down
errors from complicated nests of recursive 'make' commands.
Recursive Use of 'make' Recursion. (In practice, you rarely need
to specify this option since 'make' does it for you; see The
'--print-directory' Option -w Option.)
'--no-print-directory'
Disable printing of the working directory under '-w'. This option
is useful when '-w' is turned on automatically, but you do not want
to see the extra messages. The '--print-directory' Option
-w Option.
'-W FILE'
'--what-if=FILE'
'--new-file=FILE'
'--assume-new=FILE'
Pretend that the target FILE has just been modified. When used
with the '-n' flag, this shows you what would happen if you were to
modify that file. Without '-n', it is almost the same as running a
'touch' command on the given file before running 'make', except
that the modification time is changed only in the imagination of
'make'. Instead of Executing Recipes Instead of Execution.
'--warn-undefined-variables'
Issue a warning message whenever 'make' sees a reference to an
undefined variable. This can be helpful when you are trying to
debug makefiles which use variables in complex ways.