diff options
author | Ross Burton <ross.burton@intel.com> | 2015-07-01 22:51:01 +0100 |
---|---|---|
committer | Daniel Stone <daniels@collabora.com> | 2015-07-17 12:19:08 +0100 |
commit | 21f80b89826d07bf687de35a1992a0b9bca3a51d (patch) | |
tree | 1b4273564c6c97bd75008b465a4cd1aadc6f916c | |
parent | ba731f951c150ee83f0b8af03feec3fa18425ebf (diff) | |
download | wayland-21f80b89826d07bf687de35a1992a0b9bca3a51d.tar.gz |
build: always build wayland-scanner
The previous idiom for building a cross-compiled Wayland is to build once for
the build host (with --enable-scanner --disable-libraries) to get a
wayland-scanner binary that can then be used in a cross-compile (with
--disable-scanner). The problem with this is that the cross wayland is missing
a wayland-scanner binary, which means you then can't do any Wayland development
on the target.
Instead, always build wayland-scanner for the target and change
--enable/disable-scanner to --with/without-host-scanner. Normal builds use the
default of --without-host-scanner and run the wayland-scanner it just built, and
cross-compiled builds pass --with-host-scanner to use a previously built host
scanner but still get a wayland-scanner to install.
(a theoretically neater solution would be to build two scanners if required (one
to run and one to install), but automake makes this overly complicated)
[daniels: Bikeshedded naming with Ross's OK.]
Signed-off-by: Ross Burton <ross.burton@intel.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-rw-r--r-- | Makefile.am | 9 | ||||
-rw-r--r-- | configure.ac | 32 |
2 files changed, 20 insertions, 21 deletions
diff --git a/Makefile.am b/Makefile.am index 58f5595..2dbc216 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,16 +22,17 @@ dist_pkgdata_DATA = \ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = -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) wayland_scanner_LDADD = $(EXPAT_LIBS) libwayland-util.la -$(BUILT_SOURCES) : wayland-scanner pkgconfig_DATA += src/wayland-scanner.pc -else + +if USE_HOST_SCANNER wayland_scanner = wayland-scanner +else +$(BUILT_SOURCES) : wayland-scanner +wayland_scanner = $(top_builddir)/wayland-scanner endif libwayland_util_la_CFLAGS = $(AM_CFLAGS) diff --git a/configure.ac b/configure.ac index 3fa3cf4..7166f52 100644 --- a/configure.ac +++ b/configure.ac @@ -59,11 +59,11 @@ AC_ARG_ENABLE([libraries], [], [enable_libraries=yes]) -AC_ARG_ENABLE([scanner], - [AC_HELP_STRING([--disable-scanner], - [Disable compilation of wayland-scanner])], +AC_ARG_WITH([host-scanner], + [AC_HELP_STRING([--with-host-scanner], + [Use installed wayland-scanner from host PATH during build])], [], - [enable_scanner=yes]) + [with_host_scanner=no]) AC_ARG_ENABLE([documentation], [AC_HELP_STRING([--disable-documentation], @@ -71,7 +71,7 @@ AC_ARG_ENABLE([documentation], [], [enable_documentation=yes]) -AM_CONDITIONAL(ENABLE_SCANNER, test "x$enable_scanner" = xyes) +AM_CONDITIONAL(USE_HOST_SCANNER, test "x$with_host_scanner" = xyes) AM_CONDITIONAL(ENABLE_LIBRARIES, test "x$enable_libraries" = xyes) @@ -94,18 +94,16 @@ if test "x$enable_libraries" = "xyes"; then AC_CHECK_HEADERS([execinfo.h]) fi -if test "x$enable_scanner" = "xyes"; then - PKG_CHECK_MODULES(EXPAT, [expat], [], - [AC_CHECK_HEADERS(expat.h, [], - [AC_MSG_ERROR([Can't find expat.h. Please install expat.])]) - SAVE_LIBS="$LIBS" - AC_SEARCH_LIBS(XML_ParserCreate, expat, [], - [AC_MSG_ERROR([Can't find expat library. Please install expat.])]) - EXPAT_LIBS="$LIBS" - LIBS="$SAVE_LIBS" - AC_SUBST(EXPAT_LIBS) - ]) -fi +PKG_CHECK_MODULES(EXPAT, [expat], [], + [AC_CHECK_HEADERS(expat.h, [], + [AC_MSG_ERROR([Can't find expat.h. Please install expat.])]) + SAVE_LIBS="$LIBS" + AC_SEARCH_LIBS(XML_ParserCreate, expat, [], + [AC_MSG_ERROR([Can't find expat library. Please install expat.])]) + EXPAT_LIBS="$LIBS" + LIBS="$SAVE_LIBS" + AC_SUBST(EXPAT_LIBS) + ]) AC_PATH_PROG(XSLTPROC, xsltproc) AM_CONDITIONAL([HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"]) |