Subject: bug#20077: automake / silent-rules / $(V)

From: Mirko Vogt <[email-masked]>
Date: Wed, 11 Mar 2015 02:06:40 +0100

I just stumbled across an issue where a project fails to compile using
automake and silent-rules with $V being set to sth. else other than '1'
or '0'.

This is because of the following resulting Makefile code when using
silent rules:

AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :

This breaks builds in environments such as e.g. the cross-compiling
framework OpenWrt - which also uses $(V), however with values other than
1/0 (e.g. V=99, V={c,w,s}, etc.).

The way automake behaves here it claims that variable for its exclusive
use. I don't mind automake using $(V), however if using such generic
variable names, please don't make projects fail when $(V) is set to
something other than 1 or 0.

My proposal would be to enable verbose output, if $(V) is set to
anything but '0' and to disable otherwise ($V is unset / set to '0').

Cheers

  mirko