[PATCH wayland] build: fix ./configure --disable-dtd-validation

Bryce Harrington bryce at osg.samsung.com
Mon Feb 29 23:33:22 UTC 2016


On Mon, Feb 29, 2016 at 02:59:51PM +0200, Pekka Paalanen wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> 
> When configured with --disable-dtd-validation:
> 
>   CPPAS    src/dtddata.o
> src/dtddata.S: Assembler messages:
> src/dtddata.S:39: Error: file not found: src/wayland.dtd.embed
> Makefile:1520: recipe for target 'src/dtddata.o' failed
> 
> This is because the variable name used does not match the implicit
> variable name in autoconf.
> 
> Fix the variable name, making both --disable-dtd-validation and
> --enable-dtd-validation to what they should.

Confirmed the failure without the patch (after a make clean), and the
proper behavior with it.

Tested-by: Bryce Harrington <bryce at osg.samsung.com>

And pushed to trunk:
   5646236..4a41d26  master -> master

Bryce
 
> Do not try to build dtddata.S if dtd-validation is disabled. It depends
> on wayland.dtd.embed which is created by configure only if
> dtd-validation is enabled.
> 
> If not building dtddata.S, also make sure the extern definitions in
> scanner.c are compiled out.
> 
> Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=575212
> Reported-by: leio at gentoo.org
> Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> ---
>  Makefile.am   | 5 ++++-
>  configure.ac  | 5 +++--
>  src/scanner.c | 6 +++---
>  3 files changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index e850abc..49e25a6 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -23,11 +23,14 @@ pkgconfigdir = $(libdir)/pkgconfig
>  pkgconfig_DATA =
>  
>  bin_PROGRAMS = wayland-scanner
> -wayland_scanner_SOURCES = src/scanner.c src/dtddata.S
> +wayland_scanner_SOURCES = src/scanner.c
>  wayland_scanner_CFLAGS = $(EXPAT_CFLAGS) $(LIBXML_CFLAGS) $(AM_CFLAGS)
>  wayland_scanner_LDADD = $(EXPAT_LIBS) $(LIBXML_LIBS) libwayland-util.la
>  pkgconfig_DATA += src/wayland-scanner.pc
>  
> +if DTD_VALIDATION
> +wayland_scanner_SOURCES += src/dtddata.S
> +endif
>  src/dtddata.o: protocol/wayland.dtd
>  
>  if USE_HOST_SCANNER
> diff --git a/configure.ac b/configure.ac
> index af5b7cd..bbe62f7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -85,7 +85,7 @@ AC_ARG_ENABLE([dtd-validation],
>  	      [AC_HELP_STRING([--disable-dtd-validation],
>  			      [Disable DTD validation of the protocol])],
>  	      [],
> -	      [enable_dtdvalidation=yes])
> +	      [enable_dtd_validation=yes])
>  
>  AM_CONDITIONAL(USE_HOST_SCANNER, test "x$with_host_scanner" = xyes)
>  
> @@ -121,7 +121,8 @@ PKG_CHECK_MODULES(EXPAT, [expat], [],
>  	 AC_SUBST(EXPAT_LIBS)
>  	])
>  
> -if test "x$enable_dtdvalidation" = "xyes"; then
> +AM_CONDITIONAL([DTD_VALIDATION], [test "x$enable_dtd_validation" = "xyes"])
> +if test "x$enable_dtd_validation" = "xyes"; then
>  	PKG_CHECK_MODULES(LIBXML, [libxml-2.0])
>  	AC_DEFINE(HAVE_LIBXML, 1, [libxml-2.0 is available])
>  	AC_CONFIG_LINKS([src/wayland.dtd.embed:protocol/wayland.dtd])
> diff --git a/src/scanner.c b/src/scanner.c
> index d3e2328..04747e3 100644
> --- a/src/scanner.c
> +++ b/src/scanner.c
> @@ -40,13 +40,13 @@
>  
>  #if HAVE_LIBXML
>  #include <libxml/parser.h>
> -#endif
> -
> -#include "wayland-util.h"
>  
>  /* Embedded wayland.dtd file, see dtddata.S */
>  extern char DTD_DATA_begin;
>  extern int DTD_DATA_len;
> +#endif
> +
> +#include "wayland-util.h"
>  
>  enum side {
>  	CLIENT,
> -- 
> 2.4.10
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list