diff options
author | Roland McGrath <roland@redhat.com> | 1994-07-05 21:27:09 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 1994-07-05 21:27:09 +0000 |
commit | d2461a24094a27e982594bef823c5b4d88e7e23c (patch) | |
tree | 128b8756fd04998384fffdc51c8e405eaca50fa4 | |
parent | fdea69c5fa30a5780248150f152d4c22a58739e8 (diff) | |
download | gunmake-d2461a24094a27e982594bef823c5b4d88e7e23c.tar.gz |
(Goals): Say that only first target in first rule is default goal.
(Archive Pitfalls): New node.
-rw-r--r-- | make.texinfo | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/make.texinfo b/make.texinfo index 984eaa4..c088e5f 100644 --- a/make.texinfo +++ b/make.texinfo @@ -8,10 +8,10 @@ @c FSF publishers: format makebook.texi instead of using this file directly. @set RCSID $Id$ -@set EDITION 0.45 -@set VERSION 3.71 Beta -@set UPDATED 11 May 1994 -@set UPDATE-MONTH May 1994 +@set EDITION 0.46 +@set VERSION 3.72 Beta +@set UPDATED 5 July 1994 +@set UPDATE-MONTH July 1994 @c finalout @@ -5581,7 +5581,9 @@ dependencies of goals, or dependencies of dependencies of goals, etc. By default, the goal is the first target in the makefile (not counting targets that start with a period). Therefore, makefiles are usually written so that the first target is for compiling the entire program or -programs they describe. +programs they describe. If the first rule in the makefile has several +targets, only the first target in the rule becomes the default goal, not +the whole list. You can specify a different goal or goals with arguments to @code{make}. Use the name of the goal as an argument. If you specify several goals, @@ -7620,6 +7622,7 @@ main use is as subroutine libraries for linking. @menu * Archive Members:: Archive members as targets. * Archive Update:: The implicit rule for archive member targets. +* Archive Pitfalls:: Dangers to watch out for when using archives. * Archive Suffix Rules:: You can write a special kind of suffix rule for updating archives. @end menu @@ -7676,7 +7679,7 @@ example, @w{@samp{foolib(*.o)}} expands to all existing members of the @file{foolib} archive whose names end in @samp{.o}; perhaps @samp{@w{foolib(hack.o)} @w{foolib(kludge.o)}}. -@node Archive Update, Archive Suffix Rules, Archive Members, Archives +@node Archive Update @section Implicit Rule for Archive Member Targets Recall that a target that looks like @file{@var{a}(@var{m})} stands for the @@ -7766,7 +7769,24 @@ files into the archive, as described in the preceding section. This is not necessary when using the GNU @code{ar} program, which updates the @file{__.SYMDEF} member automatically. -@node Archive Suffix Rules, , Archive Update, Archives +@node Archive Pitfalls +@section Dangers When Using Archives +@cindex archive, and parallel execution +@cindex parallel execution, and archive update +@cindex archive, and @code{-j} +@cindex @code{-j}, and archive update + +It is important to be careful when using parallel execution (the +@code{-j} switch; @pxref{Parallel, ,Parallel Execution}) and archives. +If multiple @code{ar} commands run at the same time on the same archive +file, they will not know about each other and can corrupt the file. + +Possibly a future version of @code{make} will provide a mechanism to +circumvent this problem by serializing all commands that operate on the +same archive file. But for the time being, you must either write your +makefiles to avoid this problem in some other way, or not use @code{-j}. + +@node Archive Suffix Rules, Archive Update, Archive Pitfalls, Archives @section Suffix Rules for Archive Files @cindex suffix rule, for archive @cindex archive, suffix rule for |