summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--doc/make.texi15
-rw-r--r--remake.c4
3 files changed, 24 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 0a6c5b2..8c567c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,8 +3,21 @@
* function.c (windows32_openpipe): Update envp after calling
sync_Path_environment.
+2009-08-02 Paul Smith <psmith@gnu.org>
+
+ * remake.c (notice_finished_file): Ensure file->cmds is not null
+ before looping through them. Fixes Savannah bug #21824.
+
+ * doc/make.texi (Wildcard Examples): Clarify when objects is
+ wildcard-expanded. Fixes Savannah bug #24509. Patch by Martin Dorey.
+ (Include): Clarify the behavior of -include.
+ Fixes Savannah bug #18963.
+
2009-08-01 Paul Smith <psmith@gnu.org>
+ * doc/make.texi (Catalogue of Rules): Clarify where -c, -F,
+ etc. come on the command line. Fixes Savannah bug #27093.
+
* expand.c (expand_argument): If the argument is large enough use
xmalloc() instead of alloca(). Fixes Savannah bug #27143.
diff --git a/doc/make.texi b/doc/make.texi
index f73de46..c2ae06a 100644
--- a/doc/make.texi
+++ b/doc/make.texi
@@ -1171,7 +1171,7 @@ Only after it has tried to find a way to remake a makefile and failed,
will @code{make} diagnose the missing makefile as a fatal error.
If you want @code{make} to simply ignore a makefile which does not exist
-and cannot be remade, with no error message, use the @w{@code{-include}}
+or cannot be remade, with no error message, use the @w{@code{-include}}
directive instead of @code{include}, like this:
@example
@@ -1179,7 +1179,10 @@ directive instead of @code{include}, like this:
@end example
This acts like @code{include} in every way except that there is no
-error (not even a warning) if any of the @var{filenames} do not exist.
+error (not even a warning) if any of the @var{filenames} (or any
+prerequisites of any of the @var{filenames}) do not exist or cannot be
+remade.
+
For compatibility with some other @code{make} implementations,
@code{sinclude} is another name for @w{@code{-include}}.
@@ -1966,9 +1969,11 @@ objects = *.o
@noindent
then the value of the variable @code{objects} is the actual string
-@samp{*.o}. However, if you use the value of @code{objects} in a target,
-prerequisite, or recipe, wildcard expansion will take place at that time.
-To set @code{objects} to the expansion, instead use:
+@samp{*.o}. However, if you use the value of @code{objects} in a
+target or prerequisite, wildcard expansion will take place there. If
+you use the value of @code{objects} in a recipe, the shell may perform
+wildcard expansion when the recipe runs. To set @code{objects} to the
+expansion, instead use:
@example
objects := $(wildcard *.o)
diff --git a/remake.c b/remake.c
index 4a4fb73..4cf8bd7 100644
--- a/remake.c
+++ b/remake.c
@@ -82,7 +82,6 @@ int
update_goal_chain (struct dep *goals)
{
int t = touch_flag, q = question_flag, n = just_print_flag;
- unsigned int j = job_slots;
int status = -1;
#define MTIME(file) (rebuilding_makefiles ? file_mtime_no_search (file) \
@@ -263,7 +262,6 @@ update_goal_chain (struct dep *goals)
touch_flag = t;
question_flag = q;
just_print_flag = n;
- job_slots = j;
}
return status;
@@ -872,7 +870,7 @@ notice_finished_file (struct file *file)
really check the target's mtime again. Otherwise, assume the target
would have been updated. */
- if (question_flag || just_print_flag || touch_flag)
+ if (question_flag || just_print_flag || touch_flag && file->cmds != 0)
{
for (i = file->cmds->ncommand_lines; i > 0; --i)
if (! (file->cmds->lines_flags[i-1] & COMMANDS_RECURSE))