version 1.12, 1999/12/18 21:58:07 |
version 1.13, 2000/02/02 13:47:48 |
|
|
if ((gn->type & (OP_JOIN|OP_USE|OP_EXEC)) == 0) { |
if ((gn->type & (OP_JOIN|OP_USE|OP_EXEC)) == 0) { |
(void) Dir_MTime (gn); |
(void) Dir_MTime (gn); |
if (DEBUG(MAKE)) { |
if (DEBUG(MAKE)) { |
if (gn->mtime != 0) { |
if (gn->mtime != OUT_OF_DATE) { |
printf ("modified %s...", Targ_FmtTime(gn->mtime)); |
printf ("modified %s...", Targ_FmtTime(gn->mtime)); |
} else { |
} else { |
printf ("non-existent..."); |
printf ("non-existent..."); |
|
|
*/ |
*/ |
|
|
oodate = Arch_LibOODate (gn) || |
oodate = Arch_LibOODate (gn) || |
((gn->cmtime == 0) && (gn->type & OP_DOUBLEDEP)); |
(gn->cmtime == OUT_OF_DATE && (gn->type & OP_DOUBLEDEP)); |
} else if (gn->type & OP_JOIN) { |
} else if (gn->type & OP_JOIN) { |
/* |
/* |
* A target with the .JOIN attribute is only considered |
* A target with the .JOIN attribute is only considered |
|
|
} |
} |
} |
} |
oodate = TRUE; |
oodate = TRUE; |
} else if ((gn->mtime < gn->cmtime) || |
} else if (gn->mtime < gn->cmtime || |
((gn->cmtime == 0) && |
(gn->cmtime == OUT_OF_DATE && |
((gn->mtime==0) || (gn->type & OP_DOUBLEDEP)))) |
(gn->mtime == OUT_OF_DATE || (gn->type & OP_DOUBLEDEP)))) |
{ |
{ |
/* |
/* |
* A node whose modification time is less than that of its |
* A node whose modification time is less than that of its |
* youngest child or that has no children (cmtime == 0) and |
* youngest child or that has no children (cmtime == OUT_OF_DATE) and |
* either doesn't exist (mtime == 0) or was the object of a |
* either doesn't exist (mtime == OUT_OF_DATE) or was the object of a |
* :: operator is out-of-date. Why? Because that's the way Make does |
* :: operator is out-of-date. Why? Because that's the way Make does |
* it. |
* it. |
*/ |
*/ |
if (DEBUG(MAKE)) { |
if (DEBUG(MAKE)) { |
if (gn->mtime < gn->cmtime) { |
if (gn->mtime < gn->cmtime) { |
printf("modified before source..."); |
printf("modified before source..."); |
} else if (gn->mtime == 0) { |
} else if (gn->mtime == OUT_OF_DATE) { |
printf("non-existent and no sources..."); |
printf("non-existent and no sources..."); |
} else { |
} else { |
printf(":: operator and no sources..."); |
printf(":: operator and no sources..."); |
|
|
* the target is made now. Otherwise archives with ... rules |
* the target is made now. Otherwise archives with ... rules |
* don't work! |
* don't work! |
*/ |
*/ |
if (noExecute || (cgn->type & OP_SAVE_CMDS) || Dir_MTime(cgn) == 0) { |
if (noExecute || (cgn->type & OP_SAVE_CMDS) || Dir_MTime(cgn) == FALSE) { |
cgn->mtime = now; |
cgn->mtime = now; |
} |
} |
if (DEBUG(MAKE)) { |
if (DEBUG(MAKE)) { |