[PATCH] build: always build wayland-scanner

Daniel Stone daniel at fooishbar.org
Fri Jul 17 04:23:04 PDT 2015


Hi,

On 17 July 2015 at 11:55, Burton, Ross <ross.burton at intel.com> wrote:
> Bump.  Lots of mails but no concrete acceptance or rejection.

Rationale is solid to me. Applied, bikeshedded naming (with Ross's
OK), tested, pushed.

Cheers,
Daniel

> Ross
>
> On 1 July 2015 at 22:51, Ross Burton <ross.burton at intel.com> wrote:
>>
>> 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)
>>
>> Signed-off-by: Ross Burton <ross.burton at intel.com>
>> ---
>>  Makefile.am  |  9 +++++----
>>  configure.ac | 34 ++++++++++++++++------------------
>>  2 files changed, 21 insertions(+), 22 deletions(-)
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 58f5595..151c54b 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 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..61d23bf 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])],
>> -              [],
>> -              [enable_scanner=yes])
>> +AC_ARG_WITH([host-scanner],
>> +            [AC_HELP_STRING([--with-host-scanner],
>> +                            [Use a host wayland-scanner])],
>> +            [],
>> +            [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(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"])
>> --
>> 2.1.4
>>
>
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>


More information about the wayland-devel mailing list