diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | doc/make.texi | 15 | ||||
-rw-r--r-- | remake.c | 4 |
3 files changed, 24 insertions, 8 deletions
@@ -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) @@ -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)) |