+2000-02-09 Tim Magill <magill@gate.net>
+ Started branch for cleaning up internal make structure regarding
+ recursion paths. Branch name is filedef-cleanup and was started
+ from a point on the mainline at filedef-cleanup-base. either tags
+ are suitable for cvs commands.
+
+ * file.c, filedef.h, main.c, remake.c (updated): Removed updated
+ member from 'struct filedef'. filedef->command_state fully
+ contains the same information and more.
+
+
2000-02-07 Paul D. Smith <psmith@gnu.org>
For += target-specific variables we need to remember which
MERGE (precious);
MERGE (tried_implicit);
MERGE (updating);
- MERGE (updated);
MERGE (is_target);
MERGE (cmd_target);
MERGE (phony);
file_timestamp_sprintf (buf, f->last_mtime);
printf (_("# Last modified %s\n"), buf);
}
- puts (f->updated
+ puts ((f->command_state == cs_finished)
? _("# File has been updated.") : _("# File has not been updated."));
switch (f->command_state)
{
for implicit rule for making
this file; don't search again. */
unsigned int updating:1; /* Nonzero while updating deps of this file */
- unsigned int updated:1; /* Nonzero if this file has been remade. */
unsigned int is_target:1; /* Nonzero if file is described as target. */
unsigned int cmd_target:1; /* Nonzero if file was given on cmd line. */
unsigned int phony:1; /* Nonzero if this is a phony file
/* Make sure the temporary file will not be remade. */
stdin_nm = savestring (name, sizeof (name) -1);
f = enter_file (stdin_nm);
- f->updated = 1;
f->update_status = 0;
f->command_state = cs_finished;
/* Can't be intermediate, or it'll be removed too early for
{
f = enter_command_line_file (*p);
f->last_mtime = f->mtime_before_update = (FILE_TIMESTAMP) 1;
- f->updated = 1;
f->update_status = 0;
f->command_state = cs_finished;
}
again to print an error. */
d->file->considered = 0;
- if (d->file->updated)
+ if (d->file->command_state == cs_finished)
{
/* This makefile was updated. */
if (d->file->update_status == 0)
STATUS as it is if no updating was done. */
stop = 0;
- if ((x != 0 || file->updated) && status < 1)
+ if ((x != 0 || (file->command_state == cs_finished)) && status < 1)
{
if (file->update_status != 0)
{
FILE_TIMESTAMP mtime = MTIME (file);
check_renamed (file);
- if (file->updated && g->changed &&
+ if ((file->command_state == cs_finished) && g->changed &&
mtime != file->mtime_before_update)
{
/* Updating was done. If this is a makefile and
/* Keep track if any double-colon entry is not finished.
When they are all finished, the goal is finished. */
- any_not_updated |= !file->updated;
+ any_not_updated |= !(file->command_state == cs_finished);
if (stop)
break;
DBF (DB_VERBOSE, _("Considering target file `%s'.\n"));
- if (file->updated)
+ if (file->command_state == cs_finished)
{
if (file->update_status > 0)
{
break;
}
- file->updated = 1;
return file->update_status;
}
\f
int ran = file->command_state == cs_running;
file->command_state = cs_finished;
- file->updated = 1;
if (touch_flag
/* The update status will be:
for (d = file->also_make; d != 0; d = d->next)
{
d->file->command_state = cs_finished;
- d->file->updated = 1;
d->file->update_status = file->update_status;
if (ran && !d->file->phony)
static FILE_TIMESTAMP now = 0;
if (!clock_skew_detected
&& mtime != (FILE_TIMESTAMP)-1 && mtime > now
- && !file->updated)
+ && !(file->command_state == cs_finished))
{
/* This file's time appears to be in the future.
Update our concept of the present, and compare again. */