Date: Sun, 14 May 2000 15:07:14 -0400 From: Will Andrews <andrews@technologist.com> To: FreeBSD Current <current@FreeBSD.org> Subject: make(1) patches to bypass quietness prescribed by @-prefixed commands in Makefiles Message-ID: <20000514150714.J82488@argon.blackdawn.com>
next in thread | raw e-mail | index | archive | help
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Hi all,
Some time ago I was complaining about how there is no way to force make(1)
to display the commands executed by @-prefixed commands in Makefiles. So I
went around and talked to a few people and one guy clued me in on how I
would add something like this (sorry, I don't remember the name right now
as this was a few weeks ago..).
This option is useful for people with complex Makefile hierarchies who
cannot simply insert a `@${ECHO} "SOMEVAR = ${SOMEVAR}"` as needed in their
Makefiles or remove all the @'s in their Makefiles. In particular, I would
use this feature to debug ports.
Attached is the patch. If I can get permission, I'd like to commit this to
code on -current, with a possible MFC in a few weeks (?). I'd like to hear
any complaints about this code, including any style(9) mistakes, whether
this option would be considered bloat, and whether the variable name
``beLoud'' is appropriate in this context. ;-)
Thanks,
--
Will Andrews <andrews@technologist.com>
GCS/E/S @d- s+:+>+:- a--->+++ C++ UB++++ P+ L- E--- W+++ !N !o ?K w---
?O M+ V-- PS+ PE++ Y+ PGP+>+++ t++ 5 X++ R+ tv+ b++>++++ DI+++ D+
G++>+++ e->++++ h! r-->+++ y?
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="make.diff"
Index: compat.c
===================================================================
RCS file: /extra/cvsroot/src/usr.bin/make/compat.c,v
retrieving revision 1.17
diff -u -r1.17 compat.c
--- compat.c 2000/04/14 06:39:10 1.17
+++ compat.c 2000/05/13 17:38:22
@@ -241,6 +241,8 @@
while ((*cmd == '@') || (*cmd == '-')) {
if (*cmd == '@') {
silent = TRUE;
+ if (beLoud)
+ silent = FALSE;
} else {
errCheck = FALSE;
}
Index: job.c
===================================================================
RCS file: /extra/cvsroot/src/usr.bin/make/job.c,v
retrieving revision 1.17
diff -u -r1.17 job.c
--- job.c 2000/01/17 06:43:40 1.17
+++ job.c 2000/05/13 17:38:12
@@ -556,6 +556,8 @@
while (*cmd == '@' || *cmd == '-') {
if (*cmd == '@') {
shutUp = TRUE;
+ if (beLoud)
+ shutUp = FALSE;
} else {
errOff = TRUE;
}
Index: main.c
===================================================================
RCS file: /extra/cvsroot/src/usr.bin/make/main.c,v
retrieving revision 1.35
diff -u -r1.35 main.c
--- main.c 1999/11/23 10:35:24 1.35
+++ main.c 2000/05/13 17:47:35
@@ -138,6 +138,7 @@
Boolean beVerbose; /* -v flag */
Boolean oldVars; /* variable substitution style */
Boolean checkEnvFirst; /* -e flag */
+Boolean beLoud; /* -l flag */
Lst envFirstVars; /* (-E) vars to override from env */
static Boolean jobsRunning; /* TRUE if the jobs might be running */
@@ -175,9 +176,9 @@
optind = 1; /* since we're called more than once */
#ifdef REMOTE
-# define OPTFLAGS "BD:E:I:L:PSV:d:ef:ij:km:nqrstv"
+# define OPTFLAGS "BD:E:I:L:PSV:d:ef:ij:klm:nqrstv"
#else
-# define OPTFLAGS "BD:E:I:PSV:d:ef:ij:km:nqrstv"
+# define OPTFLAGS "BD:E:I:PSV:d:ef:ij:klm:nqrstv"
#endif
rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
switch(c) {
@@ -322,6 +323,10 @@
case 'k':
keepgoing = TRUE;
Var_Append(MAKEFLAGS, "-k", VAR_GLOBAL);
+ break;
+ case 'l':
+ beLoud = TRUE;
+ Var_Append(MAKEFLAGS, "-l", VAR_GLOBAL);
break;
case 'm':
Dir_AddDir(sysIncPath, optarg);
Index: make.h
===================================================================
RCS file: /extra/cvsroot/src/usr.bin/make/make.h,v
retrieving revision 1.12
diff -u -r1.12 make.h
--- make.h 1999/09/11 13:17:35 1.12
+++ make.h 2000/05/13 17:41:09
@@ -322,6 +322,8 @@
extern Boolean checkEnvFirst; /* TRUE if environment should be searched for
* all variables before the global context */
+extern Boolean beLoud; /* Force all commands to be outputted; ignores
+ * @-prefixes, etc. */
extern Lst envFirstVars; /* List of specific variables for which the
* environment should be searched before the
* global context */
--k+w/mQv8wyuph6w0--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000514150714.J82488>
