Subject: bug#8718: error when using nested conditionals

From: Peter Breitenlohner <[email-masked]>
Date: Fri, 10 Jun 2011 12:23:42 +0200 (CEST)

On Fri, 10 Jun 2011, Stefano Lattarini wrote:

> Nope, it gets the information from the fact each AM_CONDITIONAL invocation
> does this:
>
>  AC_CONFIG_COMMANDS_PRE(
>    [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
>      AC_MSG_ERROR([[conditional "$1" was never defined.
>      Usually this means the macro was only invoked conditionally.]])
>    fi])])

Hi Stefano, Bruno,

how about the following alternative (for all conditionals, or just for some
of them, e.g., those under the regime of AM_IGNORE_UNDEFINED_CONDITIONALS):
Replace the AC_MSG_ERROR() above by a warning and set both $1_TRUE and
$1_FALSE to something that, when not hidden in a false branch of the
Makefile, (1) triggers a make syntax error, and (2) contains sufficient info
to deduce the cause for that error.

That way there is a warning from configure (often overlooked and/or
ignored), but an error from make only if that conditional is actually
needed.

Regards
Peter