Lines Matching refs:gn
195 GNode_FprintDetails(FILE *f, const char *prefix, const GNode *gn, in GNode_FprintDetails() argument
198 char *type = GNodeType_ToString(gn->type); in GNode_FprintDetails()
199 char *flags = GNodeFlags_ToString(gn->flags); in GNode_FprintDetails()
202 prefix, GNodeMade_Name(gn->made), type, flags, suffix); in GNode_FprintDetails()
208 GNode_ShouldExecute(GNode *gn) in GNode_ShouldExecute() argument
210 return !((gn->type & OP_MAKE) in GNode_ShouldExecute()
217 GNode_UpdateYoungestChild(GNode *gn, GNode *cgn) in GNode_UpdateYoungestChild() argument
219 if (gn->youngestChild == NULL || cgn->mtime > gn->youngestChild->mtime) in GNode_UpdateYoungestChild()
220 gn->youngestChild = cgn; in GNode_UpdateYoungestChild()
224 IsOODateRegular(GNode *gn) in IsOODateRegular() argument
228 if (gn->youngestChild != NULL) { in IsOODateRegular()
229 if (gn->mtime < gn->youngestChild->mtime) { in IsOODateRegular()
231 GNode_Path(gn->youngestChild)); in IsOODateRegular()
237 if (gn->mtime == 0 && !(gn->type & OP_OPTIONAL)) { in IsOODateRegular()
242 if (gn->type & OP_DOUBLEDEP) { in IsOODateRegular()
263 GNode_IsOODate(GNode *gn) in GNode_IsOODate() argument
271 if (!(gn->type & (OP_JOIN | OP_USE | OP_USEBEFORE | OP_EXEC))) { in GNode_IsOODate()
272 Dir_UpdateMTime(gn, true); in GNode_IsOODate()
274 if (gn->mtime != 0) in GNode_IsOODate()
276 Targ_FmtTime(gn->mtime)); in GNode_IsOODate()
300 if (gn->type & (OP_USE | OP_USEBEFORE)) { in GNode_IsOODate()
307 } else if ((gn->type & OP_LIB) && (gn->mtime == 0 || Arch_IsLib(gn))) { in GNode_IsOODate()
314 oodate = (gn->mtime == 0 || Arch_LibOODate(gn) || in GNode_IsOODate()
315 (gn->youngestChild == NULL && in GNode_IsOODate()
316 (gn->type & OP_DOUBLEDEP))); in GNode_IsOODate()
317 } else if (gn->type & OP_JOIN) { in GNode_IsOODate()
324 gn->flags.childMade ? "" : "not "); in GNode_IsOODate()
325 oodate = gn->flags.childMade; in GNode_IsOODate()
326 } else if (gn->type & (OP_FORCE | OP_EXEC | OP_PHONY)) { in GNode_IsOODate()
333 if (gn->type & OP_FORCE) in GNode_IsOODate()
335 else if (gn->type & OP_PHONY) in GNode_IsOODate()
341 } else if (IsOODateRegular(gn)) { in GNode_IsOODate()
352 if (gn->flags.force) in GNode_IsOODate()
355 oodate = gn->flags.force; in GNode_IsOODate()
360 oodate = meta_oodate(gn, oodate); in GNode_IsOODate()
372 for (ln = gn->parents.first; ln != NULL; ln = ln->next) in GNode_IsOODate()
373 GNode_UpdateYoungestChild(ln->datum, gn); in GNode_IsOODate()
434 GNode *gn = ln->datum; in Make_HandleUse() local
442 if (gn->uname == NULL) in Make_HandleUse()
443 gn->uname = gn->name; in Make_HandleUse()
445 free(gn->name); in Make_HandleUse()
446 gn->name = Var_Subst(gn->uname, pgn, VARE_EVAL); in Make_HandleUse()
448 if (gn->uname != NULL && strcmp(gn->name, gn->uname) != 0) { in Make_HandleUse()
450 GNode *tgn = Targ_FindNode(gn->name); in Make_HandleUse()
452 gn = tgn; in Make_HandleUse()
455 Lst_Append(&pgn->children, gn); in Make_HandleUse()
456 Lst_Append(&gn->parents, pgn); in Make_HandleUse()
502 HandleUseNodes(GNode *gn) in HandleUseNodes() argument
505 for (ln = gn->children.first; ln != NULL; ln = nln) { in HandleUseNodes()
507 MakeHandleUse(ln->datum, gn, ln); in HandleUseNodes()
517 Make_Recheck(GNode *gn) in Make_Recheck() argument
521 Dir_UpdateMTime(gn, true); in Make_Recheck()
522 mtime = gn->mtime; in Make_Recheck()
547 if (!Lst_IsEmpty(gn->commands) || Lst_IsEmpty(gn->children)) in Make_Recheck()
548 gn->mtime = now; in Make_Recheck()
573 if (!GNode_ShouldExecute(gn) || (gn->type & OP_SAVE_CMDS) || in Make_Recheck()
574 (mtime == 0 && !(gn->type & OP_WAIT))) { in Make_Recheck()
576 gn->name, in Make_Recheck()
577 gn->mtime == 0 ? "nonexistent" : Targ_FmtTime(gn->mtime)); in Make_Recheck()
578 gn->mtime = now; in Make_Recheck()
581 gn->name, Targ_FmtTime(gn->mtime)); in Make_Recheck()
613 IsWaitingForOrder(GNode *gn) in IsWaitingForOrder() argument
617 for (ln = gn->order_pred.first; ln != NULL; ln = ln->next) { in IsWaitingForOrder()
634 ScheduleOrderSuccessors(GNode *gn) in ScheduleOrderSuccessors() argument
639 for (ln = gn->order_succ.first; ln != NULL; ln = ln->next) { in ScheduleOrderSuccessors()
811 UnmarkChildren(GNode *gn) in UnmarkChildren() argument
815 for (ln = gn->children.first; ln != NULL; ln = ln->next) { in UnmarkChildren()
908 GNode_SetLocalVars(GNode *gn) in GNode_SetLocalVars() argument
912 if (gn->flags.doneAllsrc) in GNode_SetLocalVars()
915 UnmarkChildren(gn); in GNode_SetLocalVars()
916 for (ln = gn->children.first; ln != NULL; ln = ln->next) in GNode_SetLocalVars()
917 MakeAddAllSrc(ln->datum, gn); in GNode_SetLocalVars()
919 if (!Var_Exists(gn, OODATE)) in GNode_SetLocalVars()
920 Var_Set(gn, OODATE, ""); in GNode_SetLocalVars()
921 if (!Var_Exists(gn, ALLSRC)) in GNode_SetLocalVars()
922 Var_Set(gn, ALLSRC, ""); in GNode_SetLocalVars()
924 if (gn->type & OP_JOIN) in GNode_SetLocalVars()
925 Var_Set(gn, TARGET, GNode_VarAllsrc(gn)); in GNode_SetLocalVars()
926 gn->flags.doneAllsrc = true; in GNode_SetLocalVars()
930 ScheduleRandomly(GNode *gn) in ScheduleRandomly() argument
941 Lst_Append(&toBeMade, gn); in ScheduleRandomly()
948 Lst_InsertBefore(&toBeMade, ln, gn); in ScheduleRandomly()
999 MakeChildren(GNode *gn) in MakeChildren() argument
1004 for (ln = gn->children.first; ln != NULL; ln = ln->next) in MakeChildren()
1019 GNode *gn; in MakeStartJobs() local
1031 gn = Lst_Dequeue(&toBeMade); in MakeStartJobs()
1032 DEBUG2(MAKE, "Examining %s%s...\n", gn->name, gn->cohort_num); in MakeStartJobs()
1034 if (gn->made != REQUESTED) { in MakeStartJobs()
1036 GNodeMade_Name(gn->made)); in MakeStartJobs()
1037 Targ_PrintNode(gn, 2); in MakeStartJobs()
1043 if (gn->checked_seqno == checked_seqno) { in MakeStartJobs()
1048 DEBUG2(MAKE, "already checked %s%s\n", gn->name, in MakeStartJobs()
1049 gn->cohort_num); in MakeStartJobs()
1050 gn->made = DEFERRED; in MakeStartJobs()
1053 gn->checked_seqno = checked_seqno; in MakeStartJobs()
1055 if (gn->unmade != 0) { in MakeStartJobs()
1060 gn->made = DEFERRED; in MakeStartJobs()
1062 MakeChildren(gn); in MakeStartJobs()
1065 DEBUG2(MAKE, "dropped %s%s\n", gn->name, in MakeStartJobs()
1066 gn->cohort_num); in MakeStartJobs()
1070 gn->made = BEINGMADE; in MakeStartJobs()
1071 if (GNode_IsOODate(gn)) { in MakeStartJobs()
1074 return strcmp(gn->name, ".MAIN") != 0; in MakeStartJobs()
1075 GNode_SetLocalVars(gn); in MakeStartJobs()
1076 Job_Make(gn); in MakeStartJobs()
1080 gn->made = UPTODATE; in MakeStartJobs()
1081 if (gn->type & OP_JOIN) { in MakeStartJobs()
1089 GNode_SetLocalVars(gn); in MakeStartJobs()
1091 Make_Update(gn); in MakeStartJobs()
1103 MakePrintStatusOrderNode(GNode *ogn, GNode *gn) in MakePrintStatusOrderNode() argument
1109 gn->name, gn->cohort_num, ogn->name, ogn->cohort_num); in MakePrintStatusOrderNode()
1114 gn->name, gn->cohort_num, ogn->name, ogn->cohort_num); in MakePrintStatusOrderNode()
1120 MakePrintStatusOrder(GNode *gn) in MakePrintStatusOrder() argument
1123 for (ln = gn->order_pred.first; ln != NULL; ln = ln->next) in MakePrintStatusOrder()
1124 MakePrintStatusOrderNode(ln->datum, gn); in MakePrintStatusOrder()
1134 MakePrintStatus(GNode *gn, int *errors) in MakePrintStatus() argument
1136 if (gn->flags.doneCycle) { in MakePrintStatus()
1144 if (gn->unmade == 0) { in MakePrintStatus()
1145 gn->flags.doneCycle = true; in MakePrintStatus()
1146 switch (gn->made) { in MakePrintStatus()
1148 printf("`%s%s' is up to date.\n", gn->name, in MakePrintStatus()
1149 gn->cohort_num); in MakePrintStatus()
1158 printf("`%s%s' was not built", gn->name, in MakePrintStatus()
1159 gn->cohort_num); in MakePrintStatus()
1160 GNode_FprintDetails(stdout, " (", gn, ")!\n"); in MakePrintStatus()
1162 debug_printf("`%s%s' was not built", gn->name, in MakePrintStatus()
1163 gn->cohort_num); in MakePrintStatus()
1164 GNode_FprintDetails(opts.debug_file, " (", gn, in MakePrintStatus()
1168 MakePrintStatusOrder(gn); in MakePrintStatus()
1173 gn->name, gn->cohort_num); in MakePrintStatus()
1177 gn->name, gn->cohort_num); in MakePrintStatus()
1184 gn->name, gn->cohort_num, gn->unmade); in MakePrintStatus()
1189 if (!gn->flags.cycle) { in MakePrintStatus()
1191 gn->flags.cycle = true; in MakePrintStatus()
1192 MakePrintStatusList(&gn->children, errors); in MakePrintStatus()
1194 gn->flags.doneCycle = true; in MakePrintStatus()
1199 gn->flags.doneCycle = true; in MakePrintStatus()
1200 Error("Graph cycles through `%s%s'", gn->name, gn->cohort_num); in MakePrintStatus()
1206 MakePrintStatusList(&gn->children, errors); in MakePrintStatus()
1226 GNode *gn = ln->datum; in ExamineLater() local
1228 if (gn->flags.remake) in ExamineLater()
1230 if (gn->type & (OP_USE | OP_USEBEFORE)) in ExamineLater()
1234 gn->name, gn->cohort_num); in ExamineLater()
1235 Lst_Enqueue(examine, gn); in ExamineLater()
1262 GNode *gn = Lst_Dequeue(&examine); in Make_ExpandUse() local
1264 if (gn->flags.remake) in Make_ExpandUse()
1267 gn->flags.remake = true; in Make_ExpandUse()
1269 gn->name, gn->cohort_num); in Make_ExpandUse()
1271 if (gn->type & OP_DOUBLEDEP) in Make_ExpandUse()
1272 Lst_PrependAll(&examine, &gn->cohorts); in Make_ExpandUse()
1282 if (gn->type & OP_ARCHV) { in Make_ExpandUse()
1283 char *eoa = strchr(gn->name, '('); in Make_ExpandUse()
1284 char *eon = strchr(gn->name, ')'); in Make_ExpandUse()
1289 Var_Set(gn, MEMBER, eoa + 1); in Make_ExpandUse()
1290 Var_Set(gn, ARCHIVE, gn->name); in Make_ExpandUse()
1295 Dir_UpdateMTime(gn, false); in Make_ExpandUse()
1296 Var_Set(gn, TARGET, GNode_Path(gn)); in Make_ExpandUse()
1297 UnmarkChildren(gn); in Make_ExpandUse()
1298 HandleUseNodes(gn); in Make_ExpandUse()
1300 if (!(gn->type & OP_MADE)) in Make_ExpandUse()
1301 Suff_FindDeps(gn); in Make_ExpandUse()
1303 PretendAllChildrenAreMade(gn); in Make_ExpandUse()
1304 if (gn->unmade != 0) { in Make_ExpandUse()
1308 gn->name, gn->cohort_num, gn->unmade); in Make_ExpandUse()
1312 if (gn->unmade != 0) in Make_ExpandUse()
1313 ExamineLater(&examine, &gn->children); in Make_ExpandUse()