Subject: Re: bug#14685: aclocal and AC_CONFIG_MACRO_DIR

From: Stefano Lattarini <[email-masked]>
Date: Sat, 22 Jun 2013 10:05:06 +0200

On 06/22/2013 09:44 AM, Werner LEMBERG wrote:
> 
>> That's because AC_CONFIG_MACRO_DIR (provided by Autoconf) is only
>> meant to accept one directory as its argument.  For two or more
>> dirs, you should use AC_CONFIG_MACRO_DIRS instead (which BTW also
>> works if only one dir is given, so I'd suggest you to
>> unconditionally prefer it over AC_CONFIG_MACRO_DIR).
> 
> Well, AC_CONFIG_MACRO_DIRS is not in autoconf 2.69, and 2.70 is not
> released yet...  Ideally, automake provides this until 2.70 is out :-)
>
It does ;-)  Since Automake 1.13 in fact (barring unseen bugs).

>>>   aclocal: error: couldn't open directory 'gnulib/m4 m4':
>>>                   No such file or directory
>>>
>> ... I see this error message is definitely unclear;
> 
> I don't think so, the error message is just fine if the background is
> known.  However, I think it's a bad idea to make it a fatal error.  A
> warning is fully sufficient IMHO.
>
I disagree.  We definitely want to catch a potential user typo with
a hard error, rather than an easy to miss warning.

>> it could be improved to suggest you to use AC_CONFIG_MACRO_DIRS
>> whenever you have to or more m4 directories.
> 
> Yes.  If opening a directory fails, and the directory name contains a
> space, tell the user that AC_CONFIG_MACRO_DIR accepts one directory
> only.
>
Sine we never really supported directories with spaces in them (not in
AC_CONFIG_MACRO_DIR, nor in AC_CONFIG_AUX_DIR, nor in SUBDIRS, nor in
AC_CONFIG_FILES -- nowhere, basically), I'd rather raise the error
message whenever a whitespace is present in the AC_CONFIG_MACRO_DIR
argument, without checking for its existence.

> And if AC_CONFIG_MACRO_DIRS is available, suggest to use this
> macro instead.
>
Once you use Automake 1.13, that macro should be made automatically
available.  If you've find out a situation where that's not the case,
you've just found another Automake bug (in which case, please report
it separately).

Thanks,
  Stefano