diff --git a/configure.ac b/configure.ac index 5818e032..b6e43164 100644 --- a/configure.ac +++ b/configure.ac @@ -54,14 +54,14 @@ AS_IF([test "x$with_gssapi" != xno], AC_ARG_WITH([gtk], [AS_HELP_STRING([--with-gtk=VER], - [specify GTK version to use (`1' or `2')]) + [specify GTK version to use (`1', `2' or `3')]) AS_HELP_STRING([--without-gtk], [do not use GTK (build command-line tools only)])], [gtk_version_desired="$withval"], [gtk_version_desired="any"]) case "$gtk_version_desired" in - 1 | 2 | any | no) ;; + 1 | 2 | 3 | any | no) ;; yes) gtk_version_desired="any" ;; *) AC_ERROR([Invalid GTK version specified]) esac @@ -70,8 +70,15 @@ AC_CHECK_HEADERS([utmpx.h sys/select.h],,,[ #include #include ]) -# Look for both GTK 2 and GTK 1, in descending order of preference. If -# we can't find either, have the makefile only build the CLI programs. +# Look for GTK 2, GTK 3 and GTK 1, in descending order of preference. +# +# (I like GTK 2 for its faster support for X server-side fonts due to +# not being required to do all its drawing via Cairo; GTK 3 is +# tolerable if GTK 2 can't be had, and GTK 1 is an extreme fallback +# for platforms - of which I've heard of at least one - to which +# nothing newer has ever been ported.) +# +# If we can't find any, have the makefile only build the CLI programs. gtk=none @@ -83,6 +90,17 @@ case "$gtk_version_desired:$gtk" in ;; esac +case "$gtk_version_desired:$gtk" in + 3:none | any:none) + ifdef([AM_PATH_GTK_3_0],[ + AM_PATH_GTK_3_0([3.0.0], [ + gtk=3 + GTK_CFLAGS="$GTK_CFLAGS -Wno-deprecated-declarations" + ], []) + ],[AC_WARNING([generating configure script without GTK 3 autodetection])]) + ;; +esac + case "$gtk_version_desired:$gtk" in 1:none | any:none) ifdef([AM_PATH_GTK],[ @@ -101,7 +119,7 @@ esac AM_CONDITIONAL(HAVE_GTK, [test "$gtk" != "none"]) -if test "$gtk" = "2"; then +if test "$gtk" = "2" -o "$gtk" = "3"; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" @@ -174,11 +192,18 @@ psftp will be built. EOF elif test "$gtk" = "none"; then cat <