automake
[Top][All Lists]
Advanced

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

Re: Makefile.am and the _LDADD option


From: Stefano Lattarini
Subject: Re: Makefile.am and the _LDADD option
Date: Tue, 21 Feb 2012 23:12:34 +0100

On 02/21/2012 09:06 AM, address@hidden wrote:
> Hello,
> 
> In my Makefile.am I try this:
> xmlparsefile_LDFLAGS = `pkg-config libxml-2.0 --libs-only-L`
> xmlparsefile_LDADD = `pkg-config libxml-2.0 --libs-only-l`
> Then it is refused:
> $ autoreconf
> src/Makefile.am:6: linker flags such as `--libs-only-l`' belong in 
> `xmlparsefile_LDFLAGS
> autoreconf: automake failed with exit status: 1
>
This is happening because automake peeks into the $(xmlparsefile_LDADD) 
contents,
and since there it sees what seems like an option to it ("--libs-only-l`"), it
warns that this is not an allowed usage.  Automake is not smart enough to
recognize the command substitution in $(xmlparsefile_LDADD).  And this is not
likely to change.

> So there is an other solution:
> -edit the configure.ac file:
> PKG_CHECK_MODULES([LIBXML], [libxml-2.0 >= 2.7.8])
> -edit the Makefile.am file:
> xmlparsefile_LDADD = $(LIBXML_LIBS)
> xmlparsefile_CFLAGS = -Wall -Wextra $(LIBXML_CFLAGS)
> An now, it is accepted.
> 
In this case, automake realizes that the $(xmlparsefile_LDADD) contents will be
provided at configure time -- so it cannot check them, and just trust the
configure script will provide them correctly.

BTW, note that even if automake wouldn't complain in your first example, the
second solution (with PKG_CHECK_MODULES) would be the correct one: requirements
should be checked at configure time, not at make time.

HTH,
 Stefano



reply via email to

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