tools/automake: verbose variable compatibility

An old patch attempted to harmonize the way that
both Openwrt and Automake uses the $(V) variable.
However, it was reverted because of the side-effects.

This method is more simple and just
allows Automake to accept any string
as part of the verbosity toggle,
falling back to the default if null.

Ref: e6901bf90 ("tools/automake: Revert "Do not use $(V) - force AM_V=1"")
Ref: 43365ca66 ("Do not use $(V) - force AM_V=1")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
This commit is contained in:
Michael Pratt 2023-03-14 05:03:24 -04:00 committed by Hauke Mehrtens
parent ceac4ae3b4
commit b094c6976c
1 changed files with 59 additions and 0 deletions

View File

@ -0,0 +1,59 @@
From: Bogdan Drozdowski <bogdandr AT op.pl>
Date: Sat, 31 Dec 2022 20:17:35 +0100
Subject: [PATCH] Allow other V values for verbosity
---
m4/silent.m4 | 2 +-
t/silent-gen.sh | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
--- a/m4/silent.m4
+++ b/m4/silent.m4
@@ -43,7 +43,7 @@ else
fi])
if test $am_cv_make_support_nested_variables = yes; then
dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
+ AM_V='$(shell if ( test "x$(V)" = "x0" ); then echo 0; elif ( test "x$(V)" = "x" ); then echo $(AM_DEFAULT_VERBOSITY); else echo 1; fi)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
--- a/t/silent-gen.sh
+++ b/t/silent-gen.sh
@@ -54,6 +54,18 @@ grep 'cp ' stdout
grep 'echo ' stdout
$MAKE clean
+run_make -O V=99
+grep 'GEN ' stdout && exit 1
+grep 'cp ' stdout
+grep 'echo ' stdout
+
+$MAKE clean
+run_make -O V=vvv
+grep 'GEN ' stdout && exit 1
+grep 'cp ' stdout
+grep 'echo ' stdout
+
+$MAKE clean
run_make -O V=0
grep 'GEN .*foo' stdout
grep 'cp ' stdout && exit 1
@@ -78,5 +90,17 @@ run_make -O V=1
grep 'GEN ' stdout && exit 1
grep 'cp ' stdout
grep 'echo ' stdout
+
+$MAKE clean
+run_make -O V=99
+grep 'GEN ' stdout && exit 1
+grep 'cp ' stdout
+grep 'echo ' stdout
+
+$MAKE clean
+run_make -O V=v
+grep 'GEN ' stdout && exit 1
+grep 'cp ' stdout
+grep 'echo ' stdout
: