[PATCH V2] configure.ac: Fallback to older detection code if pkg-config can't find expat

Bill Spitzak spitzak at gmail.com
Mon Feb 2 18:33:49 PST 2015

On 02/02/2015 03:12 PM, sardemff7+wayland at sardemff7.net wrote:
> On 2015-02-02 22:29, Bill Spitzak wrote:
>> This paritally reverts commit a4afd90f9f0c27ed5f3f313b915c260673f8be34.
>> On older expat versions (ie the one on Ubuntu 12.04) there is no
>> pkg-config
>> file, so fall back to the previous test for the header file when it
>> fails.
>> Test is slightly cleaned up from previous one.
>> I could not use AC_SEARCH_LIBS as was suggested, as this leaves the
>> switch
>> in LIBS, not EXPAT_LIBS, and thus does not match the pkg-config results.
> Well, you can perfectly do that, especially since AC_CHECK_LIB does not
> export EXPAT_LIBS either.

I think I may need some expert autotools help. I was basing these 
changes on looking at what got put into the config.h and Makefile. If I 
used AC_SEARCH_LIBS it added "-lexpat" to LIBS. I could make it also add 
it to EXPAT_LIBS but I could not figure out a way to stop it from being 
added to LIBS.

> I would advice to use AM_SUBST_NOTMAKE(LIBS) and never rely on LIBS at
> all. But that could be left to another patch I guess.

Unfortunately it looks like Makefile.in uses $(LIBS) a lot and they 
would all have to be fixed. I found plenty of examples on the web for 
avoiding my problem by clearing LIBS after running AC_SEARCH_LIBS but 
that would break all the existing configuration.

>>   configure.ac |    7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>> diff --git a/configure.ac b/configure.ac
>> index 0426b53..fc5ea55 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -85,7 +85,12 @@ AC_ARG_WITH(icondir, [  --with-icondir=<dir>
>> Look for cursor icons here],
>>   if test "x$enable_scanner" = "xyes"; then
>> -    PKG_CHECK_MODULES(EXPAT, [expat])
>> +    PKG_CHECK_MODULES(EXPAT, [expat],,
>> +        [AC_CHECK_HEADERS(expat.h,,
>> +            [AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
>> +        AC_CHECK_LIB(expat, XML_ParserCreate, [EXPAT_LIBS="-lexpat"],
> Do you rely on PKG_CHECK_MODULES to AC_SUBST?

I have no idea. I'm trying not to change the behavior when 
PKG_CHECK_MODULES works, just to alter the behavior when it does not work.

I am not very clear what AC_SUBST does, for EXPAT_LIBS it seems to work 
the same whether I use that command or not. I am wondering if I am 
running into a problem with caching using my previous results.

I guess I could use some help with this to get the replacement correct...

More information about the wayland-devel mailing list