Lines Matching defs:gn
198 GNode_FprintDetails(FILE *f, const char *prefix, const GNode *gn,
201 char *type = GNodeType_ToString(gn->type);
202 char *flags = GNodeFlags_ToString(gn->flags);
205 prefix, GNodeMade_Name(gn->made), type, flags, suffix);
211 GNode_ShouldExecute(GNode *gn)
213 return !((gn->type & OP_MAKE)
220 GNode_UpdateYoungestChild(GNode *gn, GNode *cgn)
222 if (gn->youngestChild == NULL || cgn->mtime > gn->youngestChild->mtime)
223 gn->youngestChild = cgn;
227 IsOODateRegular(GNode *gn)
231 if (gn->youngestChild != NULL) {
232 if (gn->mtime < gn->youngestChild->mtime) {
234 GNode_Path(gn->youngestChild));
240 if (gn->mtime == 0 && !(gn->type & OP_OPTIONAL)) {
245 if (gn->type & OP_DOUBLEDEP) {
266 GNode_IsOODate(GNode *gn)
274 if (!(gn->type & (OP_JOIN | OP_USE | OP_USEBEFORE | OP_EXEC))) {
275 Dir_UpdateMTime(gn, true);
277 if (gn->mtime != 0)
279 Targ_FmtTime(gn->mtime));
303 if (gn->type & (OP_USE | OP_USEBEFORE)) {
310 } else if ((gn->type & OP_LIB) && (gn->mtime == 0 || Arch_IsLib(gn))) {
317 oodate = (gn->mtime == 0 || Arch_LibOODate(gn) ||
318 (gn->youngestChild == NULL &&
319 (gn->type & OP_DOUBLEDEP)));
320 } else if (gn->type & OP_JOIN) {
327 gn->flags.childMade ? "" : "not ");
328 oodate = gn->flags.childMade;
329 } else if (gn->type & (OP_FORCE | OP_EXEC | OP_PHONY)) {
336 if (gn->type & OP_FORCE)
338 else if (gn->type & OP_PHONY)
344 } else if (IsOODateRegular(gn)) {
355 if (gn->flags.force)
358 oodate = gn->flags.force;
363 oodate = meta_oodate(gn, oodate);
375 for (ln = gn->parents.first; ln != NULL; ln = ln->next)
376 GNode_UpdateYoungestChild(ln->datum, gn);
437 GNode *gn = ln->datum;
445 if (gn->uname == NULL)
446 gn->uname = gn->name;
448 free(gn->name);
449 gn->name = Var_Subst(gn->uname, pgn, VARE_EVAL);
451 if (gn->uname != NULL && strcmp(gn->name, gn->uname) != 0) {
453 GNode *tgn = Targ_FindNode(gn->name);
455 gn = tgn;
458 Lst_Append(&pgn->children, gn);
459 Lst_Append(&gn->parents, pgn);
498 HandleUseNodes(GNode *gn)
501 for (ln = gn->children.first; ln != NULL; ln = nln) {
503 MakeHandleUse(ln->datum, gn, ln);
513 Make_Recheck(GNode *gn)
517 Dir_UpdateMTime(gn, true);
518 mtime = gn->mtime;
535 * from before, parse.h won't have been updated and gn->mtime will
540 * depend on FRC to be made, so we have to check for gn->children
543 if (!Lst_IsEmpty(gn->commands) || Lst_IsEmpty(gn->children))
544 gn->mtime = now;
569 if (!GNode_ShouldExecute(gn) || (gn->type & OP_SAVE_CMDS) ||
570 (mtime == 0 && !(gn->type & OP_WAIT))) {
572 gn->name,
573 gn->mtime == 0 ? "nonexistent" : Targ_FmtTime(gn->mtime));
574 gn->mtime = now;
577 gn->name, Targ_FmtTime(gn->mtime));
582 * XXX: The returned mtime may differ from gn->mtime. Intentionally?
609 IsWaitingForOrder(GNode *gn)
613 for (ln = gn->order_pred.first; ln != NULL; ln = ln->next) {
630 ScheduleOrderSuccessors(GNode *gn)
635 for (ln = gn->order_succ.first; ln != NULL; ln = ln->next) {
807 UnmarkChildren(GNode *gn)
811 for (ln = gn->children.first; ln != NULL; ln = ln->next) {
904 GNode_SetLocalVars(GNode *gn)
908 if (gn->flags.doneAllsrc)
911 UnmarkChildren(gn);
912 for (ln = gn->children.first; ln != NULL; ln = ln->next)
913 MakeAddAllSrc(ln->datum, gn);
915 if (!Var_Exists(gn, OODATE))
916 Var_Set(gn, OODATE, "");
917 if (!Var_Exists(gn, ALLSRC))
918 Var_Set(gn, ALLSRC, "");
920 if (gn->type & OP_JOIN)
921 Var_Set(gn, TARGET, GNode_VarAllsrc(gn));
922 gn->flags.doneAllsrc = true;
926 ScheduleRandomly(GNode *gn)
937 Lst_Append(&toBeMade, gn);
944 Lst_InsertBefore(&toBeMade, ln, gn);
995 MakeChildren(GNode *gn)
1000 for (ln = gn->children.first; ln != NULL; ln = ln->next)
1015 GNode *gn;
1027 gn = Lst_Dequeue(&toBeMade);
1028 DEBUG2(MAKE, "Examining %s%s...\n", gn->name, gn->cohort_num);
1030 if (gn->made != REQUESTED) {
1032 GNodeMade_Name(gn->made));
1033 Targ_PrintNode(gn, 2);
1039 if (gn->checked_seqno == checked_seqno) {
1045 gn->name, gn->cohort_num);
1046 gn->made = DEFERRED;
1049 gn->checked_seqno = checked_seqno;
1051 if (gn->unmade != 0) {
1052 gn->made = DEFERRED;
1053 MakeChildren(gn);
1055 gn->name, gn->cohort_num);
1059 gn->made = BEINGMADE;
1060 if (GNode_IsOODate(gn)) {
1063 return strcmp(gn->name, ".MAIN") != 0;
1064 GNode_SetLocalVars(gn);
1065 Job_Make(gn);
1069 gn->made = UPTODATE;
1070 if (gn->type & OP_JOIN) {
1078 GNode_SetLocalVars(gn);
1080 Make_Update(gn);
1092 MakePrintStatusOrderNode(GNode *ogn, GNode *gn)
1098 gn->name, gn->cohort_num, ogn->name, ogn->cohort_num);
1103 gn->name, gn->cohort_num, ogn->name, ogn->cohort_num);
1109 MakePrintStatusOrder(GNode *gn)
1112 for (ln = gn->order_pred.first; ln != NULL; ln = ln->next)
1113 MakePrintStatusOrderNode(ln->datum, gn);
1123 MakePrintStatus(GNode *gn, int *errors)
1125 if (gn->flags.doneCycle) {
1133 if (gn->unmade == 0) {
1134 gn->flags.doneCycle = true;
1135 switch (gn->made) {
1137 printf("`%s%s' is up to date.\n", gn->name,
1138 gn->cohort_num);
1147 printf("`%s%s' was not built", gn->name,
1148 gn->cohort_num);
1149 GNode_FprintDetails(stdout, " (", gn, ")!\n");
1151 debug_printf("`%s%s' was not built", gn->name,
1152 gn->cohort_num);
1153 GNode_FprintDetails(opts.debug_file, " (", gn,
1157 MakePrintStatusOrder(gn);
1162 gn->name, gn->cohort_num);
1166 gn->name, gn->cohort_num);
1173 gn->name, gn->cohort_num, gn->unmade);
1178 if (!gn->flags.cycle) {
1180 gn->flags.cycle = true;
1181 MakePrintStatusList(&gn->children, errors);
1183 gn->flags.doneCycle = true;
1188 gn->flags.doneCycle = true;
1189 Error("Graph cycles through `%s%s'", gn->name, gn->cohort_num);
1195 MakePrintStatusList(&gn->children, errors);
1215 GNode *gn = ln->datum;
1217 if (gn->flags.remake)
1219 if (gn->type & (OP_USE | OP_USEBEFORE))
1223 gn->name, gn->cohort_num);
1224 Lst_Enqueue(examine, gn);
1246 GNode *gn = Lst_Dequeue(&examine);
1248 if (gn->flags.remake)
1250 gn->flags.remake = true;
1253 gn->name, gn->cohort_num);
1255 if (gn->type & OP_DOUBLEDEP)
1256 Lst_PrependAll(&examine, &gn->cohorts);
1266 if (gn->type & OP_ARCHV) {
1267 char *eoa = strchr(gn->name, '(');
1268 char *eon = strchr(gn->name, ')');
1273 Var_Set(gn, MEMBER, eoa + 1);
1274 Var_Set(gn, ARCHIVE, gn->name);
1279 Dir_UpdateMTime(gn, false);
1280 Var_Set(gn, TARGET, GNode_Path(gn));
1281 UnmarkChildren(gn);
1282 HandleUseNodes(gn);
1284 if (!(gn->type & OP_MADE))
1285 Suff_FindDeps(gn);
1287 PretendAllChildrenAreMade(gn);
1288 if (gn->unmade != 0) {
1292 gn->name, gn->cohort_num, gn->unmade);
1296 if (gn->unmade != 0)
1297 ExamineLater(&examine, &gn->children);
1310 GNode *gn = ln->datum;
1312 waitNode->name, gn->name, gn->cohort_num);
1313 Lst_Append(&waitNode->children, gn);
1314 Lst_Append(&gn->parents, waitNode);