+HAVE_GTK=no
+if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
+ if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
+ AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]);
+ fi
+ GLIB_REQUIRED=2.4
+ GTK_REQUIRED=2.4
+ GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
+
+ dnl Check if --with-pkg-config-prog has been given.
+ if test "X${with_pkg_config_prog}" != X; then
+ PKG_CONFIG="${with_pkg_config_prog}"
+ fi
+ dnl Checks for libraries.
+ PKG_CHECK_MODULES(GTK, $GTK_MODULES)
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$GTK_LIBS $LIBS"
+ HAVE_GTK=yes
+ AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
+ USE_X_TOOLKIT=none
+
+ dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
+ dnl a lot if #ifdef:s, say we have toolkit scrollbars.
+ if test "$with_toolkit_scroll_bars" != no; then
+ with_toolkit_scroll_bars=yes
+ fi
+
+ dnl Check if we can use multiple displays with this GTK version.
+ dnl If gdk_display_open exists, assume all others are there also.
+ HAVE_GTK_MULTIDISPLAY=no
+ AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
+ if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
+ AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
+ [Define to 1 if GTK can handle more than one display.])
+ fi
+ dnl Check if we have the old file selection dialog.
+ dnl If gdk_display_open exists, assume all others are there also.
+ HAVE_GTK_FILE_SELECTION=no
+ AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes)
+
+ dnl Check if we have the new file chooser dialog
+ dnl If gdk_display_open exists, assume all others are there also.
+ HAVE_GTK_FILE_CHOOSER=no
+ AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes)
+
+ if test "$HAVE_GTK_FILE_SELECTION" = yes \
+ && test "$HAVE_GTK_FILE_CHOOSER" = yes; then
+ AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
+ [Define to 1 if GTK has both file selection and chooser dialog.])
+ fi
+
+ dnl Check if pthreads are available. Emacs only needs this when using
+ dnl gtk_file_chooser under Gnome.
+ if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
+ HAVE_GTK_AND_PTHREAD=no
+ AC_CHECK_HEADERS(pthread.h)
+ if test "$ac_cv_header_pthread_h"; then
+ AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
+ fi
+ if test "$HAVE_GTK_AND_PTHREAD" = yes; then
+ GTK_LIBS="$GTK_LIBS -lpthread"
+ AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
+ [Define to 1 if you have GTK and pthread (-lpthread).])
+ fi
+ fi
+fi
+