[PATCH v2 wayland] build: Allow disabling building of wayland libraries

Peter Hutterer peter.hutterer at who-t.net
Mon Jun 15 17:09:04 PDT 2015


On Mon, Jun 15, 2015 at 11:07:35AM -0500, Derek Foreman wrote:
> When cross-compiling it may be useful to build only the wayland-scanner
> natively.  This patch makes it possible to disable build of the libraries.
> 
> This also allows us to relax some of the build requirements when compiling
> just the scanner.
> 
> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
   Peter
> ---
> 
> Move noinst_LTLIBRARIES = libwayland-util.la out of the ENABLE_LIBRARIES
> conditional.
> 
>  Makefile.am  | 45 ++++++++++++++++++++++++---------------------
>  configure.ac | 30 ++++++++++++++++++++----------
>  2 files changed, 44 insertions(+), 31 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index 0ea300a..449415c 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -15,9 +15,31 @@ dist_pkgdata_DATA =				\
>  pkgconfigdir = $(libdir)/pkgconfig
>  pkgconfig_DATA =
>  
> -lib_LTLIBRARIES = libwayland-server.la libwayland-client.la
> +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
> +wayland_scanner = wayland-scanner
> +endif
> +
> +libwayland_util_la_SOURCES =			\
> +	src/connection.c			\
> +	src/wayland-util.c			\
> +	src/wayland-util.h			\
> +	src/wayland-os.c			\
> +	src/wayland-os.h			\
> +	src/wayland-private.h
> +
>  noinst_LTLIBRARIES = libwayland-util.la
>  
> +if ENABLE_LIBRARIES
> +lib_LTLIBRARIES = libwayland-server.la libwayland-client.la
> +
>  include_HEADERS =				\
>  	src/wayland-util.h			\
>  	src/wayland-server.h			\
> @@ -32,14 +54,6 @@ nodist_include_HEADERS =			\
>  	protocol/wayland-server-protocol.h	\
>  	protocol/wayland-client-protocol.h
>  
> -libwayland_util_la_SOURCES =			\
> -	src/connection.c			\
> -	src/wayland-util.c			\
> -	src/wayland-util.h			\
> -	src/wayland-os.c			\
> -	src/wayland-os.h			\
> -	src/wayland-private.h
> -
>  libwayland_server_la_CFLAGS = $(FFI_CFLAGS) $(GCC_CFLAGS) -pthread
>  libwayland_server_la_LIBADD = $(FFI_LIBS) libwayland-util.la -lrt -lm
>  libwayland_server_la_LDFLAGS = -version-info 1:0:1
> @@ -64,18 +78,6 @@ nodist_libwayland_client_la_SOURCES =		\
>  
>  pkgconfig_DATA += src/wayland-client.pc src/wayland-server.pc
>  
> -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
> -wayland_scanner = wayland-scanner
> -endif
> -
>  protocol/%-protocol.c : $(top_srcdir)/protocol/%.xml
>  	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(wayland_scanner) code < $< > $@
>  
> @@ -223,3 +225,4 @@ AM_CFLAGS = $(GCC_CFLAGS) $(FFI_CFLAGS)
>  
>  exec_fd_leak_checker_SOURCES = tests/exec-fd-leak-checker.c
>  exec_fd_leak_checker_LDADD = libtest-runner.la
> +endif
> diff --git a/configure.ac b/configure.ac
> index 952f231..39e3107 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -54,16 +54,11 @@ AC_SUBST(GCC_CFLAGS)
>  
>  AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate])
>  
> -AC_CHECK_DECL(SFD_CLOEXEC,[],
> -	      [AC_MSG_ERROR("SFD_CLOEXEC is needed to compile wayland")],
> -	      [[#include <sys/signalfd.h>]])
> -AC_CHECK_DECL(TFD_CLOEXEC,[],
> -	      [AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland")],
> -	      [[#include <sys/timerfd.h>]])
> -AC_CHECK_DECL(CLOCK_MONOTONIC,[],
> -	      [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland")],
> -	      [[#include <time.h>]])
> -AC_CHECK_HEADERS([execinfo.h])
> +AC_ARG_ENABLE([libraries],
> +	      [AC_HELP_STRING([--disable-libraries],
> +			      [Disable compilation of wayland libraries])],
> +	      [],
> +	      [enable_libraries=yes])
>  
>  AC_ARG_ENABLE([scanner],
>                [AC_HELP_STRING([--disable-scanner],
> @@ -79,11 +74,26 @@ AC_ARG_ENABLE([documentation],
>  
>  AM_CONDITIONAL(ENABLE_SCANNER, test "x$enable_scanner" = xyes)
>  
> +AM_CONDITIONAL(ENABLE_LIBRARIES, test "x$enable_libraries" = xyes)
> +
>  AC_ARG_WITH(icondir, [  --with-icondir=<dir>    Look for cursor icons here],
>  		     [  ICONDIR=$withval],
>  		     [  ICONDIR=${datadir}/icons])
>  AC_SUBST([ICONDIR])
>  
> +if test "x$enable_libraries" = "xyes"; then
> +	AC_CHECK_DECL(SFD_CLOEXEC,[],
> +		      [AC_MSG_ERROR("SFD_CLOEXEC is needed to compile wayland libraries")],
> +		      [[#include <sys/signalfd.h>]])
> +	AC_CHECK_DECL(TFD_CLOEXEC,[],
> +		      [AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland libraries")],
> +		      [[#include <sys/timerfd.h>]])
> +	AC_CHECK_DECL(CLOCK_MONOTONIC,[],
> +		      [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")],
> +		      [[#include <time.h>]])
> +	AC_CHECK_HEADERS([execinfo.h])
> +fi
> +
>  if test "x$enable_scanner" = "xyes"; then
>  	PKG_CHECK_MODULES(EXPAT, [expat], [],
>  		[AC_CHECK_HEADERS(expat.h, [],
> -- 
> 2.1.4
> 


More information about the wayland-devel mailing list