diff --git a/commands.c b/commands.c index 1cfe0cff..cd711781 100644 --- a/commands.c +++ b/commands.c @@ -409,8 +409,8 @@ delete_child_targets (child) if (child->deleted) return; - /* Delete the file unless it's precious. */ - if (!child->file->precious + /* Delete the file unless it's precious or not actually a file (phony). */ + if (!child->file->precious && !child->file->phony && stat (child->file->name, &st) == 0 && S_ISREG (st.st_mode) && (time_t) st.st_mtime != child->file->last_mtime) @@ -423,7 +423,7 @@ delete_child_targets (child) /* Also remove any non-precious targets listed in the `also_make' member. */ for (d = child->file->also_make; d != 0; d = d->next) - if (!d->file->precious) + if (!d->file->precious && !d->file->phony) if (stat (d->file->name, &st) == 0 && S_ISREG (st.st_mode) && (time_t) st.st_mtime != d->file->last_mtime)