DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(make.info.gz) Instead of Execution

Info Catalog (make.info.gz) Goals (make.info.gz) Running (make.info.gz) Avoiding Compilation
 
 9.3 Instead of Executing the Commands
 =====================================
 
 The makefile tells `make' how to tell whether a target is up to date,
 and how to update each target.  But updating the targets is not always
 what you want.  Certain options specify other activities for `make'.
 
 `-n'
 `--just-print'
 `--dry-run'
 `--recon'
      "No-op".  The activity is to print what commands would be used to
      make the targets up to date, but not actually execute them.
 
 `-t'
 `--touch'
      "Touch".  The activity is to mark the targets as up to date without
      actually changing them.  In other words, `make' pretends to compile
      the targets but does not really change their contents.
 
 `-q'
 `--question'
      "Question".  The activity is to find out silently whether the
      targets are up to date already; but execute no commands in either
      case.  In other words, neither compilation nor output will occur.
 
 `-W FILE'
 `--what-if=FILE'
 `--assume-new=FILE'
 `--new-file=FILE'
      "What if".  Each `-W' flag is followed by a file name.  The given
      files' modification times are recorded by `make' as being the
      present time, although the actual modification times remain the
      same.  You can use the `-W' flag in conjunction with the `-n' flag
      to see what would happen if you were to modify specific files.
 
    With the `-n' flag, `make' prints the commands that it would
 normally execute but does not execute them.
 
    With the `-t' flag, `make' ignores the commands in the rules and
 uses (in effect) the command `touch' for each target that needs to be
 remade.  The `touch' command is also printed, unless `-s' or `.SILENT'
 is used.  For speed, `make' does not actually invoke the program
 `touch'.  It does the work directly.
 
    With the `-q' flag, `make' prints nothing and executes no commands,
 but the exit status code it returns is zero if and only if the targets
 to be considered are already up to date.  If the exit status is one,
 then some updating needs to be done.  If `make' encounters an error,
 the exit status is two, so you can distinguish an error from a target
 that is not up to date.
 
    It is an error to use more than one of these three flags in the same
 invocation of `make'.
 
    The `-n', `-t', and `-q' options do not affect command lines that
 begin with `+' characters or contain the strings `$(MAKE)' or
 `${MAKE}'.  Note that only the line containing the `+' character or the
 strings `$(MAKE)' or `${MAKE}' is run regardless of these options.
 Other lines in the same rule are not run unless they too begin with `+'
 or contain `$(MAKE)' or `${MAKE}' ( How the `MAKE' Variable Works
 MAKE Variable.)
 
    The `-W' flag provides two features:
 
    * If you also use the `-n' or `-q' flag, you can see what `make'
      would do if you were to modify some files.
 
    * Without the `-n' or `-q' flag, when `make' is actually executing
      commands, the `-W' flag can direct `make' to act as if some files
      had been modified, without actually modifying the files.
 
    Note that the options `-p' and `-v' allow you to obtain other
 information about `make' or about the makefiles in use ( Summary
 of Options Options Summary.).
 
Info Catalog (make.info.gz) Goals (make.info.gz) Running (make.info.gz) Avoiding Compilation
automatically generated byinfo2html