diff options
Diffstat (limited to 'upstream/archlinux/man1/make.1')
-rw-r--r-- | upstream/archlinux/man1/make.1 | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/upstream/archlinux/man1/make.1 b/upstream/archlinux/man1/make.1 new file mode 100644 index 00000000..f02afbee --- /dev/null +++ b/upstream/archlinux/man1/make.1 @@ -0,0 +1,413 @@ +.TH MAKE 1 "26 May 2023" "GNU" "User Commands" +.SH NAME +make \- GNU Make utility to maintain groups of programs +.SH SYNOPSIS +.B make +[\fIOPTION\fR]... [\fITARGET\fR]... +.SH DESCRIPTION +.LP +The +.I make +utility will determine automatically which pieces of a large program need to +be recompiled, and issue the commands to recompile them. The manual describes +the GNU implementation of +.BR make , +which was written by Richard Stallman and Roland McGrath, and is currently +maintained by Paul Smith. Our examples show C programs, since they are very +common, but you can use +.B make +with any programming language whose compiler can be run with a shell command. +In fact, +.B make +is not limited to programs. You can use it to describe any task where some +files must be updated automatically from others whenever the others change. +.LP +To prepare to use +.BR make , +you must write a file called the +.I makefile +that describes the relationships among files in your program, and provides +commands for updating each file. In a program, typically the executable file +is updated from object files, which are in turn made by compiling source +files. +.LP +Once a suitable makefile exists, each time you change some source files, +this simple shell command: +.sp 1 +.RS +.B make +.RE +.sp 1 +suffices to perform all necessary recompilations. +The +.B make +program uses the makefile description and the last-modification times of the +files to decide which of the files need to be updated. For each of those +files, it issues the commands recorded in the makefile. +.LP +.B make +executes commands in the +.I makefile +to update one or more +.IR targets , +where +.I target +is typically a program. +If no +.B \-f +option is present, +.B make +will look for the makefiles +.IR GNUmakefile , +.IR makefile , +and +.IR Makefile , +in that order. +.LP +Normally you should call your makefile either +.I makefile +or +.IR Makefile . +(We recommend +.I Makefile +because it appears prominently near the beginning of a directory +listing, right near other important files such as +.IR README .) +The first name checked, +.IR GNUmakefile , +is not recommended for most makefiles. You should use this name if you have a +makefile that is specific to GNU Make, and will not be understood by other +versions of +.BR make . +If +.I makefile +is '\-', the standard input is read. +.LP +.B make +updates a target if it depends on prerequisite files +that have been modified since the target was last modified, +or if the target does not exist. +.SH OPTIONS +.sp 1 +.TP 0.5i +\fB\-b\fR, \fB\-m\fR +These options are ignored for compatibility with other versions of +.BR make . +.TP 0.5i +\fB\-B\fR, \fB\-\-always\-make\fR +Unconditionally make all targets. +.TP 0.5i +\fB\-C\fR \fIdir\fR, \fB\-\-directory\fR=\fIdir\fR +Change to directory +.I dir +before reading the makefiles or doing anything else. +If multiple +.B \-C +options are specified, each is interpreted relative to the +previous one: +.BR "\-C " / +.BR "\-C " etc +is equivalent to +.BR "\-C " /etc. +This is typically used with recursive invocations of +.BR make . +.TP 0.5i +.B \-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 +.B make +decides what to do. +.TP 0.5i +.BI \-\-debug "[=FLAGS]" +Print debugging information in addition to normal processing. +If the +.I FLAGS +are omitted, then the behavior is the same as if +.B \-d +was specified. +.I FLAGS +may be any or all of the following names, comma- or space-separated. Only the +first character is significant: the rest may be omitted: +.I all +for all debugging output (same as using +.BR \-d ), +.I basic +for basic debugging, +.I verbose +for more verbose basic debugging, +.I implicit +for showing implicit rule search operations, +.I jobs +for details on invocation of commands, +.I makefile +for debugging while remaking makefiles, +.I print +shows all recipes that are run even if they are silent, and +.I why +shows the reason +.BR make +decided to rebuild each target. Use +.I none +to disable all previous debugging flags. +.TP 0.5i +\fB\-e\fR, \fB\-\-environment\-overrides\fR +Give variables taken from the environment precedence over variables +from makefiles. +.TP 0.5i +\fB\-E\fR \fIstring\fR, \fB\-\-eval\fR \fIstring\fR +Interpret \fIstring\fR using the \fBeval\fR function, before parsing any +makefiles. +.TP 0.5i +\fB\-f\fR \fIfile\fR, \fB\-\-file\fR=\fIfile\fR, \fB\-\-makefile\fR=\fIFILE\fR +Use +.I file +as a makefile. +.TP 0.5i +\fB\-i\fR, \fB\-\-ignore\-errors\fR +Ignore all errors in commands executed to remake files. +.TP 0.5i +\fB\-I\fR \fIdir\fR, \fB\-\-include\-dir\fR=\fIdir\fR +Specifies a directory +.I dir +to search for included makefiles. +If several +.B \-I +options are used to specify several directories, the directories are +searched in the order specified. +Unlike the arguments to other flags of +.BR make , +directories given with +.B \-I +flags may come directly after the flag: +.BI \-I dir +is allowed, as well as +.B \-I +.IR dir . +This syntax is allowed for compatibility with the C +preprocessor's +.B \-I +flag. +.TP 0.5i +\fB\-j\fR [\fIjobs\fR], \fB\-\-jobs\fR[=\fIjobs\fR] +Specifies the number of +.I jobs +(commands) to run simultaneously. +If there is more than one +.B \-j +option, the last one is effective. +If the +.B \-j +option is given without an argument, +.BR make +will not limit the number of jobs that can run simultaneously. +.TP 0.5i +\fB\--jobserver-style=\fR\fIstyle\fR +The style of jobserver to use. The +.I style +may be one of +.BR fifo , +.BR pipe , +or +.B sem +(Windows only). +.TP 0.5i +\fB\-k\fR, \fB\-\-keep\-going\fR +Continue as much as possible after an error. +While the target that failed, and those that depend on it, cannot +be remade, the other dependencies of these targets can be processed +all the same. +.TP 0.5i +\fB\-l\fR [\fIload\fR], \fB\-\-load\-average\fR[=\fIload\fR] +Specifies that no new jobs (commands) should be started if there are +others jobs running and the load average is at least +.I load +(a floating-point number). +With no argument, removes a previous load limit. +.TP 0.5i +\fB\-L\fR, \fB\-\-check\-symlink\-times\fR +Use the latest mtime between symlinks and target. +.TP 0.5i +\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR +Print the commands that would be executed, but do not execute them (except in +certain circumstances). +.TP 0.5i +\fB\-o\fR \fIfile\fR, \fB\-\-old\-file\fR=\fIfile\fR, \fB\-\-assume\-old\fR=\fIfile\fR +Do not remake the file +.I file +even if it is older than its dependencies, and do not remake anything +on account of changes in +.IR file . +Essentially the file is treated as very old and its rules are ignored. +.TP 0.5i +\fB\-O\fR[\fItype\fR], \fB\-\-output\-sync\fR[=\fItype\fR] +When running multiple jobs in parallel with \fB-j\fR, ensure the output of +each job is collected together rather than interspersed with output from +other jobs. If +.I type +is not specified or is +.B target +the output from the entire recipe for each target is grouped together. If +.I type +is +.B line +the output from each command line within a recipe is grouped together. +If +.I type +is +.B recurse +output from an entire recursive make is grouped together. If +.I type +is +.B none +output synchronization is disabled. +.TP 0.5i +\fB\-p\fR, \fB\-\-print\-data\-base\fR +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 +.B \-v +switch (see below). +To print the data base without trying to remake any files, use +.IR "make \-p \-f/dev/null" . +.TP 0.5i +\fB\-q\fR, \fB\-\-question\fR +``Question mode''. +Do not run any commands, or print anything; just return an exit status +that is zero if the specified targets are already up to date, nonzero +otherwise. +.TP 0.5i +\fB\-r\fR, \fB\-\-no\-builtin\-rules\fR +Eliminate use of the built\-in implicit rules. +Also clear out the default list of suffixes for suffix rules. +.TP 0.5i +\fB\-R\fR, \fB\-\-no\-builtin\-variables\fR +Don't define any built\-in variables. +.TP 0.5i +\fB\-s\fR, \fB\-\-silent\fR, \fB\-\-quiet\fR +Silent operation; do not print the commands as they are executed. +.TP 0.5i +.B \-\-no\-silent +Cancel the effect of the \fB\-s\fR option. +.TP 0.5i +\fB\-S\fR, \fB\-\-no\-keep\-going\fR, \fB\-\-stop\fR +Cancel the effect of the +.B \-k +option. +.TP 0.5i +\fB\-t\fR, \fB\-\-touch\fR +Touch files (mark them up to date without really changing them) +instead of running their commands. +This is used to pretend that the commands were done, in order to fool +future invocations of +.BR make . +.TP 0.5i +.B \-\-trace +Information about the disposition of each target is printed (why the target is +being rebuilt and what commands are run to rebuild it). +.TP 0.5i +\fB\-v\fR, \fB\-\-version\fR +Print the version of the +.B make +program plus a copyright, a list of authors and a notice that there +is no warranty. +.TP 0.5i +\fB\-w\fR, \fB\-\-print\-directory\fR +Print a message containing the working directory +before and after other processing. +This may be useful for tracking down errors from complicated nests of +recursive +.B make +commands. +.TP 0.5i +.B \-\-no\-print\-directory +Turn off +.BR \-w , +even if it was turned on implicitly. +.TP 0.5i +.BI \-\-shuffle "[=MODE]" +Enable shuffling of goal and prerequisite ordering. +.I MODE +is one of +.I none +to disable shuffle mode, +.I random +to shuffle prerequisites in random order, +.I reverse +to consider prerequisites in reverse order, or an integer +.I <seed> +which enables +.I random +mode with a specific +.I seed +value. If +.I MODE +is omitted the default is +.IR random . +.TP 0.5i +\fB\-W\fR \fIfile\fR, \fB\-\-what\-if\fR=\fIfile\fR, \fB\-\-new\-file\fR=\fIfile\fR, \fB\-\-assume\-new\fR=\fIfile\fR +Pretend that the target +.I file +has just been modified. +When used with the +.B \-n +flag, this shows you what would happen if you were to modify that file. +Without +.BR \-n , +it is almost the same as running a +.I touch +command on the given file before running +.BR make , +except that the modification time is changed only in the imagination of +.BR make . +.TP 0.5i +.B \-\-warn\-undefined\-variables +Warn when an undefined variable is referenced. +.SH "EXIT STATUS" +GNU Make exits with a status of zero if all makefiles were successfully parsed +and no targets that were built failed. A status of one will be returned +if the +.B \-q +flag was used and +.B make +determines that a target needs to be rebuilt. A status of two will be +returned if any errors were encountered. +.SH "SEE ALSO" +The full documentation for +.B make +is maintained as a Texinfo manual. If the +.B info +and +.B make +programs are properly installed at your site, the command +.IP +.B info make +.PP +should give you access to the complete manual. +.SH BUGS +See the chapter ``Problems and Bugs'' in +.IR "The GNU Make Manual" . +.SH AUTHOR +This manual page contributed by Dennis Morse of Stanford University. +Further updates contributed by Mike Frysinger. It has been reworked by Roland +McGrath. Maintained by Paul Smith. +.SH "COPYRIGHT" +Copyright \(co 1992-1993, 1996-2023 Free Software Foundation, Inc. +This file is part of +.IR "GNU Make" . +.LP +GNU Make is free software; you can redistribute it and/or modify it under the +terms of the GNU General Public License as published by the Free Software +Foundation; either version 3 of the License, or (at your option) any later +version. +.LP +GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.LP +You should have received a copy of the GNU General Public License along with +this program. If not, see +.IR https://www.gnu.org/licenses/ . |