# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
m4_define([gtk_major_version], [3])
-m4_define([gtk_minor_version], [3])
-m4_define([gtk_micro_version], [20])
+m4_define([gtk_minor_version], [7])
+m4_define([gtk_micro_version], [7])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
[gtk+])
-AC_CONFIG_HEADER([config.h])
+AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
+AC_CANONICAL_HOST
+AC_CANONICAL_TARGET
+
# Define a string for the earliest version that this release has
# backwards binary compatibility with for all interfaces a module
# might. Unless we add module-only API with lower stability
m4_define([gtk_binary_version], [3.0.0])
# required versions of other packages
-m4_define([glib_required_version], [2.31.20])
-m4_define([pango_required_version], [1.29.0])
-m4_define([atk_required_version], [2.1.5])
+m4_define([glib_required_version], [2.35.3])
+m4_define([pango_required_version], [1.32.4])
+m4_define([atk_required_version], [2.5.3])
m4_define([cairo_required_version], [1.10.0])
-m4_define([gdk_pixbuf_required_version], [2.25.2])
-m4_define([introspection_required_version], [0.10.1])
+m4_define([gdk_pixbuf_required_version], [2.26.0])
+m4_define([introspection_required_version], [1.32.0])
GLIB_REQUIRED_VERSION=glib_required_version
PANGO_REQUIRED_VERSION=pango_required_version
ATK_REQUIRED_VERSION=atk_required_version
# Checks for programs.
AC_PROG_CC
+AX_PROG_CC_FOR_BUILD
AC_PROG_CC_C_O
-AC_PROG_CC_STDC
+AC_PROG_MKDIR_P
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
-AC_CANONICAL_HOST
-
MATH_LIB=-lm
AC_MSG_CHECKING([for native Win32])
LIB_EXE_MACHINE_FLAG=X86
EXE_MANIFEST_ARCHITECTURE=X86
+DISABLE_ON_W32=''
case "$host" in
*-*-mingw*)
+ dnl Comment-out certain gtk3.types.in lines
+ DISABLE_ON_W32='%'
os_win32=yes
gio_can_sniff=no
MATH_LIB=
esac
AC_MSG_RESULT([$os_win32])
+AC_SUBST(DISABLE_ON_W32)
AC_SUBST(LIB_EXE_MACHINE_FLAG)
AC_SUBST(EXE_MANIFEST_ARCHITECTURE)
[enable bundle-based relocation functions])],
[quartz_relocation=yes])
+AC_ARG_ENABLE(wayland-cairo-gl,
+ AS_HELP_STRING([--enable-wayland-cairo-gl],
+ [enable the use of Cairo GL in the Wayland backend]),
+ [enable_wayland_cairo_gl=yes])
+
+
cairo_backends=
backend_immodules=
+have_gio_unix=no
GDK_BACKENDS=
GDK_EXTRA_LIBS=
GDK_EXTRA_CFLAGS=
GDK_WINDOWING=
-GIO_PACKAGE=gio-2.0
PANGO_PACKAGES="pango pangocairo"
if test "$enable_x11_backend" = "yes"; then
GDK_BACKENDS="$GDK_BACKENDS x11"
# Pull in gio-unix for GDesktopAppInfo usage, see at least
# gdkapplaunchcontext-x11.c
- GIO_PACKAGE=gio-unix-2.0
+ have_gio_unix=yes
backend_immodules="$backend_immodules,xim"
GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_X11"
AM_CONDITIONAL(USE_WIN32, false)
fi
+DISABLE_ON_QUARTZ=''
if test "x$enable_quartz_backend" = xyes; then
cairo_backends="$cairo_backends cairo-quartz"
GDK_BACKENDS="$GDK_BACKENDS quartz"
GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_QUARTZ"
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
+ DISABLE_ON_QUARTZ='%'
AM_CONDITIONAL(USE_QUARTZ, true)
if test "x$quartz_relocation" = xyes; then
AC_DEFINE([QUARTZ_RELOCATION], [1], [Use NSBundle functions to determine load paths for libraries, translations, etc.])
fi
+ # Pull in gio-unix for GDesktopAppInfo usage, see at least
+ # gdkapplaunchcontext-x11.c
+ have_gio_unix=yes
else
AM_CONDITIONAL(USE_QUARTZ, false)
fi
+AC_SUBST(DISABLE_ON_QUARTZ)
-
-if test "x$enable_broadway_backend" == xyes; then
+if test "x$enable_broadway_backend" = xyes; then
GDK_BACKENDS="$GDK_BACKENDS broadway"
cairo_backends="$cairo_backends cairo"
+ have_gio_unix=yes
GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_BROADWAY"
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lz"
AM_CONDITIONAL(USE_BROADWAY, false)
fi
-if test "x$enable_wayland_backend" == "xyes"; then
- # Wayland uses cairo-gl
- cairo_backends="$cairo_backends cairo-gl"
+if test "x$enable_wayland_backend" = "xyes"; then
+ if test "x$enable_wayland_cairo_gl" = "xyes"; then
+ # Wayland can use cairo-gl
+ cairo_backends="$cairo_backends cairo-gl"
+ AC_DEFINE(GDK_WAYLAND_USE_EGL, [1], [Whether to use EGL in Wayland backend])
+ else
+ # For the cairo image backend
+ cairo_backends="$cairo_backends cairo"
+ fi
GDK_BACKENDS="$GDK_BACKENDS wayland"
- GIO_PACKAGE=gio-unix-2.0
+ have_gio_unix=yes
GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_WAYLAND"
- WAYLAND_PACKAGES="wayland-client xkbcommon wayland-egl egl"
+ WAYLAND_PACKAGES="wayland-client >= 1.0.0 xkbcommon >= 0.2.0 wayland-cursor"
+ if test "x$enable_wayland_cairo_gl" = "xyes"; then
+ WAYLAND_PACKAGES="$WAYLAND_PACKAGES wayland-egl egl"
+ fi
AM_CONDITIONAL(USE_WAYLAND, true)
else
AM_CONDITIONAL(USE_WAYLAND, false)
if test "x$enable_debug" = "xno"; then
GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
else
- GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
+ GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
fi
fi
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
gobject gmodule-no-export)
-dnl
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
dnl
gtk_save_LIBS=$LIBS
AC_MSG_RESULT([no])
fi
+#
+# Disable deprecation checks for all libraries we depend on on stable branches.
+# This is so newer versions of those libraries don't cause more warnings with
+# a stable GTK version.
+# We don't ever want to turn off deprecation warnings for master however, because
+# that's where we get rid of deprecated API we use.
+#
+if test m4_eval(gtk_minor_version % 2) = 0 ; then
+ AC_DEFINE_UNQUOTED(GLIB_DISABLE_DEPRECATION_WARNINGS, 1,
+ [Disable deprecation warnings from glib])
+fi
+
+dnl
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
-# Check for uxtheme.h (for MS-Windows Engine)
-AC_MSG_CHECKING(for uxtheme.h)
-AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <uxtheme.h>]])],
- [gtk_uxtheme_h=yes], [gtk_uxtheme_h=no])
-if test $gtk_uxtheme_h = yes; then
- AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
-fi
-AC_MSG_RESULT($gtk_uxtheme_h)
-
-# Check for round()
-AC_CHECK_LIB(m,round,have_round=yes,have_round=no)
-if test $have_round = yes; then
- AC_DEFINE(HAVE_ROUND, 1, [Define to 1 if round() is available])
-fi
-
-# Check for rint()
-AC_CHECK_LIB(m,rint,have_rint=yes,have_rint=no)
-if test $have_rint = yes; then
- AC_DEFINE(HAVE_RINT, 1, [Define to 1 if rint() is available])
-fi
+# Check for round(), rint(), isnan(), isinf() and nearbyint()
+AC_CHECK_LIB(m,round,,)
+AC_CHECK_FUNCS(round rint nearbyint)
+AC_CHECK_DECLS([isnan, isinf], [], [], [[#include <math.h>]])
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
-if test "x$cross_compiling" = xyes || test "x$enable_gtk2_dependency" = xyes; then
- AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
- if test x$GTK_UPDATE_ICON_CACHE = xno; then
- REBUILD_PNGS=#
- fi
-fi
+AS_IF([test "x$enable_gtk2_dependency" = xyes],
+ [AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
+ if test x$GTK_UPDATE_ICON_CACHE = xno; then
+ REBUILD_PNGS=#
+ fi],
+
+ [test "x$cross_compiling" = xyes],
+ [# If no GTK+2 dependency and cross compiling, we need to find a host gdk-pixbuf.
+ # pkg.m4 blocks all variable starting with PKG, so allow this one
+ m4_pattern_allow([PKG_CONFIG_FOR_BUILD])
+
+ AS_IF([test x$PKG_CONFIG_FOR_BUILD = x],
+ [AC_MSG_ERROR([You must define PKG_CONFIG_FOR_BUILD when cross compiling])])
+
+ AC_MSG_CHECKING([for native gdk-pixbuf])
+ AS_IF([AC_RUN_LOG([$PKG_CONFIG_FOR_BUILD --exists --print-errors gdk-pixbuf-2.0])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_ERROR([native gdk-pixbuf not found])])
-AM_CONDITIONAL(USE_EXTERNAL_ICON_CACHE, [test "x$cross_compiling" = xyes || test "x$enable_gtk2_dependency" = xyes])
+ NATIVE_GDKPIXBUF_CFLAGS=`$PKG_CONFIG_FOR_BUILD --cflags gdk-pixbuf-2.0`
+ NATIVE_GDKPIXBUF_LIBS=`$PKG_CONFIG_FOR_BUILD --libs gdk-pixbuf-2.0`
+ AC_SUBST(NATIVE_GDKPIXBUF_CFLAGS)
+ AC_SUBST(NATIVE_GDKPIXBUF_LIBS)]
+)
+
+AM_CONDITIONAL(USE_EXTERNAL_ICON_CACHE, [test "x$enable_gtk2_dependency" = xyes])
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
# Xext is optional, the chances a system has *none* of these things is so
# small that we just unconditionally require it.
AC_CHECK_FUNC(XOpenDisplay, :,
- AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
+ AC_MSG_ERROR([*** libX11 and libXext not found. Check 'config.log' for more details.]))
AC_CHECK_FUNC(XextFindDisplay, :,
- AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
+ AC_MSG_ERROR([*** libX11 and libXext not found. Check 'config.log' for more details.]))
# Check for xReply
AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlibint.h>]],
- [[xReply *rep;]])],
+ [[xReply *rep = NULL;
+ rep = rep;]])],
[AC_MSG_RESULT([no])],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>]],
- [[xReply *rep;]])],
+ [[xReply *rep = NULL;
+ rep = rep;]])],
[AC_MSG_RESULT([yes])
AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], [1],
[Define if <X11/extensions/XIproto.h> needed for xReply])],
AM_CONDITIONAL(USE_X11, false)
fi
+# Check for gio-unix
+if test "$have_gio_unix" = "yes"; then
+ GDK_GIO_PACKAGE=gio-unix-2.0
+ AC_DEFINE([HAVE_GIO_UNIX], [1],
+ [Define if gio-unix is available])
+else
+ GDK_GIO_PACKAGE=gio-2.0
+fi
+
# Check for Pango flags
AC_MSG_CHECKING(Pango flags)
LDFLAGS="$saved_ldflags"
GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 cairo cairo-gobject"
-GDK_PRIVATE_PACKAGES="$GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends"
+GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends"
if test "x$enable_x11_backend" = xyes; then
GDK_PRIVATE_PACKAGES="$GDK_PRIVATE_PACKAGES pangoft2"
fi
-GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES $GDK_PRIVATE_PACKAGES` $MATH_LIB"
-GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PACKAGES $GDK_PRIVATE_PACKAGES` $GDK_EXTRA_CFLAGS"
+PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES)
+GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB"
+GDK_DEP_CFLAGS="$GDK_DEP_CFLAGS $GDK_EXTRA_CFLAGS"
#
# If we aren't writing explicit dependencies, then don't put the extra libraries we need
# into the pkg-config files
# Check for Accessibility Toolkit flags
########################################
-ATK_PACKAGES=atk
-AC_MSG_CHECKING(ATK flags)
-if $PKG_CONFIG --exists $ATK_PACKAGES ; then
- ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
- ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
-
- AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
+if test x$enable_x11_backend = xyes; then
+ ATK_PACKAGES="atk atk-bridge-2.0"
else
- AC_MSG_ERROR([
-*** Accessibility Toolkit not found. Accessibility Toolkit is required
-*** to build GTK+.
-])
+ ATK_PACKAGES="atk"
fi
-if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
- :
-else
- gtk_save_LIBS="$LIBS"
- LIBS="$ATK_LIBS $LIBS"
- AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
- *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
- *** to build GTK+]))
- LIBS="$gtk_save_LIBS"
-fi
+PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
GTK_PACKAGES="atk cairo cairo-gobject gdk-pixbuf-2.0 gio-2.0"
-GTK_PRIVATE_PACKAGES=""
+GTK_PRIVATE_PACKAGES="$ATK_PACKAGES"
if test "x$enable_x11_backend" = xyes; then
GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2"
fi
+if test "$have_gio_unix" = "yes"; then
+ GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES gio-unix-2.0"
+fi
GTK_EXTRA_LIBS=
GTK_EXTRA_CFLAGS=
-GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES $GTK_PRIVATE_PACKAGES` $GTK_EXTRA_LIBS $MATH_LIB"
-GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PACKAGES $GTK_PACKAGES $GTK_PRIVATE_PACKAGES` $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
+PKG_CHECK_MODULES(GTK_DEP, $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES $GTK_PRIVATE_PACKAGES)
+GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X $GTK_DEP_LIBS $GTK_EXTRA_LIBS $MATH_LIB"
+GTK_DEP_CFLAGS="$GTK_DEP_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
if test x"$os_win32" = xyes; then
GTK_EXTRA_CFLAGS="$msnative_struct"
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -lt 2; then
AC_MSG_ERROR([CUPS >= 1.2 not found])
fi
+ if test $CUPS_API_MAJOR -gt 1 -o \
+ $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 6; then
+ AC_DEFINE(HAVE_CUPS_API_1_6, 1,
+ [Define to 1 if CUPS 1.6 API is available])
+
+ fi
AC_SUBST(CUPS_API_MAJOR)
AC_SUBST(CUPS_API_MINOR)
GLIB_GSETTINGS
-#############
-# Resources #
-#############
-
-GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0`
-AC_SUBST(GLIB_COMPILE_RESOURCES)
-
##################################################
# GObject introspection
##################################################
GTK_DOC_CHECK([1.11],[--flavour no-tmpl])
-AC_CHECK_PROG(DB2HTML, db2html, true, false)
-AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
-
AC_ARG_ENABLE(man,
[AS_HELP_STRING([--enable-man],
- [regenerate man pages from Docbook [default=no]])],
- [enable_man=yes],
- [enable_man=no])
-
-if test "${enable_man}" != no; then
- dnl
- dnl Check for xsltproc
- dnl
+ [generate man pages [default=auto]])],,
+ enable_man=maybe)
+
+if test "$enable_man" != no; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test -z "$XSLTPROC"; then
+ if test "$enable_man" = yes ; then
+ AC_MSG_ERROR([xsltproc is required for --enable-man])
+ fi
enable_man=no
fi
+fi
- dnl check for DocBook DTD and stylesheets in the local catalog.
+if test "$enable_man" != no; then
+ dnl check for DocBook DTD in the local catalog
JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
- [DocBook XML DTD V4.1.2],,enable_man=no)
+ [DocBook XML DTD V4.1.2], [have_docbook_dtd=yes], [have_docbook_dtd=no])
+ if test "$have_docbook_dtd" != yes; then
+ if test "$enable_man" = yes ; then
+ AC_MSG_ERROR([DocBook DTD is required for --enable-man])
+ fi
+ enable_man=no
+ fi
+fi
+
+if test "$enable_man" != no; then
+ dnl check for DocBook XSL stylesheets in the local catalog
JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
- [DocBook XSL Stylesheets],,enable_man=no)
+ [DocBook XSL Stylesheets], [have_docbook_style=yes],[have_docbook_style=no])
+ if test "$have_docbook_dtd" != yes; then
+ if test "$enable_man" = yes ; then
+ AC_MSG_ERROR([DocBook XSL Stylesheets are required for --enable-man])
+ fi
+ enable_man=no
+ fi
fi
-AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
+AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
+AC_MSG_CHECKING([whether to generate man pages])
+if test "$enable_man" != no; then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
##################################################
# Output commands
docs/reference/gdk/Makefile
docs/reference/gdk/version.xml
docs/reference/gtk/Makefile
+docs/reference/gtk/gtk3.types
docs/reference/gtk/version.xml
docs/reference/libgail-util/Makefile
docs/reference/libgail-util/version.xml
gtk/gtkversion.h
gtk/gtk-win32.rc
gtk/a11y/Makefile
+gtk/native/Makefile
gtk/tests/Makefile
libgail-util/Makefile
modules/Makefile
modules/engines/Makefile
modules/engines/pixbuf/Makefile
-modules/engines/ms-windows/Makefile
-modules/engines/ms-windows/Theme/Makefile
-modules/engines/ms-windows/Theme/gtk-3.0/Makefile
modules/input/Makefile
modules/printbackends/Makefile
modules/printbackends/cups/Makefile