Lines Matching refs:gn
310 is_submake(const char *cmd, GNode *gn)
319 p_make = Var_Value(gn, ".MAKE").str;
323 mp = Var_Subst(cmd, gn, VARE_EVAL);
354 any_is_submake(GNode *gn)
358 for (ln = gn->commands.first; ln != NULL; ln = ln->next)
359 if (is_submake(ln->datum, gn))
365 printCMD(const char *ucmd, FILE *fp, GNode *gn)
369 Var_Expand(&xcmd, gn, VARE_EVAL);
375 printCMDs(GNode *gn, FILE *fp)
379 for (ln = gn->commands.first; ln != NULL; ln = ln->next)
380 printCMD(ln->datum, fp, gn);
387 if ((gn->type & (flag))) { \
389 debug_printf("Skipping meta for %s: .%s\n", gn->name, str); \
399 meta_needed(GNode *gn, const char *dname,
412 if (!(gn->type & OP_META)) {
419 if (Lst_IsEmpty(&gn->commands)) {
421 debug_printf("Skipping meta for %s: no commands\n", gn->name);
424 if ((gn->type & (OP_META|OP_SUBMAKE)) == OP_SUBMAKE) {
426 if (any_is_submake(gn)) {
427 DEBUG1(META, "Skipping meta for %s: .SUBMAKE\n", gn->name);
435 debug_printf("Skipping meta for %s: no .OBJDIR\n", gn->name);
447 gn->name);
455 meta_create(BuildMon *pbm, GNode *gn)
468 dname = Var_Value(gn, ".OBJDIR");
469 tname = GNode_VarTarget(gn);
472 if (!meta_needed(gn, dname.str, objdir_realpath, true))
478 char *mp = Var_Subst("${" MAKE_META_PREFIX "}", gn, VARE_EVAL);
505 printCMDs(gn, fp);
509 cp = GNode_VarOodate(gn);
526 gn->type |= OP_META; /* in case anyone wants to know */
528 gn->type |= OP_SILENT;
647 meta_job_start(Job *job, GNode *gn)
652 pbm->mfp = meta_create(pbm, gn);
735 meta_job_error(Job *job, GNode *gn, bool ignerr, int status)
741 if (job != NULL && gn == NULL)
742 gn = Job_Node(job);
747 if (gn != NULL)
748 Global_Set(".ERROR_TARGET", GNode_Path(gn));
923 meta_ignore(GNode *gn, const char *p)
957 Var_Set(gn, ".p.", p);
959 pm = Var_Subst(expr, gn, VARE_EVAL);
978 fm = Var_Subst(fname, gn, VARE_EVAL);
1033 meta_filter_cmd(GNode *gn, char *s)
1035 Var_Set(gn, META_CMD_FILTER_VAR, s);
1038 gn, VARE_EVAL);
1043 meta_cmd_cmp(GNode *gn, char *a, char *b, bool filter)
1050 a = meta_filter_cmd(gn, a);
1051 b = meta_filter_cmd(gn, b);
1055 Var_Delete(gn, META_CMD_FILTER_VAR);
1060 meta_oodate(GNode *gn, bool oodate)
1088 dname = Var_Value(gn, ".OBJDIR");
1089 tname = GNode_VarTarget(gn);
1092 if (!meta_needed(gn, dname.str, fname3, false))
1104 GNode_SetLocalVars(gn);
1143 cmp_filter = metaCmpFilter || Var_Exists(gn, MAKE_META_CMP_FILTER);
1145 cmdNode = gn->commands.first;
1383 if (!meta_ignore(gn, p))
1401 if (meta_ignore(gn, p))
1453 cst.cst_mtime > gn->mtime) {
1506 cmd = Var_Subst(cmd, gn, VARE_EVAL_DEFINED);
1536 !(gn->type & OP_NOMETA_CMP) &&
1537 (meta_cmd_cmp(gn, p, cmd, cmp_filter) != 0)) {
1576 if (writeMeta && (metaMissing || (gn->type & OP_META))) {
1580 if (gn->path != NULL && (cp = strrchr(gn->path, '/')) != NULL &&
1581 (cp > gn->path)) {
1582 if (strncmp(curdir, gn->path, (size_t)(cp - gn->path)) != 0) {
1602 Var_Delete(gn, OODATE);
1603 Var_Set(gn, OODATE, GNode_VarAllsrc(gn));