Subject: Re: bug#11401: automake-1.12 (incorrectly?) complains about missing AM_PROG_AR

From: Mike Frysinger <[email-masked]>
Date: Fri, 4 May 2012 15:19:49 -0400

On Friday 04 May 2012 03:20:10 Peter Rosin wrote:
> On 2012-05-04 07:25, Mike Frysinger wrote:
> > consider this simple code base:
> > $ cat configure.ac
> > AC_PREREQ([2.63])
> > AC_INIT([foo], [0])
> > AM_INIT_AUTOMAKE([1.11 -Wall foreign])
> > AC_PROG_CC
> > LT_INIT
> > AC_OUTPUT(Makefile)
> > 
> > $ cat Makefile.am
> > lib_LTLIBRARIES = libfoo.la
> > libfoo_la_SOURCES = foo.c
> > 
> > $ touch foo.c
> > 
> > with automake-1.11.5, everything works great:
> > $ autoreconf -f -i
> > libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac
> > and
> > libtoolize: rerunning libtoolize, to keep the correct libtool macros
> > in-tree.
> > libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
> > 
> > however, upgrade to automake-1.12, and it starts spitting this:
> > libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac
> > and
> > libtoolize: rerunning libtoolize, to keep the correct libtool macros
> > in-tree.
> > libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
> > /usr/share/automake-1.12/am/ltlibrary.am: warning: 'libfoo.la': linking
> > libtool libraries using a non-POSIX
> > /usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR'
> > in 'configure.ac'
> > Makefile.am:1:   while processing Libtool library 'libfoo.la'
> > 
> > what gives ?
> 
> If you don't want *all* warnings, don't ask for *all* warnings :-)

not my code base ;)

> It's in NEWS, from 1.12:
> 
>   - The warnings in the category 'extra-portability' are now enabled by
>     '-Wall'.  In previous versions, one has to use '-Wextra-portability'
>     to enable them.

ok, so the fact that it's warning via -Wall is new to 1.12, but the underlying 
issue (warning at all) is not

> which should be read in light of this from 1.11.2:
> 
>   - New macro AM_PROG_AR that looks for an archiver and wraps it in the new
>     'ar-lib' auxiliary script if the selected archiver is Microsoft lib.
>     This new macro is required for LIBRARIES and LTLIBRARIES when automake
>     is run with -Wextra-portability and -Werror.

imo, projects utilizing libtool shouldn't need to know this at all.  the whole 
point is to hide these esoteric details behind a layer and focus on the bits 
that projects actually care about -- what sources to put into libraries, 
etc...  so is the answer to update libtool to call AM_PROG_AR when it's 
available ?
-mike