Lines Matching refs:gn
131 make_abort(GNode *gn, int lineno) in make_abort() argument
135 Targ_PrintNode(gn, 2); in make_abort()
204 GNode_FprintDetails(FILE *f, const char *prefix, const GNode *gn, in GNode_FprintDetails() argument
212 GNodeMade_Name(gn->made), in GNode_FprintDetails()
213 GNodeType_ToString(gn->type, &type_freeIt), in GNode_FprintDetails()
214 GNodeFlags_ToString(gn->flags, &flags_freeIt), in GNode_FprintDetails()
221 GNode_ShouldExecute(GNode *gn) in GNode_ShouldExecute() argument
223 return !((gn->type & OP_MAKE) in GNode_ShouldExecute()
230 GNode_UpdateYoungestChild(GNode *gn, GNode *cgn) in GNode_UpdateYoungestChild() argument
232 if (gn->youngestChild == NULL || cgn->mtime > gn->youngestChild->mtime) in GNode_UpdateYoungestChild()
233 gn->youngestChild = cgn; in GNode_UpdateYoungestChild()
237 IsOODateRegular(GNode *gn) in IsOODateRegular() argument
241 if (gn->youngestChild != NULL) { in IsOODateRegular()
242 if (gn->mtime < gn->youngestChild->mtime) { in IsOODateRegular()
244 GNode_Path(gn->youngestChild)); in IsOODateRegular()
250 if (gn->mtime == 0 && !(gn->type & OP_OPTIONAL)) { in IsOODateRegular()
255 if (gn->type & OP_DOUBLEDEP) { in IsOODateRegular()
276 GNode_IsOODate(GNode *gn) in GNode_IsOODate() argument
284 if (!(gn->type & (OP_JOIN | OP_USE | OP_USEBEFORE | OP_EXEC))) { in GNode_IsOODate()
285 Dir_UpdateMTime(gn, true); in GNode_IsOODate()
287 if (gn->mtime != 0) in GNode_IsOODate()
289 Targ_FmtTime(gn->mtime)); in GNode_IsOODate()
313 if (gn->type & (OP_USE | OP_USEBEFORE)) { in GNode_IsOODate()
320 } else if ((gn->type & OP_LIB) && (gn->mtime == 0 || Arch_IsLib(gn))) { in GNode_IsOODate()
327 oodate = (gn->mtime == 0 || Arch_LibOODate(gn) || in GNode_IsOODate()
328 (gn->youngestChild == NULL && in GNode_IsOODate()
329 (gn->type & OP_DOUBLEDEP))); in GNode_IsOODate()
330 } else if (gn->type & OP_JOIN) { in GNode_IsOODate()
337 gn->flags.childMade ? "" : "not "); in GNode_IsOODate()
338 oodate = gn->flags.childMade; in GNode_IsOODate()
339 } else if (gn->type & (OP_FORCE | OP_EXEC | OP_PHONY)) { in GNode_IsOODate()
346 if (gn->type & OP_FORCE) { in GNode_IsOODate()
348 } else if (gn->type & OP_PHONY) { in GNode_IsOODate()
355 } else if (IsOODateRegular(gn)) { in GNode_IsOODate()
366 if (gn->flags.force) in GNode_IsOODate()
369 oodate = gn->flags.force; in GNode_IsOODate()
374 oodate = meta_oodate(gn, oodate); in GNode_IsOODate()
386 for (ln = gn->parents.first; ln != NULL; ln = ln->next) in GNode_IsOODate()
387 GNode_UpdateYoungestChild(ln->datum, gn); in GNode_IsOODate()
448 GNode *gn = ln->datum; in Make_HandleUse() local
456 if (gn->uname == NULL) { in Make_HandleUse()
457 gn->uname = gn->name; in Make_HandleUse()
459 free(gn->name); in Make_HandleUse()
461 (void)Var_Subst(gn->uname, pgn, VARE_WANTRES, &gn->name); in Make_HandleUse()
463 if (gn->uname != NULL && strcmp(gn->name, gn->uname) != 0) { in Make_HandleUse()
465 GNode *tgn = Targ_FindNode(gn->name); in Make_HandleUse()
467 gn = tgn; in Make_HandleUse()
470 Lst_Append(&pgn->children, gn); in Make_HandleUse()
471 Lst_Append(&gn->parents, pgn); in Make_HandleUse()
517 HandleUseNodes(GNode *gn) in HandleUseNodes() argument
520 for (ln = gn->children.first; ln != NULL; ln = nln) { in HandleUseNodes()
522 MakeHandleUse(ln->datum, gn, ln); in HandleUseNodes()
532 Make_Recheck(GNode *gn) in Make_Recheck() argument
536 Dir_UpdateMTime(gn, true); in Make_Recheck()
537 mtime = gn->mtime; in Make_Recheck()
562 if (!Lst_IsEmpty(gn->commands) || Lst_IsEmpty(gn->children)) { in Make_Recheck()
563 gn->mtime = now; in Make_Recheck()
589 if (!GNode_ShouldExecute(gn) || (gn->type & OP_SAVE_CMDS) || in Make_Recheck()
590 (mtime == 0 && !(gn->type & OP_WAIT))) { in Make_Recheck()
592 gn->name, in Make_Recheck()
593 gn->mtime == 0 ? "nonexistent" : Targ_FmtTime(gn->mtime)); in Make_Recheck()
594 gn->mtime = now; in Make_Recheck()
597 gn->name, Targ_FmtTime(gn->mtime)); in Make_Recheck()
629 IsWaitingForOrder(GNode *gn) in IsWaitingForOrder() argument
633 for (ln = gn->order_pred.first; ln != NULL; ln = ln->next) { in IsWaitingForOrder()
650 ScheduleOrderSuccessors(GNode *gn) in ScheduleOrderSuccessors() argument
655 for (ln = gn->order_succ.first; ln != NULL; ln = ln->next) in ScheduleOrderSuccessors()
823 UnmarkChildren(GNode *gn) in UnmarkChildren() argument
827 for (ln = gn->children.first; ln != NULL; ln = ln->next) { in UnmarkChildren()
920 GNode_SetLocalVars(GNode *gn) in GNode_SetLocalVars() argument
924 if (gn->flags.doneAllsrc) in GNode_SetLocalVars()
927 UnmarkChildren(gn); in GNode_SetLocalVars()
928 for (ln = gn->children.first; ln != NULL; ln = ln->next) in GNode_SetLocalVars()
929 MakeAddAllSrc(ln->datum, gn); in GNode_SetLocalVars()
931 if (!Var_Exists(gn, OODATE)) in GNode_SetLocalVars()
932 Var_Set(gn, OODATE, ""); in GNode_SetLocalVars()
933 if (!Var_Exists(gn, ALLSRC)) in GNode_SetLocalVars()
934 Var_Set(gn, ALLSRC, ""); in GNode_SetLocalVars()
936 if (gn->type & OP_JOIN) in GNode_SetLocalVars()
937 Var_Set(gn, TARGET, GNode_VarAllsrc(gn)); in GNode_SetLocalVars()
938 gn->flags.doneAllsrc = true; in GNode_SetLocalVars()
1000 MakeChildren(GNode *gn) in MakeChildren() argument
1005 for (ln = gn->children.first; ln != NULL; ln = ln->next) in MakeChildren()
1020 GNode *gn; in MakeStartJobs() local
1032 gn = Lst_Dequeue(&toBeMade); in MakeStartJobs()
1033 DEBUG2(MAKE, "Examining %s%s...\n", gn->name, gn->cohort_num); in MakeStartJobs()
1035 if (gn->made != REQUESTED) { in MakeStartJobs()
1040 DEBUG1(MAKE, "state %d\n", gn->made); in MakeStartJobs()
1042 make_abort(gn, __LINE__); in MakeStartJobs()
1045 if (gn->checked_seqno == checked_seqno) { in MakeStartJobs()
1050 DEBUG2(MAKE, "already checked %s%s\n", gn->name, in MakeStartJobs()
1051 gn->cohort_num); in MakeStartJobs()
1052 gn->made = DEFERRED; in MakeStartJobs()
1055 gn->checked_seqno = checked_seqno; in MakeStartJobs()
1057 if (gn->unmade != 0) { in MakeStartJobs()
1062 gn->made = DEFERRED; in MakeStartJobs()
1064 MakeChildren(gn); in MakeStartJobs()
1067 DEBUG2(MAKE, "dropped %s%s\n", gn->name, in MakeStartJobs()
1068 gn->cohort_num); in MakeStartJobs()
1072 gn->made = BEINGMADE; in MakeStartJobs()
1073 if (GNode_IsOODate(gn)) { in MakeStartJobs()
1077 GNode_SetLocalVars(gn); in MakeStartJobs()
1078 Job_Make(gn); in MakeStartJobs()
1082 gn->made = UPTODATE; in MakeStartJobs()
1083 if (gn->type & OP_JOIN) { in MakeStartJobs()
1091 GNode_SetLocalVars(gn); in MakeStartJobs()
1093 Make_Update(gn); in MakeStartJobs()
1105 MakePrintStatusOrderNode(GNode *ogn, GNode *gn) in MakePrintStatusOrderNode() argument
1111 gn->name, gn->cohort_num, ogn->name, ogn->cohort_num); in MakePrintStatusOrderNode()
1116 gn->name, gn->cohort_num, ogn->name, ogn->cohort_num); in MakePrintStatusOrderNode()
1122 MakePrintStatusOrder(GNode *gn) in MakePrintStatusOrder() argument
1125 for (ln = gn->order_pred.first; ln != NULL; ln = ln->next) in MakePrintStatusOrder()
1126 MakePrintStatusOrderNode(ln->datum, gn); in MakePrintStatusOrder()
1136 MakePrintStatus(GNode *gn, int *errors) in MakePrintStatus() argument
1138 if (gn->flags.doneCycle) { in MakePrintStatus()
1146 if (gn->unmade == 0) { in MakePrintStatus()
1147 gn->flags.doneCycle = true; in MakePrintStatus()
1148 switch (gn->made) { in MakePrintStatus()
1150 printf("`%s%s' is up to date.\n", gn->name, in MakePrintStatus()
1151 gn->cohort_num); in MakePrintStatus()
1160 printf("`%s%s' was not built", gn->name, in MakePrintStatus()
1161 gn->cohort_num); in MakePrintStatus()
1162 GNode_FprintDetails(stdout, " (", gn, ")!\n"); in MakePrintStatus()
1164 debug_printf("`%s%s' was not built", gn->name, in MakePrintStatus()
1165 gn->cohort_num); in MakePrintStatus()
1166 GNode_FprintDetails(opts.debug_file, " (", gn, in MakePrintStatus()
1170 MakePrintStatusOrder(gn); in MakePrintStatus()
1175 gn->name, gn->cohort_num); in MakePrintStatus()
1179 gn->name, gn->cohort_num); in MakePrintStatus()
1186 gn->name, gn->cohort_num, gn->unmade); in MakePrintStatus()
1191 if (!gn->flags.cycle) { in MakePrintStatus()
1193 gn->flags.cycle = true; in MakePrintStatus()
1194 MakePrintStatusList(&gn->children, errors); in MakePrintStatus()
1196 gn->flags.doneCycle = true; in MakePrintStatus()
1201 gn->flags.doneCycle = true; in MakePrintStatus()
1202 Error("Graph cycles through `%s%s'", gn->name, gn->cohort_num); in MakePrintStatus()
1208 MakePrintStatusList(&gn->children, errors); in MakePrintStatus()
1228 GNode *gn = ln->datum; in ExamineLater() local
1230 if (gn->flags.remake) in ExamineLater()
1232 if (gn->type & (OP_USE | OP_USEBEFORE)) in ExamineLater()
1236 gn->name, gn->cohort_num); in ExamineLater()
1237 Lst_Enqueue(examine, gn); in ExamineLater()
1264 GNode *gn = Lst_Dequeue(&examine); in Make_ExpandUse() local
1266 if (gn->flags.remake) in Make_ExpandUse()
1269 gn->flags.remake = true; in Make_ExpandUse()
1271 gn->name, gn->cohort_num); in Make_ExpandUse()
1273 if (gn->type & OP_DOUBLEDEP) in Make_ExpandUse()
1274 Lst_PrependAll(&examine, &gn->cohorts); in Make_ExpandUse()
1284 if (gn->type & OP_ARCHV) { in Make_ExpandUse()
1285 char *eoa = strchr(gn->name, '('); in Make_ExpandUse()
1286 char *eon = strchr(gn->name, ')'); in Make_ExpandUse()
1291 Var_Set(gn, MEMBER, eoa + 1); in Make_ExpandUse()
1292 Var_Set(gn, ARCHIVE, gn->name); in Make_ExpandUse()
1297 Dir_UpdateMTime(gn, false); in Make_ExpandUse()
1298 Var_Set(gn, TARGET, GNode_Path(gn)); in Make_ExpandUse()
1299 UnmarkChildren(gn); in Make_ExpandUse()
1300 HandleUseNodes(gn); in Make_ExpandUse()
1302 if (!(gn->type & OP_MADE)) in Make_ExpandUse()
1303 Suff_FindDeps(gn); in Make_ExpandUse()
1305 PretendAllChildrenAreMade(gn); in Make_ExpandUse()
1306 if (gn->unmade != 0) { in Make_ExpandUse()
1310 gn->name, gn->cohort_num, gn->unmade); in Make_ExpandUse()
1314 if (gn->unmade != 0) in Make_ExpandUse()
1315 ExamineLater(&examine, &gn->children); in Make_ExpandUse()