eb56385b24
As reported by Miroslav Ignjatovic in bug #2983, our hack in xlib_libX11 to build makekeys for the host does not work, for several reasons: * As we are building a tool for the host, we shouldn't pass -I$(STAGING_DIR)/usr/include, since the $(STAGING_DIR) contains headers of packages for the target. * Instead, we should use the headers in $(HOST_DIR)/usr/include. They were not used due to a typo: $(HOST_CFLAGS) must be used instead of $(HOSTCFLAGS). * Finally, in order for makekeys to find the required headers in $(HOST_DIR)/usr/include, we must depend on host-xproto_xproto. This fixes bug #2983. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
43 lines
1.9 KiB
Makefile
43 lines
1.9 KiB
Makefile
################################################################################
|
|
#
|
|
# xlib_libX11 -- X.Org X11 library
|
|
#
|
|
################################################################################
|
|
|
|
XLIB_LIBX11_VERSION = 1.3.2
|
|
XLIB_LIBX11_SOURCE = libX11-$(XLIB_LIBX11_VERSION).tar.bz2
|
|
XLIB_LIBX11_SITE = http://xorg.freedesktop.org/releases/individual/lib
|
|
XLIB_LIBX11_AUTORECONF = YES
|
|
XLIB_LIBX11_INSTALL_STAGING = YES
|
|
XLIB_LIBX11_DEPENDENCIES = libxcb xutil_util-macros xlib_xtrans xlib_libXau xlib_libXdmcp xproto_kbproto xproto_xproto xproto_xextproto xproto_inputproto xproto_xf86bigfontproto xproto_bigreqsproto xproto_xcmiscproto host-xproto_xproto
|
|
XLIB_LIBX11_CONF_OPT = \
|
|
--disable-malloc0returnsnull \
|
|
--with-xcb \
|
|
--enable-shared \
|
|
--disable-static \
|
|
--with-keysymdef=$(STAGING_DIR)/usr/include/X11/keysymdef.h \
|
|
--disable-specs
|
|
|
|
HOST_XLIB_LIBX11_DEPENDENCIES = host-xproto_xextproto host-libxcb host-xutil_util-macros host-xlib_xtrans host-xlib_libXau host-xlib_libXdmcp host-xproto_kbproto host-xproto_xproto host-xproto_xextproto host-xproto_inputproto host-xproto_xf86bigfontproto xproto_bigreqsproto host-xproto_xcmiscproto
|
|
|
|
# src/util/makekeys is executed at build time to generate ks_tables.h, so
|
|
# it should get compiled for the host. The libX11 makefile unfortunately
|
|
# doesn't know about cross compilation so this doesn't work.
|
|
# Long term, we should probably teach it about HOSTCC / HOST_CFLAGS, but for
|
|
# now simply disable the src/util Makefile and build makekeys by hand in
|
|
# advance
|
|
define XLIB_LIBX11_DISABLE_MAKEKEYS_BUILD
|
|
echo '' > $(@D)/src/util/Makefile.am
|
|
endef
|
|
|
|
XLIB_LIBX11_POST_EXTRACT_HOOKS += XLIB_LIBX11_DISABLE_MAKEKEYS_BUILD
|
|
|
|
define XLIB_LIBX11_BUILD_MAKEKEYS_FOR_HOST
|
|
cd $(@D)/src/util && $(HOSTCC) $(HOST_CFLAGS) -o makekeys makekeys.c
|
|
endef
|
|
|
|
XLIB_LIBX11_POST_CONFIGURE_HOOKS += XLIB_LIBX11_BUILD_MAKEKEYS_FOR_HOST
|
|
|
|
$(eval $(call AUTOTARGETS,package/x11r7,xlib_libX11))
|
|
$(eval $(call AUTOTARGETS,package/x11r7,xlib_libX11,host))
|