summaryrefslogtreecommitdiffabout
path: root/bootstrap
Side-by-side diff
Diffstat (limited to 'bootstrap') (more/less context) (ignore whitespace changes)
-rwxr-xr-xbootstrap49
1 files changed, 49 insertions, 0 deletions
diff --git a/bootstrap b/bootstrap
index a93ee90..750dc3c 100755
--- a/bootstrap
+++ b/bootstrap
@@ -423,6 +423,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=
@@ -444,6 +489,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"

Return to:

Send suggestions and report system problems to the System administrator.