mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-27 23:06:53 +00:00
If a file declared .INTERMEDIATE already exists before make starts, we
won't delete it--this is how normal intermediate files behave, too.
This commit is contained in:
parent
3d1cdf4106
commit
a2ea1bd27f
2 changed files with 22 additions and 1 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
1999-04-03 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* remake.c (f_mtime): If: a) we found a file and b) we didn't
|
||||
create it and c) it's not marked as an implicit target and d) it
|
||||
is marked as an intermediate target, then it was so marked due to
|
||||
an .INTERMEDIATE special target, but it already existed in the
|
||||
directory. In this case, unset the intermediate flag so we won't
|
||||
delete it when make is done. It feels like it would be cleaner to
|
||||
put this check in update_file_1() but I worry it'll get missed...
|
||||
|
||||
1999-04-01 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* job.c (construct_command_argv_internal): Use bcopy() to copy
|
||||
|
|
13
remake.c
13
remake.c
|
@ -1140,11 +1140,22 @@ f_mtime (file, search)
|
|||
/* Store the mtime into all the entries for this file. */
|
||||
if (file->double_colon)
|
||||
file = file->double_colon;
|
||||
|
||||
do
|
||||
{
|
||||
/* If this file is not implicit but it is intermediate then it was
|
||||
made so by the .INTERMEDIATE target. If this file has never
|
||||
been built by us but was found now, it existed before make
|
||||
started. So, turn off the intermediate bit so make doesn't
|
||||
delete it, since it didn't create it. */
|
||||
if (mtime != (FILE_TIMESTAMP)-1 && file->command_state == cs_not_started
|
||||
&& !file->tried_implicit && file->intermediate)
|
||||
file->intermediate = 0;
|
||||
|
||||
file->last_mtime = mtime;
|
||||
file = file->prev;
|
||||
} while (file != 0);
|
||||
}
|
||||
while (file != 0);
|
||||
|
||||
return mtime;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue