X-Git-Url: http://pileus.org/git/?p=~andy%2Fgtk;a=blobdiff_plain;f=configure.ac;h=6d075c3d436b939edcdbca1c222248ff2be39e55;hp=1a504052cea5d345ba7d473bc3938eba9130db11;hb=HEAD;hpb=8dcbe9e2de1b66d52a457560a7a60c6ff2d2545f diff --git a/configure.ac b/configure.ac index 1a504052c..6d075c3d4 100644 --- a/configure.ac +++ b/configure.ac @@ -9,9 +9,9 @@ # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0. m4_define([gtk_major_version], [3]) -m4_define([gtk_minor_version], [4]) -m4_define([gtk_micro_version], [1]) -m4_define([gtk_interface_age], [1]) +m4_define([gtk_minor_version], [7]) +m4_define([gtk_micro_version], [13]) +m4_define([gtk_interface_age], [0]) m4_define([gtk_binary_age], [m4_eval(100 * gtk_minor_version + gtk_micro_version)]) m4_define([gtk_version], @@ -24,11 +24,14 @@ AC_INIT([gtk+], [gtk_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 @@ -39,11 +42,11 @@ AC_CONFIG_AUX_DIR([build-aux]) m4_define([gtk_binary_version], [3.0.0]) # required versions of other packages -m4_define([glib_required_version], [2.32.0]) -m4_define([pango_required_version], [1.30.0]) -m4_define([atk_required_version], [2.2.0]) +m4_define([glib_required_version], [2.35.3]) +m4_define([pango_required_version], [1.32.4]) +m4_define([atk_required_version], [2.7.5]) m4_define([cairo_required_version], [1.10.0]) -m4_define([gdk_pixbuf_required_version], [2.26.0]) +m4_define([gdk_pixbuf_required_version], [2.27.1]) m4_define([introspection_required_version], [1.32.0]) GLIB_REQUIRED_VERSION=glib_required_version PANGO_REQUIRED_VERSION=pango_required_version @@ -123,8 +126,9 @@ AC_SUBST([GAIL_LT_CURRENT_MINUS_AGE],[gail_lt_current_minus_age]) # 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 @@ -134,14 +138,15 @@ AC_SUBST(GETTEXT_PACKAGE) 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= @@ -158,6 +163,7 @@ case "$host" in esac AC_MSG_RESULT([$os_win32]) +AC_SUBST(DISABLE_ON_W32) AC_SUBST(LIB_EXE_MACHINE_FLAG) AC_SUBST(EXE_MANIFEST_ARCHITECTURE) @@ -318,11 +324,11 @@ AC_ARG_ENABLE(quartz-relocation, 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 @@ -332,7 +338,7 @@ 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" @@ -351,25 +357,31 @@ else 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" @@ -378,18 +390,21 @@ else AM_CONDITIONAL(USE_BROADWAY, false) fi -if test "x$enable_wayland_backend" == "xyes"; then - # Wayland uses cairo-gl - cairo_backends="$cairo_backends cairo-gl" +DISABLE_ON_WAYLAND='' +if test "x$enable_wayland_backend" = "xyes"; then + # For the cairo image backend + cairo_backends="$cairo_backends cairo" 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" + DISABLE_ON_WAYLAND='%' + WAYLAND_PACKAGES="wayland-client >= 1.0.0 xkbcommon >= 0.2.0 wayland-cursor" AM_CONDITIONAL(USE_WAYLAND, true) else AM_CONDITIONAL(USE_WAYLAND, false) fi +AC_SUBST(DISABLE_ON_WAYLAND) # strip leading space GDK_BACKENDS=${GDK_BACKENDS#* } @@ -407,7 +422,7 @@ else 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 @@ -548,7 +563,7 @@ if test "x$enable_rebuilds" = "xyes" && \ fi AC_SUBST(REBUILD) -AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked) +AC_CHECK_FUNCS(lstat mkstemp) AC_CHECK_FUNCS(localtime_r) # _NL_TIME_FIRST_WEEKDAY is an enum and not a define @@ -689,7 +704,6 @@ AM_PATH_GLIB_2_0(glib_required_version, :, *** 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 @@ -723,6 +737,19 @@ else 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" @@ -734,17 +761,10 @@ AC_CHECK_FUNCS(mallinfo) AC_CHECK_FUNCS(getresuid) AC_TYPE_UID_T -# 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 ]]) # Checks for gdkspawn AC_CHECK_HEADERS(crt_externs.h) @@ -875,14 +895,32 @@ dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling 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) @@ -961,19 +999,21 @@ if test "x$enable_x11_backend" = xyes; then # 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 is needed for xReply]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[xReply *rep;]])], + [[xReply *rep = NULL; + rep = rep;]])], [AC_MSG_RESULT([no])], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #include ]], - [[xReply *rep;]])], + [[xReply *rep = NULL; + rep = rep;]])], [AC_MSG_RESULT([yes]) AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], [1], [Define if needed for xReply])], @@ -1194,6 +1234,16 @@ else 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 +AM_CONDITIONAL(HAVE_GIO_UNIX, test "$have_gio_unix" = "yes") + # Check for Pango flags AC_MSG_CHECKING(Pango flags) @@ -1226,13 +1276,14 @@ CFLAGS="$saved_cflags" 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 @@ -1253,41 +1304,28 @@ AC_SUBST(GDK_DEP_CFLAGS) # 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" @@ -1382,6 +1420,12 @@ else $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]) + have_cups_api_1_6=yes + fi AC_SUBST(CUPS_API_MAJOR) AC_SUBST(CUPS_API_MINOR) @@ -1497,13 +1541,6 @@ fi GLIB_GSETTINGS -############# -# Resources # -############# - -GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0` -AC_SUBST(GLIB_COMPILE_RESOURCES) - ################################################## # GObject introspection ################################################## @@ -1589,33 +1626,53 @@ AM_CONDITIONAL(HAVE_COLORD, test "x$have_colord" = "xyes") 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 @@ -1715,6 +1772,7 @@ docs/reference/Makefile 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 @@ -1738,6 +1796,7 @@ gtk/makefile.msc gtk/gtkversion.h gtk/gtk-win32.rc gtk/a11y/Makefile +gtk/native/Makefile gtk/tests/Makefile libgail-util/Makefile modules/Makefile