# To allow bootstrapping also in an unconfigured tree.
srcdir ?= .
am__cd ?= CDPATH=. && unset CDPATH && cd
-AM_DEFAULT_VERBOSITY ?= 0
-V ?= $(AM_DEFAULT_VERBOSITY)
+V ?= 0
ifeq ($(V),0)
AM_V_BOOTSTRAP = @echo " BOOTSTRAP";
Silent rules
============
-* The silent-rules support unconditionally assumes that nested variables
- expansion are supported. Accordingly, the AC_SUBST'd variables '@AM_V@'
- and'@AM_DEFAULT_V@' have been removed, so that instead of using
- something like:
-
- pkg_verbose = $(pkg_verbose_@AM_V@)
- pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@)
-
- you should simply use:
-
- pkg_verbose = $(pkg_verbose_$(V))
- pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY))
+* The silent rules support has been simplified to take advantage
+ of more GNU make features. Among other things, the AC_SUBST'd
+ variables '@AM_V@' and'@AM_DEFAULT_V@' have been removed. Now,
+ when defining uses custom silent rules, you should do something
+ like:
+
+ # Modern correct way.
+ pkg_verbose = $(pkg_verbose/$(V))
+ pkg_verbose/0 = @echo PKG-GEN $@;
+ pkg_verbose/1 =
+
+ while the old idiom would have been something like:
+
+ # Old obsolete way, won't work anymore.
+ pkg_verbose = $(pkg_verbose_@AM_V@)
+ pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@)
+ pkg_verbose_0 = @echo PKG-GEN $@;
Warnings and diagnostic
return 'AM_V_' . $name;
}
-# verbose_private_var (NAME)
-# --------------------------
-# The naming policy for the private variables for silent rules.
-sub verbose_private_var ($)
-{
- my ($name) = @_;
- return 'am__v_' . $name;
-}
-
# define_verbose_var (NAME, VAL-IF-SILENT, [VAL-IF-VERBOSE])
# ----------------------------------------------------------
# For silent rules, setup VAR and dispatcher, to expand to
my ($name, $silent_val, $verbose_val) = @_;
$verbose_val = '' unless defined $verbose_val;
my $var = verbose_var ($name);
- my $pvar = verbose_private_var ($name);
- my $silent_var = $pvar . '_0';
- my $verbose_var = $pvar . '_1';
- define_variable ($var, INTERNAL,
- '$(' . $pvar . '_$(V))');
- define_variable ($pvar . '_', INTERNAL,
- '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))');
- Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE,
+ define_variable ($var, INTERNAL, "\$($var/\$V)");
+ Automake::Variable::define ("$var/0", VAR_AUTOMAKE, '', TRUE,
$silent_val, '', INTERNAL)
- if (! vardef ($silent_var, TRUE));
- Automake::Variable::define ($verbose_var, VAR_AUTOMAKE, '', TRUE,
+ if (! vardef ("$var/0", TRUE));
+ Automake::Variable::define ("$var/1", VAR_AUTOMAKE, '', TRUE,
$verbose_val, '', INTERNAL)
- if (! vardef ($verbose_var, TRUE));
+ if (! vardef ("$var/1", TRUE));
}
# Above should not be needed in the general automake code.
@code{AM_V_GEN}:
@example
-pkg_verbose = $(pkg_verbose_$(V))
-pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY))
-pkg_verbose_0 = @@echo PKG-GEN $@@;
+pkg_verbose = $(pkg_verbose/$(V))
+pkg_verbose/1 =
+pkg_verbose/0 = @@echo PKG-GEN $@@;
foo: foo.in
$(pkg_verbose)cp $(srcdir)/foo.in $@@
endif
endif
+# Be verbose by deafault. Yes, we really want $(V) to be overridable
+# from the environment, both for simplicity and for consistency with
+# mainline Automake.
+# FIXME: maybe normalize/sanitize $(V)?
+V ?= 0
+
am__mkdir = test -d $1 || $(MKDIR_P) $1
# In a recipe, ensure the given directory exists, creating it if
[verbose build output (undo: "make V=0")])dnl
])
case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+ yes) V=0;;
+ no) V=1;;
+ *) V=m4_if([$1], [yes], [0], [1]);;
esac
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
+AC_SUBST([V])])
cat > Makefile.am <<'EOF'
.PHONY: test-silent test-nosilent
test-silent:
- test x'$(AM_DEFAULT_VERBOSITY)' = x'0'
+ $(AM_V_P); test $$? -eq 1
test-nosilent:
- test x'$(AM_DEFAULT_VERBOSITY)' = x'1'
+ $(AM_V_P); test $$? -eq 0
EOF
unset enable_silent_rules || :
mkdir sub
cat > sub/Makefile.am <<'EOF'
-my_verbose = $(my_verbose_$(V))
-my_verbose_ = $(my_verbose_$(AM_DEFAULT_VERBOSITY))
-my_verbose_0 = @echo " XGEN $@";
+my_verbose = $(my_verbose/$(V))
+my_verbose/0 = @echo " XGEN $@";
+my_verbose/1 =
all-local: foo gen-headers