From 7328f91370aa2bef8dfac694ef17a0cf4aba5b4c Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Tue, 13 Jan 2009 06:52:51 +0000 Subject: [PATCH] Set .POSIX mode, along with disable parallel mode. Crunchgen parses the output from make(1) and its picky what it should look like. Also use make's conditional assignment operator rather than test and set. --- usr.sbin/crunch/crunchgen/crunchgen.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usr.sbin/crunch/crunchgen/crunchgen.c b/usr.sbin/crunch/crunchgen/crunchgen.c index 71f6d5b277d..5915e1396e6 100644 --- a/usr.sbin/crunch/crunchgen/crunchgen.c +++ b/usr.sbin/crunch/crunchgen/crunchgen.c @@ -709,12 +709,13 @@ void fillin_program_objs(prog_t *p, char *path) if (outhdrname[0] != '\0') fprintf(f, ".include \"%s\"\n", outhdrname); fprintf(f, ".include \"%s\"\n", path); + fprintf(f, ".NOTPARALLEL:\n.NO_PARALLEL:\n.POSIX:\n"); if (buildopts) { fprintf(f, "BUILDOPTS+="); output_strlst(f, buildopts); } - fprintf(f, ".if defined(PROG) && !defined(%s)\n", objvar); - fprintf(f, "%s=${PROG}.o\n", objvar); + fprintf(f, ".if defined(PROG)\n"); + fprintf(f, "%s?=${PROG}.o\n", objvar); fprintf(f, ".endif\n"); fprintf(f, "loop:\n\t@echo 'OBJS= '${%s}\n", objvar); @@ -727,7 +728,7 @@ void fillin_program_objs(prog_t *p, char *path) fclose(f); - snprintf(line, MAXLINELEN, "cd %s && make -f %s crunchgen_objs", + snprintf(line, MAXLINELEN, "cd %s && make -f %s -Q crunchgen_objs", p->srcdir, tempfname); if ((f = popen(line, "r")) == NULL) { warn("submake pipe");