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>
This commit is contained in:
parent
ba731f951c
commit
21f80b8982
|
@ -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)
|
||||
|
|
32
configure.ac
32
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"])
|
||||
|
|
Loading…
Reference in New Issue
Block a user