Formerly main.c.~62~

This commit is contained in:
Roland McGrath 1992-11-16 23:59:17 +00:00
parent 45649948db
commit 4125f8f08e

54
main.c
View file

@ -769,39 +769,37 @@ main (argc, argv, envp)
{ {
register struct file *f = d->file; register struct file *f = d->file;
if (f->double_colon) if (f->double_colon)
{ do
do {
{ if (f->deps == 0 && f->cmds != 0)
if (f->deps == 0 && f->cmds != 0) {
{ /* This makefile is a :: target with commands, but
/* This makefile is a :: target with commands, but no dependencies. So, it will always be remade.
no dependencies. So, it will always be remade. This might well cause an infinite loop, so don't
This might well cause an infinite loop, so don't try to remake it. (This will only happen if
try to remake it. (This will only happen if your makefiles are written exceptionally
your makefiles are written exceptionally stupidly; but if you work for Athena, that's how
stupidly; but if you work for Athena, that's how you write your makefiles.) */
you write your makefiles.) */
if (debug_flag) if (debug_flag)
printf ("Makefile `%s' might loop; not remaking it.\n", printf ("Makefile `%s' might loop; not remaking it.\n",
f->name); f->name);
if (last == 0) if (last == 0)
read_makefiles = d->next; read_makefiles = d->next;
else else
last->next = d->next; last->next = d->next;
/* Free the storage. */ /* Free the storage. */
free ((char *) d); free ((char *) d);
d = last == 0 ? 0 : last->next; d = last == 0 ? 0 : last->next;
break; break;
} }
f = f->prev; f = f->prev;
} }
while (f != NULL); while (f != NULL);
}
if (f == NULL || !f->double_colon) if (f == NULL || !f->double_colon)
{ {
if (makefile_mtimes == 0) if (makefile_mtimes == 0)