[PATCH] Fallback to older detection code if pkg-config can't find expat

sardemff7+wayland at sardemff7.net sardemff7+wayland at sardemff7.net
Sat Jan 31 04:07:24 PST 2015


On 2015-01-31 02:23, Bill Spitzak wrote:
> On older expat versions there is no pkg-config file, so fall back to
> the previous test for the header file and library if it fails.

I agree this a good practice to fallback in this case.


> This paritally reverts commit a4afd90f9f0c27ed5f3f313b915c260673f8be34.
> ---
>   Makefile.am  |    1 -
>   configure.ac |    7 ++++++-
>   2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 0fccf86..43b741a 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -65,7 +65,6 @@ if ENABLE_SCANNER
>   wayland_scanner = $(top_builddir)/wayland-scanner
>   bin_PROGRAMS = wayland-scanner
>   wayland_scanner_SOURCES = src/scanner.c
> -wayland_scanner_CFLAGS = $(EXPAT_CFLAGS) $(AM_CFLAGS)

This hunk is bad. If the pkg-config file provide CFLAGS, they must be 
used. And there is no harm at all to use an undefined variable here. 
(And I think we should just define it empty in the fallback.)


>   wayland_scanner_LDADD = $(EXPAT_LIBS) libwayland-util.la
>   $(BUILT_SOURCES) : wayland-scanner
>   pkgconfig_DATA += src/wayland-scanner.pc
> diff --git a/configure.ac b/configure.ac
> index 97222f0..f7610e0 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -85,7 +85,12 @@ AC_ARG_WITH(icondir, [  --with-icondir=<dir>    Look for cursor icons here],
>   AC_SUBST([ICONDIR])
>
>   if test "x$enable_scanner" = "xyes"; then
> -	PKG_CHECK_MODULES(EXPAT, [expat])
> +	PKG_CHECK_MODULES(EXPAT, [expat],,
> +        [AC_CHECK_HEADERS(expat.h, [AC_DEFINE(HAVE_EXPAT_H)],

HAVE_EXPAT_H is defined by AC_CHECK_HEADERS itself so please remove the 
AC_DEFINE.


> +		[AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
> +	AC_CHECK_LIB(expat, XML_ParserCreate, [EXPAT_LIBS="-lexpat"],

If we re-introduce such check, we should use AC_SEARCH_LIBS (as advised 
by the Autoconf manual[1]).
Here is the code I would use :


EXPAT_CFLAGS=""
EXPAT_LIBS="-lexpat"
AC_SEARCH_LIBS([XML_ParserCreate], [expat],
   [
     AC_SUBST(EXPAT_CFLAGS)
     AC_SUBST(EXPAT_LIBS)
   ],
   [
     AC_MSG_ERROR([Can't find expat library. Please install expat.])
   ])

> +		[AC_MSG_ERROR([Can't find expat library. Please install expat.])])
> +	AC_SUBST(EXPAT_LIBS)])
>   fi
>
>   AC_PATH_PROG(XSLTPROC, xsltproc)
>

[1] 
<http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf.html#Libraries>

-- 

Quentin “Sardem FF7” Glidic


More information about the wayland-devel mailing list