1################################################################################ 2# 3# libgtk3 4# 5################################################################################ 6 7LIBGTK3_VERSION_MAJOR = 3.24 8LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).30 9LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz 10LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR) 11LIBGTK3_LICENSE = LGPL-2.0+ 12LIBGTK3_LICENSE_FILES = COPYING 13LIBGTK3_CPE_ID_VENDOR = gnome 14LIBGTK3_CPE_ID_PRODUCT = gtk 15LIBGTK3_INSTALL_STAGING = YES 16LIBGTK3_AUTORECONF = YES 17 18LIBGTK3_CONF_ENV = \ 19 ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/bin/gtk-update-icon-cache \ 20 ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/bin/gdk-pixbuf-csource \ 21 PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/bin/pkgconf 22 23LIBGTK3_CONF_OPTS = \ 24 --disable-glibtest \ 25 --enable-explicit-deps=no 26HOST_LIBGTK3_CONF_OPTS = --disable-introspection 27 28# Override pkg-config pkgdatadir variable, it needs the prefix 29LIBGTK3_MAKE_OPTS = \ 30 WAYLAND_PROTOCOLS_DATADIR=$(STAGING_DIR)/usr/share/wayland-protocols \ 31 LIBS=$(TARGET_NLS_LIBS) 32 33LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango \ 34 gdk-pixbuf libepoxy $(TARGET_NLS_DEPENDENCIES) 35 36ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) 37LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi 38 39LIBGTK3_CONF_OPTS += \ 40 --enable-x11-backend \ 41 --x-includes=$(STAGING_DIR)/usr/include/X11 \ 42 --x-libraries=$(STAGING_DIR)/usr/lib 43else 44LIBGTK3_CONF_OPTS += --disable-x11-backend 45endif 46 47ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) 48LIBGTK3_CONF_OPTS += --enable-introspection 49LIBGTK3_DEPENDENCIES += gobject-introspection 50else 51LIBGTK3_CONF_OPTS += --disable-introspection 52endif 53 54ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y) 55LIBGTK3_DEPENDENCIES += wayland wayland-protocols libxkbcommon 56LIBGTK3_CONF_OPTS += --enable-wayland-backend 57else 58LIBGTK3_CONF_OPTS += --disable-wayland-backend 59endif 60 61ifeq ($(BR2_PACKAGE_LIBGTK3_BROADWAY),y) 62LIBGTK3_CONF_OPTS += --enable-broadway-backend 63else 64LIBGTK3_CONF_OPTS += --disable-broadway-backend 65endif 66 67ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) 68LIBGTK3_CONF_OPTS += --enable-xinerama 69LIBGTK3_DEPENDENCIES += xlib_libXinerama 70else 71LIBGTK3_CONF_OPTS += --disable-xinerama 72endif 73 74ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) 75LIBGTK3_CONF_OPTS += --enable-xrandr 76LIBGTK3_DEPENDENCIES += xlib_libXrandr 77else 78LIBGTK3_CONF_OPTS += --disable-xrandr 79endif 80 81ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y) 82LIBGTK3_DEPENDENCIES += xlib_libXcursor 83endif 84 85ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y) 86LIBGTK3_CONF_OPTS += --enable-xfixes 87LIBGTK3_DEPENDENCIES += xlib_libXfixes 88else 89LIBGTK3_CONF_OPTS += --disable-xfixes 90endif 91 92ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y) 93LIBGTK3_CONF_OPTS += --enable-xcomposite 94LIBGTK3_DEPENDENCIES += xlib_libXcomposite 95else 96LIBGTK3_CONF_OPTS += --disable-xcomposite 97endif 98 99ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y) 100LIBGTK3_CONF_OPTS += --enable-xdamage 101LIBGTK3_DEPENDENCIES += xlib_libXdamage 102else 103LIBGTK3_CONF_OPTS += --disable-xdamage 104endif 105 106ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y) 107LIBGTK3_CONF_OPTS += --enable-xkb 108LIBGTK3_DEPENDENCIES += xlib_libxkbfile 109else 110LIBGTK3_CONF_OPTS += --disable-xkb 111endif 112 113ifeq ($(BR2_PACKAGE_CUPS),y) 114LIBGTK3_CONF_OPTS += --enable-cups 115LIBGTK3_CONF_ENV += ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config 116LIBGTK3_DEPENDENCIES += cups 117else 118LIBGTK3_CONF_OPTS += --disable-cups 119endif 120 121ifeq ($(BR2_PACKAGE_LIBGTK3_DEMO),y) 122LIBGTK3_DEPENDENCIES += hicolor-icon-theme shared-mime-info 123else 124define LIBGTK3_REMOVE_DEMOS 125 $(RM) $(TARGET_DIR)/usr/bin/gtk3-demo \ 126 $(TARGET_DIR)/usr/bin/gtk3-demo-application 127endef 128LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_REMOVE_DEMOS 129endif 130 131ifeq ($(BR2_PACKAGE_LIBGTK3_TESTS),y) 132LIBGTK3_CONF_OPTS += --enable-installed-tests 133else 134LIBGTK3_CONF_OPTS += --disable-installed-tests 135endif 136 137define LIBGTK3_COMPILE_GLIB_SCHEMAS 138 $(HOST_DIR)/bin/glib-compile-schemas \ 139 $(TARGET_DIR)/usr/share/glib-2.0/schemas 140endef 141 142LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS 143 144# gtk+ >= 3.10 can build a native version of gtk-update-icon-cache if 145# --enable-gtk2-dependency=no is set when invoking './configure'. 146# 147# Unfortunately, if the target toolchain is based on uClibc, the macro 148# AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and 149# will add '-lintl' to the default list of libraries for the linker (used 150# for both native and target builds). 151# 152# But no native version of libintl is available (the functions are 153# provided by glibc). So gtk-update-icon-cache will not build. 154# 155# As a workaround, we build gtk-update-icon-cache on our own, set 156# --enable-gtk2-dependency=yes and force './configure' to use our version. 157 158HOST_LIBGTK3_DEPENDENCIES = \ 159 host-libglib2 \ 160 host-libpng \ 161 host-gdk-pixbuf \ 162 host-pkgconf \ 163 host-librsvg 164 165HOST_LIBGTK3_CFLAGS = \ 166 `$(HOST_MAKE_ENV) $(PKG_CONFIG_HOST_BINARY) --cflags --libs gdk-pixbuf-2.0` \ 167 `$(HOST_MAKE_ENV) $(PKG_CONFIG_HOST_BINARY) --cflags --libs gio-2.0` 168 169define HOST_LIBGTK3_CONFIGURE_CMDS 170 echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h 171 echo "#define HAVE_UNISTD_H 1" >> $(@D)/gtk/config.h 172 echo "#define HAVE_FTW_H 1" >> $(@D)/gtk/config.h 173endef 174 175define HOST_LIBGTK3_BUILD_CMDS 176 $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ 177 $(@D)/gtk/updateiconcache.c \ 178 $(HOST_LIBGTK3_CFLAGS) \ 179 -o $(@D)/gtk/gtk-update-icon-cache 180 $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ 181 $(@D)/gtk/encodesymbolic.c \ 182 $(HOST_LIBGTK3_CFLAGS) \ 183 -o $(@D)/gtk/gtk-encode-symbolic-svg 184endef 185 186define HOST_LIBGTK3_INSTALL_CMDS 187 $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-update-icon-cache \ 188 $(HOST_DIR)/bin/gtk-update-icon-cache 189 $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-encode-symbolic-svg \ 190 $(HOST_DIR)/bin/gtk-encode-symbolic-svg 191endef 192 193# Create icon-theme.cache for each of the icon directories/themes 194# It's not strictly necessary but speeds up lookups 195define LIBGTK3_UPDATE_ICON_CACHE 196 find $(TARGET_DIR)/usr/share/icons -maxdepth 1 -mindepth 1 -type d \ 197 -exec $(HOST_DIR)/bin/gtk-update-icon-cache {} \; 198endef 199LIBGTK3_TARGET_FINALIZE_HOOKS += LIBGTK3_UPDATE_ICON_CACHE 200 201ifneq ($(BR2_PACKAGE_HAS_LIBEGL),) 202define LIBGTK3_GDK_GL_GLES 203 echo "export GDK_GL=gles" > $(@D)/gdk.sh 204 $(INSTALL) -D -m 0644 $(@D)/gdk.sh \ 205 $(TARGET_DIR)/etc/profile.d/gdk.sh 206endef 207 208LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_GDK_GL_GLES 209endif 210 211$(eval $(autotools-package)) 212$(eval $(host-autotools-package)) 213