build: fix ./configure --disable-dtd-validation
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Mon, 29 Feb 2016 12:59:51 +0000 (14:59 +0200)
committerBryce Harrington <bryce@osg.samsung.com>
Mon, 29 Feb 2016 23:32:35 +0000 (15:32 -0800)
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.

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@gentoo.org
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Tested-by: Bryce Harrington <bryce@osg.samsung.com>
Makefile.am
configure.ac
src/scanner.c

index e850abc..49e25a6 100644 (file)
@@ -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
index af5b7cd..bbe62f7 100644 (file)
@@ -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])
index d3e2328..04747e3 100644 (file)
 
 #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,