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 <[email protected]>
---
 Makefile.am  | 42 ++++++++++++++++++++++--------------------
 configure.ac | 30 ++++++++++++++++++++----------
 2 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 0ea300a..8ebc845 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,6 +15,27 @@ 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
+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
+
+if ENABLE_LIBRARIES
 lib_LTLIBRARIES = libwayland-server.la libwayland-client.la
 noinst_LTLIBRARIES = libwayland-util.la
 
@@ -32,14 +53,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 +77,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 +224,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

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to