summaryrefslogtreecommitdiff
path: root/make.texinfo
diff options
context:
space:
mode:
Diffstat (limited to 'make.texinfo')
-rw-r--r--make.texinfo41
1 files changed, 27 insertions, 14 deletions
diff --git a/make.texinfo b/make.texinfo
index 6d9be0a..e6b6165 100644
--- a/make.texinfo
+++ b/make.texinfo
@@ -10,8 +10,8 @@
@set RCSID $Id$
@set EDITION 0.53
@set VERSION 3.78
-@set UPDATED 22 March 1999
-@set UPDATE-MONTH March 1999
+@set UPDATED 14 April 1999
+@set UPDATE-MONTH April 1999
@comment The ISBN number might need to change on next publication.
@set ISBN 1-882114-80-9 @c CHANGE THIS BEFORE PRINTING AGAIN! --psmith 16jul98
@@ -24,12 +24,12 @@
@c Combine the program and concept indices:
@syncodeindex pg cp
-@ifinfo
-@dircategory The GNU make utility
+@dircategory GNU Packages
@direntry
- * Make: (make.info). The GNU make utility.
+* Make: (make). Remake files automatically.
@end direntry
+@ifinfo
This file documents the GNU Make utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
@@ -3032,8 +3032,8 @@ there is no limit on the number of job slots. The default number of job
slots is one, which means serial execution (one thing at a time).
One unpleasant consequence of running several commands simultaneously is
-that output from all of the commands comes when the commands send it, so
-messages from different commands may be interspersed.
+that output generated by the commands appears whenever each command
+sends it, so messages from different commands may be interspersed.
Another problem is that two processes cannot both take input from the
same device; so to make sure that only one command tries to take input
@@ -3057,6 +3057,10 @@ standard input at all if you are using the parallel execution feature; but
if you are not using this feature, then standard input works normally in
all commands.
+Finally, handling recursive @code{make} invocations raises issues. For
+more information on this, see
+@ref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}.
+
If a command fails (is killed by a signal or exits with a nonzero
status), and errors are not ignored for that command
(@pxref{Errors, ,Errors in Commands}),
@@ -3546,13 +3550,22 @@ into @code{MAKEFLAGS}; these options are not passed down.@refill
@cindex recursion, and @code{-j}
@cindex job slots, and recursion
The @samp{-j} option is a special case (@pxref{Parallel, ,Parallel Execution}).
-If you set it to some numeric value, @samp{-j 1} is always put into
-@code{MAKEFLAGS} instead of the value you specified. This is because if
-the @w{@samp{-j}} option were passed down to sub-@code{make}s, you would
-get many more jobs running in parallel than you asked for. If you give
-@samp{-j} with no numeric argument, meaning to run as many jobs as
-possible in parallel, this is passed down, since multiple infinities are
-no more than one.@refill
+If you set it to some numeric value @samp{N} and your operating system
+supports it (most any UNIX system will; others typically won't), the
+parent @code{make} and all the sub-@code{make}s will communicate to
+ensure that there are only @samp{N} jobs running at the same time
+between them all. Note that any job that is marked recursive
+(@pxref{Instead of Execution, ,Instead of Executing the Commands})
+doesn't count against the total jobs (otherwise we could get @samp{N}
+sub-@code{make}s running and have no slots left over for any real work!)
+
+If your operating system doesn't support the above communication, then
+@samp{-j 1} is always put into @code{MAKEFLAGS} instead of the value you
+specified. This is because if the @w{@samp{-j}} option were passed down
+to sub-@code{make}s, you would get many more jobs running in parallel
+than you asked for. If you give @samp{-j} with no numeric argument,
+meaning to run as many jobs as possible in parallel, this is passed
+down, since multiple infinities are no more than one.@refill
If you do not want to pass the other flags down, you must change the
value of @code{MAKEFLAGS}, like this: