From owner-freebsd-current Mon Jun 7 19:10:43 1999 Delivered-To: freebsd-current@freebsd.org Received: from picnic.mat.net (picnic.mat.net [206.246.122.133]) by hub.freebsd.org (Postfix) with ESMTP id 4C006151EE for ; Mon, 7 Jun 1999 19:10:08 -0700 (PDT) (envelope-from chuckr@picnic.mat.net) Received: from localhost (chuckr@localhost) by picnic.mat.net (8.9.3/8.8.5) with ESMTP id WAA50411; Mon, 7 Jun 1999 22:10:03 -0400 (EDT) Date: Mon, 7 Jun 1999 22:10:03 -0400 (EDT) From: Chuck Robey To: Peter Jeremy Cc: freebsd-current@FreeBSD.ORG Subject: Re: bsd.lib.mk "@"'s In-Reply-To: <99Jun8.105757est.40326@border.alcanet.com.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, 8 Jun 1999, Peter Jeremy wrote: > Chuck Robey wrote: > >On Mon, 7 Jun 1999, Colin Jensen wrote: > > > >> Why not just define a macro like SILENT_RUN=@ and replace > >> all the @ with ${SILENT}? Then both sides of can get what they > >> want :-) > > > >A compromise. I *love* compromises. How about this, Nate? > > I have an alternative compromise - add an option to make(1) so it > will ignore the `@' symbol. The following adds a `-@' option (the > option letter could be easily changed). I haven't updated make.1, > but will if the following is acceptable. That won't work on buildworld, where it takes full control of the make environment. You'll need to have *something* in the makefiles to allow for it. > > Index: compat.c > =================================================================== > RCS file: /home/CVSROOT/./src/usr.bin/make/compat.c,v > retrieving revision 1.12 > diff -u -r1.12 compat.c > --- compat.c 1998/09/09 05:15:38 1.12 > +++ compat.c 1999/06/07 22:12:24 > @@ -239,7 +239,8 @@ > > while ((*cmd == '@') || (*cmd == '-')) { > if (*cmd == '@') { > - silent = TRUE; > + if (!notSilent) > + silent = TRUE; > } else { > errCheck = FALSE; > } > Index: job.c > =================================================================== > RCS file: /home/CVSROOT/./src/usr.bin/make/job.c,v > retrieving revision 1.12 > diff -u -r1.12 job.c > --- job.c 1999/02/14 22:22:42 1.12 > +++ job.c 1999/06/07 22:11:41 > @@ -483,7 +483,7 @@ > * JobPrintCommand -- > * Put out another command for the given job. If the command starts > * with an @ or a - we process it specially. In the former case, > - * so long as the -s and -n flags weren't given to make, we stick > + * so long as the -@, -s and -n flags weren't given to make, we stick > * a shell-specific echoOff command in the script. In the latter, > * we ignore errors for the entire job, unless the shell has error > * control. > @@ -561,7 +561,8 @@ > */ > while (*cmd == '@' || *cmd == '-') { > if (*cmd == '@') { > - shutUp = TRUE; > + if (!notSilent) > + shutUp = TRUE; > } else { > errOff = TRUE; > } > Index: main.c > =================================================================== > RCS file: /home/CVSROOT/./src/usr.bin/make/main.c,v > retrieving revision 1.30 > diff -u -r1.30 main.c > --- main.c 1999/03/01 06:01:05 1.30 > +++ main.c 1999/06/07 22:17:43 > @@ -133,6 +133,7 @@ > Boolean usePipes; /* !-P flag */ > Boolean ignoreErrors; /* -i flag */ > Boolean beSilent; /* -s flag */ > +Boolean notSilent; /* -@ flag */ > Boolean beVerbose; /* -v flag */ > Boolean oldVars; /* variable substitution style */ > Boolean checkEnvFirst; /* -e flag */ > @@ -172,12 +173,16 @@ > > optind = 1; /* since we're called more than once */ > #ifdef REMOTE > -# define OPTFLAGS "BD:I:L:PSV:d:ef:ij:km:nqrstv" > +# define OPTFLAGS "@BD:I:L:PSV:d:ef:ij:km:nqrstv" > #else > -# define OPTFLAGS "BD:I:PSV:d:ef:ij:km:nqrstv" > +# define OPTFLAGS "@BD:I:PSV:d:ef:ij:km:nqrstv" > #endif > rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) { > switch(c) { > + case '@': > + notSilent = TRUE; > + Var_Append(MAKEFLAGS, "-@", VAR_GLOBAL); > + break; > case 'D': > Var_Set(optarg, "1", VAR_GLOBAL); > Var_Append(MAKEFLAGS, "-D", VAR_GLOBAL); > @@ -1280,7 +1285,7 @@ > usage() > { > (void)fprintf(stderr, "%s\n%s\n%s\n", > -"usage: make [-Beiknqrstv] [-D variable] [-d flags] [-f makefile]", > +"usage: make [-@Beiknqrstv] [-D variable] [-d flags] [-f makefile]", > " [-I directory] [-j max_jobs] [-m directory] [-V variable]", > " [variable=value] [target ...]"); > exit(2); > Index: make.h > =================================================================== > RCS file: /home/CVSROOT/./src/usr.bin/make/make.h,v > retrieving revision 1.8 > diff -u -r1.8 make.h > --- make.h 1998/11/14 16:15:04 1.8 > +++ make.h 1999/06/07 22:12:25 > @@ -294,6 +294,7 @@ > extern Boolean compatMake; /* True if we are make compatible */ > extern Boolean ignoreErrors; /* True if should ignore all errors */ > extern Boolean beSilent; /* True if should print no commands */ > +extern Boolean notSilent; /* True if should print `@' commands */ > extern Boolean beVerbose; /* True if should print extra cruft */ > extern Boolean noExecute; /* True if should execute nothing */ > extern Boolean allPrecious; /* True if every target is precious */ > > > Peter > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-current" in the body of the message > ----------------------------+----------------------------------------------- Chuck Robey | Interests include any kind of voice or data chuckr@picnic.mat.net | communications topic, C programming, and Unix. 213 Lakeside Drive Apt T-1 | Greenbelt, MD 20770 | I run picnic and jaunt, both FreeBSD-current. (301) 220-2114 | ----------------------------+----------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message