From 5cfdbef3d29919ef37cfe309ff907763d849febf Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Wed, 17 Jun 2015 15:13:50 -0500 Subject: [PATCH] build: Allow disabling building of wayland libraries 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. Signed-off-by: Derek Foreman Reviewed-by: Peter Hutterer Reviewed-by: Pekka Paalanen --- Makefile.am | 47 +++++++++++++++++++++++++---------------------- configure.ac | 30 ++++++++++++++++++++---------- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/Makefile.am b/Makefile.am index 34f8473..31adc97 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,9 +22,32 @@ 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_CFLAGS = $(FFI_CFLAGS) $(GCC_CFLAGS) +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 \ @@ -39,15 +62,6 @@ nodist_include_HEADERS = \ protocol/wayland-server-protocol.h \ protocol/wayland-client-protocol.h -libwayland_util_la_CFLAGS = $(FFI_CFLAGS) $(GCC_CFLAGS) -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 @@ -72,18 +86,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 < $< > $@ @@ -224,3 +226,4 @@ os_wrappers_test_LDADD = libtest-runner.la 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 ]]) -AC_CHECK_DECL(TFD_CLOEXEC,[], - [AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland")], - [[#include ]]) -AC_CHECK_DECL(CLOCK_MONOTONIC,[], - [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland")], - [[#include ]]) -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= 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 ]]) + AC_CHECK_DECL(TFD_CLOEXEC,[], + [AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland libraries")], + [[#include ]]) + AC_CHECK_DECL(CLOCK_MONOTONIC,[], + [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")], + [[#include ]]) + AC_CHECK_HEADERS([execinfo.h]) +fi + if test "x$enable_scanner" = "xyes"; then PKG_CHECK_MODULES(EXPAT, [expat], [], [AC_CHECK_HEADERS(expat.h, [],