[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Add optional silent-rules support
From: |
Sergey Poznyakoff |
Subject: |
[PATCH] Add optional silent-rules support |
Date: |
Thu, 21 May 2009 12:07:53 +0300 |
Hello,
How about the following patch, which adds support for `silent-rules'
mode introduced in Automake 1.11:
* build-aux/bootstrap (slurp): Add silent rule support to $gnulib_mk,
if required by the configure.ac.
---
build-aux/bootstrap | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 49 insertions(+), 0 deletions(-)
diff --git a/build-aux/bootstrap b/build-aux/bootstrap
index 2087bab..054ad38 100755
--- a/build-aux/bootstrap
+++ b/build-aux/bootstrap
@@ -471,6 +471,51 @@ version_controlled_file() {
test $found = yes
}
+# AWK program to convert a Makefile(.am) file rules to Automake 1.11
+# silent mode.
+silent_rules_prog='
+# state = 0 - outside rules
+# state = 1 - first line inside a rule
+# state = 2 - subsequent lines inside a rule
+# cont = 1 - this line is a continuation of the previous one
+
+# Print comment lines
+/^[ \t]*#/ { print; next }
+# Start of a rule
+/^[^ \t].*:/ { print; state = 1; cont = 0; next }
+# First action within the rule
+state == 1 && /^\t/ {
+ # Print silent rules without changes. The second match
+ # is necessary to handle @VAR@ substitutions.
+ if (match($1, /^@/) && !match($1, /@$/))
+ print
+ else {
+ sub(/^\t[\t ]*/,"")
+ print "\t$(AM_V_GEN)" $0
+ }
+ cont = match($0, /\\$/)
+ state = 2
+ next
+}
+# All non-continuation lines within the rule are prefixed
+# with $(AM_V_at).
+state == 2 && /^\t/ && NF > 0 {
+ if (!cont) {
+ sub(/^\t[\t ]*/,"")
+ print "\t$(AM_V_at)" $0
+ } else
+ print
+ cont = match($0, /\\$/)
+ next
+}
+# Everything else is output verbatim
+{ print }'
+
+silent_rules=yes
+grep 'AM_SILENT_RULES' configure.ac > /dev/null ||
+ grep '^[ ]*AM_INIT_AUTOMAKE([^)][^)]*silent-rules' configure.ac >
/dev/null ||
+ silent_rules=no
+
slurp() {
for dir in . `(cd $1 && find * -type d -print)`; do
copied=
@@ -492,6 +537,10 @@ slurp() {
rm -f $dir/$gnulib_mk &&
sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
}
+ if test "$silent_rules" = yes; then
+ awk "$silent_rules_prog" $dir/$gnulib_mk > $dir/${gnulib_mk}-t &&
+ mv $dir/${gnulib_mk}-t $dir/${gnulib_mk}
+ fi
elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
version_controlled_file $dir $file; then
echo "$0: $dir/$file overrides $1/$dir/$file"
--
1.6.0
- [PATCH] Add optional silent-rules support,
Sergey Poznyakoff <=
Re: [PATCH] Add optional silent-rules support, Jim Meyering, 2009/05/21
Re: [PATCH] Add optional silent-rules support, Eric Blake, 2009/05/21