meta.c (281812) | meta.c (289842) |
---|---|
1/* $NetBSD: meta.c,v 1.38 2015/04/11 05:24:30 sjg Exp $ */ | 1/* $NetBSD: meta.c,v 1.40 2015/10/11 04:51:24 sjg Exp $ */ |
2 3/* 4 * Implement 'meta' mode. 5 * Adapted from John Birrell's patches to FreeBSD make. 6 * --sjg 7 */ 8/* 9 * Copyright (c) 2009-2010, Juniper Networks, Inc. --- 309 unchanged lines hidden (view full) --- 319 int rc = 0; /* keep looking */ 320 321 if (!p_make) { 322 p_make = Var_Value(".MAKE", gn, &cp); 323 p_len = strlen(p_make); 324 } 325 cp = strchr(cmd, '$'); 326 if ((cp)) { | 2 3/* 4 * Implement 'meta' mode. 5 * Adapted from John Birrell's patches to FreeBSD make. 6 * --sjg 7 */ 8/* 9 * Copyright (c) 2009-2010, Juniper Networks, Inc. --- 309 unchanged lines hidden (view full) --- 319 int rc = 0; /* keep looking */ 320 321 if (!p_make) { 322 p_make = Var_Value(".MAKE", gn, &cp); 323 p_len = strlen(p_make); 324 } 325 cp = strchr(cmd, '$'); 326 if ((cp)) { |
327 mp = Var_Subst(NULL, cmd, gn, FALSE); | 327 mp = Var_Subst(NULL, cmd, gn, FALSE, TRUE); |
328 cmd = mp; 329 } 330 cp2 = strstr(cmd, p_make); 331 if ((cp2)) { 332 switch (cp2[p_len]) { 333 case '\0': 334 case ' ': 335 case '\t': --- 26 unchanged lines hidden (view full) --- 362static int 363printCMD(void *cmdp, void *mfpp) 364{ 365 meta_file_t *mfp = mfpp; 366 char *cmd = cmdp; 367 char *cp = NULL; 368 369 if (strchr(cmd, '$')) { | 328 cmd = mp; 329 } 330 cp2 = strstr(cmd, p_make); 331 if ((cp2)) { 332 switch (cp2[p_len]) { 333 case '\0': 334 case ' ': 335 case '\t': --- 26 unchanged lines hidden (view full) --- 362static int 363printCMD(void *cmdp, void *mfpp) 364{ 365 meta_file_t *mfp = mfpp; 366 char *cmd = cmdp; 367 char *cp = NULL; 368 369 if (strchr(cmd, '$')) { |
370 cmd = cp = Var_Subst(NULL, cmd, mfp->gn, FALSE); | 370 cmd = cp = Var_Subst(NULL, cmd, mfp->gn, FALSE, TRUE); |
371 } 372 fprintf(mfp->fp, "CMD %s\n", cmd); 373 if (cp) 374 free(cp); 375 return 0; 376} 377 378/* --- 78 unchanged lines hidden (view full) --- 457 goto out; 458 } 459 } 460 461 if (metaVerbose) { 462 char *mp; 463 464 /* Describe the target we are building */ | 371 } 372 fprintf(mfp->fp, "CMD %s\n", cmd); 373 if (cp) 374 free(cp); 375 return 0; 376} 377 378/* --- 78 unchanged lines hidden (view full) --- 457 goto out; 458 } 459 } 460 461 if (metaVerbose) { 462 char *mp; 463 464 /* Describe the target we are building */ |
465 mp = Var_Subst(NULL, "${" MAKE_META_PREFIX "}", gn, 0); | 465 mp = Var_Subst(NULL, "${" MAKE_META_PREFIX "}", gn, FALSE, TRUE); |
466 if (*mp) 467 fprintf(stdout, "%s\n", mp); 468 free(mp); 469 } 470 /* Get the basename of the target */ 471 if ((cp = strrchr(tname, '/')) == NULL) { 472 cp = tname; 473 } else { --- 126 unchanged lines hidden (view full) --- 600 if (once) 601 return; 602 once = 1; 603 memset(&Mybm, 0, sizeof(Mybm)); 604 /* 605 * We consider ourselves master of all within ${.MAKE.META.BAILIWICK} 606 */ 607 metaBailiwick = Lst_Init(FALSE); | 466 if (*mp) 467 fprintf(stdout, "%s\n", mp); 468 free(mp); 469 } 470 /* Get the basename of the target */ 471 if ((cp = strrchr(tname, '/')) == NULL) { 472 cp = tname; 473 } else { --- 126 unchanged lines hidden (view full) --- 600 if (once) 601 return; 602 once = 1; 603 memset(&Mybm, 0, sizeof(Mybm)); 604 /* 605 * We consider ourselves master of all within ${.MAKE.META.BAILIWICK} 606 */ 607 metaBailiwick = Lst_Init(FALSE); |
608 cp = Var_Subst(NULL, "${.MAKE.META.BAILIWICK:O:u:tA}", VAR_GLOBAL, 0); | 608 cp = Var_Subst(NULL, "${.MAKE.META.BAILIWICK:O:u:tA}", VAR_GLOBAL, 609 FALSE, TRUE); |
609 if (cp) { 610 str2Lst_Append(metaBailiwick, cp, NULL); 611 } 612 /* 613 * We ignore any paths that start with ${.MAKE.META.IGNORE_PATHS} 614 */ 615 metaIgnorePaths = Lst_Init(FALSE); 616 Var_Append(MAKE_META_IGNORE_PATHS, 617 "/dev /etc /proc /tmp /var/run /var/tmp ${TMPDIR}", VAR_GLOBAL); 618 cp = Var_Subst(NULL, | 610 if (cp) { 611 str2Lst_Append(metaBailiwick, cp, NULL); 612 } 613 /* 614 * We ignore any paths that start with ${.MAKE.META.IGNORE_PATHS} 615 */ 616 metaIgnorePaths = Lst_Init(FALSE); 617 Var_Append(MAKE_META_IGNORE_PATHS, 618 "/dev /etc /proc /tmp /var/run /var/tmp ${TMPDIR}", VAR_GLOBAL); 619 cp = Var_Subst(NULL, |
619 "${" MAKE_META_IGNORE_PATHS ":O:u:tA}", VAR_GLOBAL, 0); | 620 "${" MAKE_META_IGNORE_PATHS ":O:u:tA}", VAR_GLOBAL, 621 FALSE, TRUE); |
620 if (cp) { 621 str2Lst_Append(metaIgnorePaths, cp, NULL); 622 } 623} 624 625/* 626 * In each case below we allow for job==NULL 627 */ --- 94 unchanged lines hidden (view full) --- 722 if (pbm->mfp != NULL) { 723 if (metaVerbose) { 724 static char *meta_prefix = NULL; 725 static int meta_prefix_len; 726 727 if (!meta_prefix) { 728 char *cp2; 729 | 622 if (cp) { 623 str2Lst_Append(metaIgnorePaths, cp, NULL); 624 } 625} 626 627/* 628 * In each case below we allow for job==NULL 629 */ --- 94 unchanged lines hidden (view full) --- 724 if (pbm->mfp != NULL) { 725 if (metaVerbose) { 726 static char *meta_prefix = NULL; 727 static int meta_prefix_len; 728 729 if (!meta_prefix) { 730 char *cp2; 731 |
730 meta_prefix = Var_Subst(NULL, "${" MAKE_META_PREFIX "}", VAR_GLOBAL, 0); | 732 meta_prefix = Var_Subst(NULL, "${" MAKE_META_PREFIX "}", 733 VAR_GLOBAL, FALSE, TRUE); |
731 if ((cp2 = strchr(meta_prefix, '$'))) 732 meta_prefix_len = cp2 - meta_prefix; 733 else 734 meta_prefix_len = strlen(meta_prefix); 735 } 736 if (strncmp(cp, meta_prefix, meta_prefix_len) == 0) { 737 cp = strchr(cp+1, '\n'); 738 if (!cp++) --- 465 unchanged lines hidden (view full) --- 1204#ifdef DEBUG_META_MODE 1205 if (DEBUG(META)) 1206 fprintf(debug_file, "meta_oodate: ignoring: %s\n", 1207 p); 1208#endif 1209 break; 1210 } 1211 | 734 if ((cp2 = strchr(meta_prefix, '$'))) 735 meta_prefix_len = cp2 - meta_prefix; 736 else 737 meta_prefix_len = strlen(meta_prefix); 738 } 739 if (strncmp(cp, meta_prefix, meta_prefix_len) == 0) { 740 cp = strchr(cp+1, '\n'); 741 if (!cp++) --- 465 unchanged lines hidden (view full) --- 1207#ifdef DEBUG_META_MODE 1208 if (DEBUG(META)) 1209 fprintf(debug_file, "meta_oodate: ignoring: %s\n", 1210 p); 1211#endif 1212 break; 1213 } 1214 |
1212 if ((cp = strrchr(p, '/'))) { 1213 cp++; 1214 /* 1215 * We don't normally expect to see this, 1216 * but we do expect it to change. 1217 */ 1218 if (strcmp(cp, makeDependfile) == 0) 1219 break; 1220 } 1221 | |
1222 /* 1223 * The rest of the record is the file name. 1224 * Check if it's not an absolute path. 1225 */ 1226 { 1227 char *sdirs[4]; 1228 char **sdp; 1229 int sdx = 0; --- 87 unchanged lines hidden (view full) --- 1317 if (cp > cmd + 2 && cp[-2] == '$') 1318 hasOODATE = TRUE; 1319 } 1320 if (hasOODATE) { 1321 needOODATE = TRUE; 1322 if (DEBUG(META)) 1323 fprintf(debug_file, "%s: %d: cannot compare command using .OODATE\n", fname, lineno); 1324 } | 1215 /* 1216 * The rest of the record is the file name. 1217 * Check if it's not an absolute path. 1218 */ 1219 { 1220 char *sdirs[4]; 1221 char **sdp; 1222 int sdx = 0; --- 87 unchanged lines hidden (view full) --- 1310 if (cp > cmd + 2 && cp[-2] == '$') 1311 hasOODATE = TRUE; 1312 } 1313 if (hasOODATE) { 1314 needOODATE = TRUE; 1315 if (DEBUG(META)) 1316 fprintf(debug_file, "%s: %d: cannot compare command using .OODATE\n", fname, lineno); 1317 } |
1325 cmd = Var_Subst(NULL, cmd, gn, TRUE); | 1318 cmd = Var_Subst(NULL, cmd, gn, TRUE, TRUE); |
1326 1327 if ((cp = strchr(cmd, '\n'))) { 1328 int n; 1329 1330 /* 1331 * This command contains newlines, we need to 1332 * fetch more from the .meta file before we 1333 * attempt a comparison. --- 129 unchanged lines hidden --- | 1319 1320 if ((cp = strchr(cmd, '\n'))) { 1321 int n; 1322 1323 /* 1324 * This command contains newlines, we need to 1325 * fetch more from the .meta file before we 1326 * attempt a comparison. --- 129 unchanged lines hidden --- |