version 1.13, 2000/02/02 13:47:48 |
version 1.14, 2000/03/26 16:21:32 |
|
|
* thinking they're out-of-date. |
* thinking they're out-of-date. |
*/ |
*/ |
if (!oodate) { |
if (!oodate) { |
Lst_ForEach (gn->parents, MakeTimeStamp, (ClientData)gn); |
Lst_ForEach(gn->parents, MakeTimeStamp, gn); |
} |
} |
|
|
return (oodate); |
return (oodate); |
|
|
Lst l = (Lst) lp; |
Lst l = (Lst) lp; |
|
|
if (!gn->make && !(gn->type & OP_USE)) { |
if (!gn->make && !(gn->type & OP_USE)) { |
Lst_EnQueue(l, (ClientData)gn); |
Lst_EnQueue(l, gn); |
} |
} |
return (0); |
return (0); |
} |
} |
|
|
* Queue the node up -- any unmade predecessors will |
* Queue the node up -- any unmade predecessors will |
* be dealt with in MakeStartJobs. |
* be dealt with in MakeStartJobs. |
*/ |
*/ |
(void)Lst_EnQueue (toBeMade, (ClientData)pgn); |
Lst_EnQueue(toBeMade, pgn); |
} else if (pgn->unmade < 0) { |
} else if (pgn->unmade < 0) { |
Error ("Graph cycles through %s", pgn->name); |
Error ("Graph cycles through %s", pgn->name); |
} |
} |
|
|
GNode *succ = (GNode *)Lst_Datum(ln); |
GNode *succ = (GNode *)Lst_Datum(ln); |
|
|
if (succ->make && succ->unmade == 0 && succ->made == UNMADE && |
if (succ->make && succ->unmade == 0 && succ->made == UNMADE && |
Lst_Member(toBeMade, (ClientData)succ) == NULL) |
Lst_Member(toBeMade, succ) == NULL) |
{ |
{ |
Lst_EnQueue(toBeMade, (ClientData)succ); |
Lst_EnQueue(toBeMade, succ); |
} |
} |
} |
} |
|
|
|
|
Make_DoAllVar (gn) |
Make_DoAllVar (gn) |
GNode *gn; |
GNode *gn; |
{ |
{ |
Lst_ForEach (gn->children, MakeAddAllSrc, (ClientData) gn); |
Lst_ForEach(gn->children, MakeAddAllSrc, gn); |
|
|
if (!Var_Exists (OODATE, gn)) { |
if (!Var_Exists (OODATE, gn)) { |
Var_Set (OODATE, "", gn); |
Var_Set (OODATE, "", gn); |
|
|
if (gn->made == CYCLE) { |
if (gn->made == CYCLE) { |
Error("Graph cycles through `%s'", gn->name); |
Error("Graph cycles through `%s'", gn->name); |
gn->made = ENDCYCLE; |
gn->made = ENDCYCLE; |
Lst_ForEach(gn->children, MakePrintStatus, (ClientData) &t); |
Lst_ForEach(gn->children, MakePrintStatus, &t); |
gn->made = UNMADE; |
gn->made = UNMADE; |
} else if (gn->made != ENDCYCLE) { |
} else if (gn->made != ENDCYCLE) { |
gn->made = CYCLE; |
gn->made = CYCLE; |
Lst_ForEach(gn->children, MakePrintStatus, (ClientData) &t); |
Lst_ForEach(gn->children, MakePrintStatus, &t); |
} |
} |
} else { |
} else { |
printf ("`%s' not remade because of errors.\n", gn->name); |
printf ("`%s' not remade because of errors.\n", gn->name); |
|
|
* Apply any .USE rules before looking for implicit dependencies |
* Apply any .USE rules before looking for implicit dependencies |
* to make sure everything has commands that should... |
* to make sure everything has commands that should... |
*/ |
*/ |
Lst_ForEach (gn->children, MakeHandleUse, (ClientData)gn); |
Lst_ForEach (gn->children, MakeHandleUse, gn); |
Suff_FindDeps (gn); |
Suff_FindDeps (gn); |
|
|
if (gn->unmade != 0) { |
if (gn->unmade != 0) { |
Lst_ForEach (gn->children, MakeAddChild, (ClientData)examine); |
Lst_ForEach (gn->children, MakeAddChild, examine); |
} else { |
} else { |
Lst_EnQueue(toBeMade, (ClientData)gn); |
Lst_EnQueue(toBeMade, gn); |
} |
} |
} |
} |
} |
} |
|
|
* because some inferior reported an error. |
* because some inferior reported an error. |
*/ |
*/ |
errors = ((errors == 0) && (numNodes != 0)); |
errors = ((errors == 0) && (numNodes != 0)); |
Lst_ForEach(targs, MakePrintStatus, (ClientData) &errors); |
Lst_ForEach(targs, MakePrintStatus, &errors); |
|
|
return (TRUE); |
return (TRUE); |
} |
} |