-## Setting 'required' after sourcing './defs' is a bug.
-sc_tests_required_after_defs:
- @for file in $(xtests); do \
- if out=`sed -n '/defs/,$${/required=/p;}' $$file`; test -n "$$out"; then \
- echo 'Do not set "required" after sourcing "defs" in '"$$file: $$out" 1>&2; \
- exit 1; \
- fi; \
- done
-
-## Overriding a Makefile macro on the command line is not portable when
-## recursive targets are used. Better use an envvar. SHELL is an
-## exception, POSIX says it can't come from the environment. V, DESTDIR,
-## DISTCHECK_CONFIGURE_FLAGS and DISABLE_HARD_ERRORS are exceptions, too,
-## as package authors are urged not to initialize them anywhere.
-## Finally, 'exp' is used by some ad-hoc checks, where we ensure it's
-## ok to override it from the command line.
-sc_tests_overriding_macros_on_cmdline:
- @if grep -E '\$$MAKE .*(SHELL=.*=|=.*SHELL=)' $(xtests); then \
- echo 'Rewrite "$$MAKE foo=bar SHELL=$$SHELL" as "foo=bar $$MAKE -e SHELL=$$SHELL"' 1>&2; \
- echo ' in the above lines, it is more portable.' 1>&2; \
+# "make -e" is brittle and unsafe, since it let *all* the environment
+# win over the macro definitions in the Makefiles. Since we offer
+# AM_MAKEFLAGS to allow the user to portably override macro definitions
+# from the command line in a safe way, we should encourage users to use
+# it.
+sc_tests_no_make_e:
+ @if grep -E '\$$MAKE\b.* -[a-zA-Z0-9]*e' $(xtests); then \
+ echo '"make -e" is brittle, use "run_make" instead.' 1>&2; \