[Top][All Lists]
[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