Deleted Added
full compact
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 ---