1 ################################################################################
5 ################################################################################
7 LIBGTK3_VERSION_MAJOR = 3.14
8 LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).11
9 LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
10 LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
11 LIBGTK3_LICENSE = LGPLv2+
12 LIBGTK3_LICENSE_FILES = COPYING
13 LIBGTK3_INSTALL_STAGING = YES
14 LIBGTK3_AUTORECONF = YES
17 ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
18 ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource \
19 PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/usr/bin/pkgconf
23 --enable-explicit-deps=no \
24 --enable-gtk2-dependency \
25 --disable-introspection
27 LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf
29 ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
30 LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi
32 LIBGTK3_CONF_OPTS += \
33 --enable-x11-backend \
34 --x-includes=$(STAGING_DIR)/usr/include/X11 \
35 --x-libraries=$(STAGING_DIR)/usr/lib
37 LIBGTK3_CONF_OPTS += --disable-x11-backend
40 ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y)
41 LIBGTK3_DEPENDENCIES += wayland libxkbcommon
42 LIBGTK3_CONF_OPTS += --enable-wayland-backend
44 LIBGTK3_CONF_OPTS += --disable-wayland-backend
47 ifeq ($(BR2_PACKAGE_LIBGTK3_BROADWAY),y)
48 LIBGTK3_CONF_OPTS += --enable-broadway-backend
50 LIBGTK3_CONF_OPTS += --disable-broadway-backend
53 ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
54 LIBGTK3_CONF_OPTS += --enable-xinerama
55 LIBGTK3_DEPENDENCIES += xlib_libXinerama
57 LIBGTK3_CONF_OPTS += --disable-xinerama
60 ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
61 LIBGTK3_CONF_OPTS += --enable-xrandr
62 LIBGTK3_DEPENDENCIES += xlib_libXrandr
64 LIBGTK3_CONF_OPTS += --disable-xrandr
67 ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
68 LIBGTK3_DEPENDENCIES += xlib_libXcursor
71 ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
72 LIBGTK3_CONF_OPTS += --enable-xfixes
73 LIBGTK3_DEPENDENCIES += xlib_libXfixes
75 LIBGTK3_CONF_OPTS += --disable-xfixes
78 ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
79 LIBGTK3_CONF_OPTS += --enable-xcomposite
80 LIBGTK3_DEPENDENCIES += xlib_libXcomposite
82 LIBGTK3_CONF_OPTS += --disable-xcomposite
85 ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
86 LIBGTK3_CONF_OPTS += --enable-xdamage
87 LIBGTK3_DEPENDENCIES += xlib_libXdamage
89 LIBGTK3_CONF_OPTS += --disable-xdamage
92 ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
93 LIBGTK3_CONF_OPTS += --enable-xkb
94 LIBGTK3_DEPENDENCIES += xlib_libxkbfile
96 LIBGTK3_CONF_OPTS += --disable-xkb
99 ifeq ($(BR2_PACKAGE_CUPS),y)
100 LIBGTK3_CONF_OPTS += --enable-cups
101 LIBGTK3_CONF_ENV += ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config
102 LIBGTK3_DEPENDENCIES += cups
104 LIBGTK3_CONF_OPTS += --disable-cups
107 ifeq ($(BR2_PACKAGE_LIBGTK3_DEMO),y)
108 LIBGTK3_DEPENDENCIES += hicolor-icon-theme shared-mime-info
110 define LIBGTK3_REMOVE_DEMOS
111 $(RM) $(TARGET_DIR)/usr/bin/gtk3-demo \
112 $(TARGET_DIR)/usr/bin/gtk3-demo-application
114 LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_REMOVE_DEMOS
117 ifeq ($(BR2_PACKAGE_LIBGTK3_TESTS),y)
118 LIBGTK3_CONF_OPTS += --enable-installed-tests
120 LIBGTK3_CONF_OPTS += --disable-installed-tests
123 define LIBGTK3_COMPILE_GLIB_SCHEMAS
124 $(HOST_DIR)/usr/bin/glib-compile-schemas \
125 $(TARGET_DIR)/usr/share/glib-2.0/schemas
128 LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS
130 # gtk+ >= 3.10 can build a native version of gtk-update-icon-cache if
131 # --enable-gtk2-dependency=no is set when invoking './configure'.
133 # Unfortunately, if the target toolchain is based on uClibc, the macro
134 # AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and
135 # will add '-lintl' to the default list of libraries for the linker (used
136 # for both native and target builds).
138 # But no native version of libintl is available (the functions are
139 # provided by glibc). So gtk-update-icon-cache will not build, and
140 # extract-strings neither.
142 # As a workaround, we build gtk-update-icon-cache on our own, set
143 # --enable-gtk2-dependency=yes and force './configure' to use our version.
145 HOST_LIBGTK3_DEPENDENCIES = \
151 HOST_LIBGTK3_CFLAGS = \
152 $(shell $(HOST_DIR)/usr/bin/pkgconf \
153 --cflags --libs gdk-pixbuf-2.0)
155 define HOST_LIBGTK3_CONFIGURE_CMDS
156 echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h
157 echo "#define HAVE_UNISTD_H 1" >> $(@D)/gtk/config.h
158 echo "#define HAVE_FTW_H 1" >> $(@D)/gtk/config.h
161 define HOST_LIBGTK3_BUILD_CMDS
162 $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
163 $(@D)/gtk/updateiconcache.c \
164 $(HOST_LIBGTK3_CFLAGS) \
165 -o $(@D)/gtk/gtk-update-icon-cache
166 $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
167 $(@D)/util/extract-strings.c \
168 $(HOST_LIBGTK3_CFLAGS) \
169 -o $(@D)/util/extract-strings
172 define HOST_LIBGTK3_INSTALL_CMDS
173 $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-update-icon-cache \
174 $(HOST_DIR)/usr/bin/gtk-update-icon-cache
175 $(INSTALL) -D -m 0755 $(@D)/util/extract-strings \
176 $(HOST_DIR)/usr/bin/extract-strings
179 $(eval $(autotools-package))
180 $(eval $(host-autotools-package))