autoconf-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] AC_CONFIG_MACRO_DIRS: improve tracing and add sanity checks


From: Eric Blake
Subject: Re: [PATCH] AC_CONFIG_MACRO_DIRS: improve tracing and add sanity checks
Date: Tue, 13 Nov 2012 13:48:43 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121029 Thunderbird/16.0.2

On 11/13/2012 01:37 PM, Adrian Bunk wrote:
> 
> Any usage of AC_CONFIG_MACRO_DIR that is following what is documented in
> any released version of autoconf should continue working as before.

Likewise, any usage of AC_CONFIG_MACRO_DIR that was NOT following
documented semantics was already risky, and if it falls apart when you
upgrade, it was your own fault for using undocumented semantics.
Personally, I'd rather it fall apart with a loud failure, that tells me
how to fix things, than to silently change behaviors to do something
different by design than what it used to do by chance (where the
difference in behavior is that new automake will use traced directories
in order, with the primary one _first_, but where old libtool cared
about only the _last_ instance and treated that as the primary
directory).  I'm also a big fan of avoiding redundancy, but where
redundancy is necessary, then it should be the same - the fact that old
libtool compares the _last_ AC_CONFIG_MACRO_DIR with the _first_
ACLOCAL_AMFLAGS directory is horrible for maintainability.

May I remind you that the documented semantics in 2.69 for
AC_CONFIG_MACRO_DIR are:

https://www.gnu.org/software/autoconf/manual/autoconf.html#Input

>  — Macro: AC_CONFIG_MACRO_DIR (dir)
> 
>     Specify dir as the location of additional local Autoconf macros. This 
> macro is intended for use by future versions of commands like autoreconf that 
> trace macro calls. It should be called directly from configure.ac so that 
> tools that install macros for aclocal can find the macros' declarations.
> 
>     Note that if you use aclocal from Automake to generate aclocal.m4, you 
> must also set ACLOCAL_AMFLAGS = -I dir in your top-level Makefile.am. Due to 
> a limitation in the Autoconf implementation of autoreconf, these include 
> directives currently must be set on a single line in Makefile.am, without any 
> backslash-newlines. 

which document ONLY a single directory.  Anyone using it more than once,
or for more than one directory, was relying on undocumented assumptions.
 Likewise, anyone that stuck _different_ contents in AC_CONFIG_MACRO_DIR
than what they stuck in ACLOCAL_AMFLAGS was violating the documented
behavior, and if things suddenly change for those packages as a result
of upgrading, that is the fault of the package for mis-using the
documented interface.

-- 
Eric Blake   address@hidden    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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