version 1.13, 2007/11/06 21:12:23 |
version 1.14, 2007/11/10 12:51:40 |
|
|
|
|
Varq_Append(ALLSRC_INDEX, target, parent); |
Varq_Append(ALLSRC_INDEX, target, parent); |
if (parent->type & OP_JOIN) { |
if (parent->type & OP_JOIN) { |
if (child->made == MADE) |
if (child->built_status == MADE) |
Varq_Append(OODATE_INDEX, target, parent); |
Varq_Append(OODATE_INDEX, target, parent); |
} else if (is_strictly_before(parent->mtime, child->mtime) || |
} else if (is_strictly_before(parent->mtime, child->mtime) || |
(!is_strictly_before(child->mtime, now) && |
(!is_strictly_before(child->mtime, now) && |
child->made == MADE)) { |
child->built_status == MADE)) { |
/* |
/* |
* It goes in the OODATE variable if the parent is |
* It goes in the OODATE variable if the parent is |
* younger than the child or if the child has been |
* younger than the child or if the child has been |
|
|
*----------------------------------------------------------------------- |
*----------------------------------------------------------------------- |
* setup_and_run_command -- |
* setup_and_run_command -- |
* Execute the next command for a target. If the command returns an |
* Execute the next command for a target. If the command returns an |
* error, the node's made field is set to ERROR and creation stops. |
* error, the node's built_status field is set to ERROR and creation stops. |
* |
* |
* Results: |
* Results: |
* 0 in case of error, 1 if ok. |
* 0 in case of error, 1 if ok. |
* |
* |
* Side Effects: |
* Side Effects: |
* The node's 'made' field may be set to ERROR. |
* The node's 'built_status' field may be set to ERROR. |
*----------------------------------------------------------------------- |
*----------------------------------------------------------------------- |
*/ |
*/ |
static int |
static int |
|
|
|
|
if (!WIFEXITED(reason) || status != 0) { |
if (!WIFEXITED(reason) || status != 0) { |
if (errCheck) { |
if (errCheck) { |
gn->made = ERROR; |
gn->built_status = ERROR; |
if (keepgoing) |
if (keepgoing) |
/* Abort the current target, |
/* Abort the current target, |
* but let others continue. */ |
* but let others continue. */ |
|
|
LstNode ln, nln; |
LstNode ln, nln; |
|
|
if (gn != NULL && (gn->type & OP_DUMMY) == 0) { |
if (gn != NULL && (gn->type & OP_DUMMY) == 0) { |
gn->made = MADE; |
gn->built_status = MADE; |
for (ln = Lst_First(&gn->commands); ln != NULL; ln = nln) { |
for (ln = Lst_First(&gn->commands); ln != NULL; ln = nln) { |
nln = Lst_Adv(ln); |
nln = Lst_Adv(ln); |
if (setup_and_run_command(Lst_Datum(ln), gn, |
if (setup_and_run_command(Lst_Datum(ln), gn, |
|
|
} |
} |
if (got_signal && !parallel) |
if (got_signal && !parallel) |
handle_compat_interrupts(gn); |
handle_compat_interrupts(gn); |
return gn->made; |
return gn->built_status; |
} else |
} else |
return NOSUCHNODE; |
return NOSUCHNODE; |
} |
} |