version 1.77, 2012/09/21 07:55:20 |
version 1.78, 2012/11/24 11:03:45 |
|
|
*/ |
*/ |
if (gn == pgn) |
if (gn == pgn) |
return; |
return; |
|
/* handle .USE right away */ |
|
if (gn->type & OP_USE) { |
|
Make_HandleUse(gn, pgn); |
|
return; |
|
} |
|
|
look_harder_for_target(gn); |
look_harder_for_target(gn); |
|
|
if (pgn != NULL && is_sibling(gn, pgn)) |
if (pgn != NULL && is_sibling(gn, pgn)) |
|
|
} while (sib != gn); |
} while (sib != gn); |
} |
} |
|
|
if (gn->type & OP_USE) { |
switch(gn->built_status) { |
Make_HandleUse(gn, pgn); |
case UNKNOWN: |
} else if (gn->built_status == UNKNOWN) { |
|
/* First mark ourselves to be made, then apply whatever |
/* First mark ourselves to be made, then apply whatever |
* transformations the suffix module thinks are necessary. |
* transformations the suffix module thinks are necessary. |
* Once that's done, we can descend and make all our children. |
* Once that's done, we can descend and make all our children. |
|
|
print_errors(); |
print_errors(); |
exit(1); |
exit(1); |
} |
} |
} else if (gn->built_status == ERROR) |
break; |
|
case ERROR: |
/* Already had an error when making this beastie. Tell the |
/* Already had an error when making this beastie. Tell the |
* parent to abort. */ |
* parent to abort. */ |
pgn->must_make = false; |
pgn->must_make = false; |
else { |
break; |
switch (gn->built_status) { |
case BEINGMADE: |
case BEINGMADE: |
Error("Graph cycles through %s", gn->name); |
Error("Graph cycles through %s", gn->name); |
gn->built_status = ERROR; |
gn->built_status = ERROR; |
pgn->must_make = false; |
pgn->must_make = false; |
break; |
break; |
case MADE: |
case MADE: |
if ((gn->type & OP_EXEC) == 0) { |
if ((gn->type & OP_EXEC) == 0) { |
pgn->childMade = true; |
pgn->childMade = true; |
Make_TimeStamp(pgn, gn); |
Make_TimeStamp(pgn, gn); |
|
} |
|
break; |
|
case UPTODATE: |
|
if ((gn->type & OP_EXEC) == 0) |
|
Make_TimeStamp(pgn, gn); |
|
break; |
|
default: |
|
break; |
|
} |
} |
|
break; |
|
case UPTODATE: |
|
if ((gn->type & OP_EXEC) == 0) |
|
Make_TimeStamp(pgn, gn); |
|
break; |
|
default: |
|
break; |
} |
} |
} |
} |
|
|