check.c (1465B)
1 /* 2 * Check structures for make. 3 */ 4 #include "make.h" 5 6 static void 7 mk_print_name(MakeCtx* mc, struct name *np) 8 { 9 if (np == mc->firstname) 10 mk_out(mc, "# default target\n"); 11 mk_outf(mc, "%s:", np->n_name); 12 if ((np->n_flag & N_DOUBLE)) 13 mk_outc(mc, ':'); 14 } 15 16 static void 17 mk_print_prerequisites(MakeCtx* mc, struct rule *rp) 18 { 19 struct depend *dp; 20 21 for (dp = rp->r_dep; dp; dp = dp->d_next) 22 mk_outf(mc, " %s", dp->d_name->n_name); 23 } 24 25 static void 26 mk_print_commands(MakeCtx* mc, struct rule *rp) 27 { 28 struct cmd *cp; 29 30 for (cp = rp->r_cmd; cp; cp = cp->c_next) 31 mk_outf(mc, "\t%s\n", cp->c_cmd); 32 } 33 34 static void 35 mk_print_details(MakeCtx* mc) 36 { 37 int i; 38 struct macro *mp; 39 struct name *np; 40 struct rule *rp; 41 42 for (i = 0; i < HTABSIZE; i++) 43 for (mp = mc->macrohead[i]; mp; mp = mp->m_next) 44 mk_outf(mc, "%s = %s\n", mp->m_name, mp->m_val); 45 mk_outc(mc, '\n'); 46 47 for (i = 0; i < HTABSIZE; i++) { 48 for (np = mc->namehead[i]; np; np = np->n_next) { 49 if (!(np->n_flag & N_DOUBLE)) { 50 mk_print_name(mc, np); 51 for (rp = np->n_rule; rp; rp = rp->r_next) { 52 mk_print_prerequisites(mc, rp); 53 } 54 mk_outc(mc, '\n'); 55 56 for (rp = np->n_rule; rp; rp = rp->r_next) { 57 mk_print_commands(mc, rp); 58 } 59 mk_outc(mc, '\n'); 60 } else { 61 for (rp = np->n_rule; rp; rp = rp->r_next) { 62 mk_print_name(mc, np); 63 mk_print_prerequisites(mc, rp); 64 mk_outc(mc, '\n'); 65 66 mk_print_commands(mc, rp); 67 mk_outc(mc, '\n'); 68 } 69 } 70 } 71 } 72 }