automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 6/6] aclocal: avoid spurious warnings from autom4te with AC_C


From: Nick Bowler
Subject: Re: [PATCH 6/6] aclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS
Date: Wed, 7 Nov 2012 15:08:40 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On 2012-11-03 13:36 +0100, Stefano Lattarini wrote:
> To allow us to work around this issue, autom4te has introduced a new
> "singleton" warning category, 'm4require-without-m4defun', that allow
> us to silence that particular kind of warnings (and only it).
[...]
> diff --git a/configure.ac b/configure.ac
> index 90985da..6eb4300 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -184,6 +184,21 @@ if test "$am_cv_autoconf_version" = no; then
>    AC_MSG_ERROR([Autoconf $required_autoconf_version or better is required.])
>  fi
>  
> +wcat=m4require-without-m4defun
> +AC_CACHE_CHECK([whether autoconf supports the '$wcat' warning category],
> +               [am_cv_autoconf_has_warning_for_aclocal],
> +[mkdir conftest
> +dnl Creative quoting required to avoid spurious expansion of AC_PREREQ macro
> +echo 'AC''_INIT' > conftest/conftest.ac
> +if AM_RUN_LOG([cd confetest && $am_AUTOCONF -Werror -W"$wcat" -o/dev/null]);
> +then
> +  am_cv_autoconf_has_warning_for_aclocal=yes
> +else
> +  am_cv_autoconf_has_warning_for_aclocal=no
> +fi
> +rm -rf conftest])
> +AC_SUBST([am_cv_autoconf_has_warning_for_aclocal])
> +

I really think this test needs to be done at runtime.  Two reasons:

  (1) A user may first ugprade Automake, then upgrade Autoconf.  They
      will then get the spurious warnings even though they have
      sufficiently recent versions of both Automake and Autoconf.

  (2) A user may have more than one version of Autoconf installed, one
      without the warning category and one with.  The value hardcoded
      into aclocal at build time is therefore guaranteed to be wrong
      for at least one installed version.

Furthermore, the test itself can be simplified: Just run autom4te
-Werror -Wwhatever on empty input (/dev/null will work).  For example:

  autom4te -Werror -Wno-m4require-without-m4defun /dev/null

Cheers,
-- 
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]