[Buildroot] [PATCH 2/3] package/wayland: build a host variant

Yann E. MORIN yann.morin.1998 at free.fr
Wed Jan 29 22:07:59 UTC 2014


From: "Yann E. MORIN" <yann.morin.1998 at free.fr>

Starting with 1.4.0, weston requires wayland-scanner to build its DT
So far, we got away with just hand-building wayland-scanner, and made
that available in HOST_DIR/usr/bin

But now, weston also requires wayland's DTD, which we did not care of
in our dirty little hack.

So, the best solution is to just build a host-variant of wayland, so
we get both wayland-scanner, and the DTD.

But then, we do not build the target wayland-scanner (he, wayland tries
to run it at build time...). So it is a matter of just tweaking a little
bit the host .pc file (which weston uses to find wayland-scanner, sigh...)
and fake it as a target .pc file.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>

---
Changes v1->V2
 - remove DTD on target  (Thomas)
---
 package/wayland/wayland.mk | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/package/wayland/wayland.mk b/package/wayland/wayland.mk
index a823d2b..dc64cf4 100644
--- a/package/wayland/wayland.mk
+++ b/package/wayland/wayland.mk
@@ -11,7 +11,8 @@ WAYLAND_LICENSE = MIT
 WAYLAND_LICENSE_FILES = COPYING
 
 WAYLAND_INSTALL_STAGING = YES
-WAYLAND_DEPENDENCIES = libffi host-pkgconf expat host-expat
+WAYLAND_DEPENDENCIES = libffi host-pkgconf host-wayland expat host-expat
+HOST_WAYLAND_DEPENDENCIES = host-libffi host-pkgconf host-expat
 
 # wayland needs a wayland-scanner program to generate some of its
 # source code. By default, it builds it with CC, so it doesn't work with
@@ -19,14 +20,22 @@ WAYLAND_DEPENDENCIES = libffi host-pkgconf expat host-expat
 # that the tool is already available.
 WAYLAND_CONF_OPT = --disable-scanner
 
-define WAYLAND_BUILD_SCANNER
-	(cd $(@D)/src/; \
-		$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
-			-o wayland-scanner scanner.c wayland-util.c -lexpat; \
-	 	$(INSTALL) -m 0755 -D wayland-scanner \
-			$(HOST_DIR)/usr/bin/wayland-scanner)
+# And we must provide a specialy-crafted wayland-scanner .pc file
+# which we vampirise and adapt from the host-wayland copy
+define WAYLAND_SCANNER_PC
+	$(INSTALL) -m 0644 -D $(HOST_DIR)/usr/share/pkgconfig/wayland-scanner.pc \
+	              $(STAGING_DIR)/usr/lib/pkgconfig/wayland-scanner.pc
+	$(SED) 's:^prefix=.*:prefix=/usr:' \
+	    -e 's:^wayland_scanner=.*:wayland_sanner=$(HOST_DIR)/usr/bin/wayland-scanner:' \
+	    $(STAGING_DIR)/usr/lib/pkgconfig/wayland-scanner.pc
 endef
+WAYLAND_POST_INSTALL_STAGING_HOOKS += WAYLAND_SCANNER_PC
 
-WAYLAND_POST_CONFIGURE_HOOKS += WAYLAND_BUILD_SCANNER
+# Remove the DTD from the target, it's not needed at runtime
+define WAYLAND_TARGET_CLEANUP
+	rm -rf $(TARGET_DIR)/usr/share/wayland
+endef
+WAYLAND_POST_INSTALL_TARGET_HOOKS += WAYLAND_TARGET_CLEANUP
 
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
1.8.1.2




More information about the buildroot mailing list