AC_PREREQ([2.57]) AC_INIT([spice-gtk], [m4_esyscmd(build-aux/git-version-gen .tarball-version)], [spice-devel@lists.freedesktop.org]) AC_CONFIG_MACRO_DIR([m4]) AM_CONFIG_HEADER([config.h]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign dist-bzip2 -Wall -Werror]) LT_INIT AM_MAINTAINER_MODE IT_PROG_INTLTOOL([0.40.0]) AM_GNU_GETTEXT_VERSION([0.17]) AM_GNU_GETTEXT([external]) AC_SUBST([GETTEXT_PACKAGE], [spice-gtk]) AC_DEFINE([GETTEXT_PACKAGE], [PACKAGE_TARNAME], [Define to the gettext package name.]) SPICE_GTK_LOCALEDIR=[${datadir}/locale] AC_SUBST(SPICE_GTK_LOCALEDIR) GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) # Define default SPICE_COMMON_SRCDIR SPICE_COMMON_SRCDIR='$(top_srcdir)'/common AC_PROG_CC AC_PROG_CC_C99 if test x"$ac_cv_prog_cc_c99" = xno; then AC_MSG_ERROR([C99 compiler is required.]) fi AC_PROG_INSTALL AC_CANONICAL_HOST AC_PROG_LIBTOOL AM_PROG_CC_C_O AC_C_BIGENDIAN AC_PATH_PROGS(PYTHON, python2 python) RRA_LD_VERSION_SCRIPT AC_MSG_CHECKING([for native Win32]) case "$host_os" in *mingw*|*cygwin*) os_win32=yes gio_os=gio-windows-2.0 red_target=Windows ;; *) os_win32=no gio_os=gio-unix-2.0 red_target=Unix ;; esac AC_MSG_RESULT([$os_win32]) AM_CONDITIONAL([OS_WIN32],[test "$os_win32" = "yes"]) AC_CHECK_HEADERS([sys/ipc.h sys/shm.h]) AC_CHECK_HEADERS([sys/socket.h netinet/in.h arpa/inet.h]) dnl ========================================================================= dnl Chek optional features PKG_CHECK_MODULES(PROTOCOL, spice-protocol >= 0.10.1) AC_SUBST(PROTOCOL_CFLAGS) AC_CHECK_LIBM AC_SUBST(LIBM) SPICE_GLIB_REQUIRES="" SPICE_GTK_REQUIRES="" PKG_CHECK_MODULES(PIXMAN, pixman-1 >= 0.17.7) AC_SUBST(PIXMAN_CFLAGS) AC_SUBST(PIXMAN_LIBS) SPICE_GLIB_REQUIRES+=" pixman-1 >= 0.17.7" PKG_CHECK_MODULES(CELT051, celt051 >= 0.5.1.1) AC_SUBST(CELT051_CFLAGS) AC_SUBST(CELT051_LIBS) AC_SUBST(CELT051_LIBDIR) SPICE_GLIB_REQUIRES+=" celt051 >= 0.5.1.1" PKG_CHECK_MODULES(SSL, openssl) AC_SUBST(SSL_CFLAGS) AC_SUBST(SSL_LIBS) SPICE_GLIB_REQUIRES+=" openssl" dnl Cyrus SASL AC_ARG_WITH([sasl], [AS_HELP_STRING([--with-sasl=@<:@yes/no/auto@:>@], [use cyrus SASL for authentication @<:@default=auto@:>@])], [], [with_sasl="auto"]) SASL_CFLAGS= SASL_LIBS= enable_sasl=no if test "x$with_sasl" != "xno"; then if test "x$with_sasl" != "xyes" -a "x$with_sasl" != "xauto"; then SASL_CFLAGS="-I$with_sasl" SASL_LIBS="-L$with_sasl" fi fail=0 old_cflags="$CFLAGS" old_libs="$LIBS" CFLAGS="$CFLAGS $SASL_CFLAGS" LIBS="$LIBS $SASL_LIBS" AC_CHECK_HEADER([sasl/sasl.h],[],[ if test "x$with_sasl" != "xauto" ; then with_sasl=no else fail=1 fi]) if test "x$with_sasl" != "xno" ; then AC_CHECK_LIB([sasl2], [sasl_client_init],[with_sasl2=yes],[with_sasl2=no]) fi if test "x$with_sasl2" = "xno" -a "x$with_sasl" != "xno" ; then AC_CHECK_LIB([sasl], [sasl_client_init],[with_sasl=yes],[with_sasl=no]) fi if test "x$with_sasl2" = "xyes"; then SASL_LIBS="$SASL_LIBS -lsasl2" elif test "x$with_sasl" = "xyes"; then SASL_LIBS="$SASL_LIBS -lsasl" else AC_MSG_ERROR([You must install the Cyrus SASL development package in order to compile spice-gtk]) fi CFLAGS="$old_cflags" LIBS="$old_libs" if test "x$with_sasl2" = "xyes" -o "x$with_sasl" = "xyes" ; then AC_DEFINE_UNQUOTED([HAVE_SASL], 1, [whether Cyrus SASL is available for authentication]) enable_sasl=yes fi fi AM_CONDITIONAL([HAVE_SASL], [test "x$with_sasl2" = "xyes" -o "x$with_sasl" = "xyes"]) AC_SUBST([SASL_CFLAGS]) AC_SUBST([SASL_LIBS]) AC_MSG_CHECKING([which gtk+ version to compile against]) AC_ARG_WITH([gtk], [AS_HELP_STRING([--with-gtk=@<:@2.0/3.0@:>@],[which gtk+ version to compile against @<:@default=3.0@:>@])], [case "$with_gtk" in 2.0|3.0) ;; *) AC_MSG_ERROR([invalid gtk version specified]) ;; esac], [with_gtk=3.0]) AC_MSG_RESULT([$with_gtk]) case "$with_gtk" in 2.0) GTK_API_VERSION=2.0 GTK_REQUIRED=2.18.0 SPICE_GTK_API_VERSION=2.0 ;; 3.0) GTK_API_VERSION=3.0 GTK_REQUIRED=2.91.3 SPICE_GTK_API_VERSION=3.0 ;; esac AC_SUBST([GTK_API_VERSION]) AC_SUBST([GTK_REQUIRED]) AC_SUBST([SPICE_GTK_API_VERSION]) AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"]) AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"]) PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) SPICE_GTK_REQUIRES+=" gtk+-$GTK_API_VERSION >= $GTK_REQUIRED" PKG_CHECK_EXISTS([gtk+-x11-$with_gtk], [have_x11=yes], [have_x11=no]) AS_IF([test "x$have_x11" = "xyes"], [AC_DEFINE([HAVE_X11], 1, [Have x11?])]) AM_CONDITIONAL([WITH_DISPLAY_X11], [test "x$have_x11" = "xyes"]) PKG_CHECK_EXISTS([gtk+-quartz-$with_gtk], [have_quartz=yes], [have_quartz=no]) AS_IF([test "x$have_quartz" = "xyes"], [AC_DEFINE([HAVE_QUARTZ], 1, [Have Quartz?])]) AM_CONDITIONAL([WITH_DISPLAY_QUARTZ], [test "x$have_quartz" = "xyes"]) PKG_CHECK_EXISTS([gtk+-win32-$with_gtk], [have_win32=yes], [have_win32=no]) AS_IF([test "x$have_win32" = "xyes"], [AC_DEFINE([HAVE_WINDOWS], 1, [Have Win32?])]) AM_CONDITIONAL([WITH_DISPLAY_WINDOWS], [test "x$have_win32" = "xyes"]) if [test "x$have_x11" = "xyes" ] then PKG_CHECK_MODULES(XRANDR, x11 xrandr, [have_xrandr=yes], [have_xrandr=no]) AC_SUBST(XRANDR_CFLAGS) AC_SUBST(XRANDR_LIBS) AS_IF([test "x$have_xrandr" = "xyes"], [AC_DEFINE([HAVE_RANDR], 1, [Have xrandr?])]) AC_CHECK_HEADERS([X11/XKBlib.h]) fi AC_ARG_WITH([x11], AS_HELP_STRING([--with-x11], [Use x11/shm display backend instead of cairo @<:@default=no@:>@])) AC_MSG_CHECKING([What rendering backend to use..]) if [test "x$with_x11" = "xyes" ] then if [test "$GTK_API_VERSION" = "3.0" ] then AC_MSG_ERROR([X11 SHM backend is not compatible with GTK3]) fi AC_MSG_RESULT([x11]) AC_DEFINE([WITH_X11], 1, [Use X11 backend?]) else AC_MSG_RESULT([cairo]) fi AM_CONDITIONAL([WITH_X11], [test "x$with_x11" = "xyes"]) AC_ARG_WITH([pnp-ids-path], AC_HELP_STRING([--with-pnp-ids-path], [Specify the path to pnp.ids @<:@default=(internal)@:>@]), [], [with_pnp_ids_path="\${pnpdatadir}/pnp.ids"]) AM_CONDITIONAL(USE_INTERNAL_PNP_IDS, test "x$with_pnp_ids_path" = "x\${pnpdatadir}/pnp.ids") PNP_IDS=$with_pnp_ids_path AC_SUBST(PNP_IDS) if test "x$with_pnp_ids_path" = "x\${pnpdatadir}/pnp.ids"; then EXTERNAL_PNP_IDS="no (internal)" else EXTERNAL_PNP_IDS="$with_pnp_ids_path" fi PKG_CHECK_MODULES(GLIB2, glib-2.0 >= 2.22) AC_SUBST(GLIB2_CFLAGS) AC_SUBST(GLIB2_LIBS) PKG_CHECK_MODULES(GOBJECT2, gobject-2.0) AC_SUBST(GOBJECT2_CFLAGS) AC_SUBST(GOBJECT2_LIBS) PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.10.0 $gio_os) AC_SUBST(GIO_CFLAGS) AC_SUBST(GIO_LIBS) PKG_CHECK_MODULES(CAIRO, cairo >= 1.2.0) AC_SUBST(CAIRO_CFLAGS) AC_SUBST(CAIRO_LIBS) PKG_CHECK_MODULES(GTHREAD, gthread-2.0 > 2.0.0) AC_SUBST(GTHREAD_CFLAGS) AC_SUBST(GTHREAD_LIBS) AC_ARG_WITH([audio], AS_HELP_STRING([--with-audio=@<:@gstreamer/pulse/no@:>@], [Select audio backend @<:@default=pulse@:>@]), [], [with_audio="pulse"]) case "$with_audio" in gstreamer|pulse|no*) ;; *) AC_MSG_ERROR(Unsupported audio backend) esac AS_IF([test "x$with_audio" = "xpulse"], [PKG_CHECK_MODULES(PULSE, libpulse libpulse-mainloop-glib, [have_pulse=yes], [have_pulse=no])], [have_pulse=no]) AS_IF([test "x$have_pulse" = "xyes"], [AC_DEFINE([WITH_PULSE], 1, [Have pulseaudio?])], [AS_IF([test "x$with_audio" = "xpulse"], [AC_MSG_ERROR([PulseAudio requested but not found]) ]) ]) AM_CONDITIONAL([WITH_PULSE], [test "x$have_pulse" = "xyes"]) AC_SUBST(PULSE_CFLAGS) AC_SUBST(PULSE_LIBS) AS_IF([test "x$with_audio" = "xgstreamer"], [PKG_CHECK_MODULES(GST, gstreamer-0.10 gstreamer-base-0.10 gstreamer-app-0.10 gstreamer-audio-0.10, [have_gst=yes], [have_gst=no])], [have_gst=no]) AS_IF([test "x$have_gst" = "xyes"], [AC_DEFINE([WITH_GSTAUDIO], 1, [Have GStreamer?])], [AS_IF([test "x$with_audio" = "xgstreamer"], [AC_MSG_ERROR([GStreamer requested but not found]) ]) ]) AM_CONDITIONAL([WITH_GSTAUDIO], [test "x$have_gst" = "xyes"]) AC_SUBST(GST_CFLAGS) AC_SUBST(GST_LIBS) AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, AC_MSG_CHECKING([for jpeglib.h]) AC_TRY_CPP( [#include #undef PACKAGE #undef VERSION #undef HAVE_STDLIB_H #include ], JPEG_LIBS='-ljpeg' AC_MSG_RESULT($jpeg_ok), AC_MSG_ERROR([jpeglib.h not found])), AC_MSG_ERROR([libjpeg not found])) AC_SUBST(JPEG_LIBS) AC_CHECK_LIB(z, deflate, Z_LIBS='-lz', AC_MSG_ERROR([zlib not found])) AC_SUBST(Z_LIBS) AC_ARG_ENABLE([smartcard], AS_HELP_STRING([--enable-smartcard=@<:@yes/no@:>@], [Enable smartcard support @<:@default=yes@:>@]), [], [enable_smartcard="yes"]) if test "x$enable_smartcard" = "xno"; then AM_CONDITIONAL(WITH_SMARTCARD, false) else PKG_CHECK_MODULES(SMARTCARD, libcacard >= 0.1.2) AC_DEFINE(USE_SMARTCARD, [1], [Define if supporting smartcard proxying]) AM_CONDITIONAL(WITH_SMARTCARD, true) fi AC_ARG_ENABLE([usbredir], AS_HELP_STRING([--enable-usbredir=@<:@yes/no@:>@], [Enable usbredir support @<:@default=yes@:>@]), [], [enable_usbredir="yes"]) AC_ARG_ENABLE([polkit], AS_HELP_STRING([--enable-polkit=@<:@yes/no@:>@], [Enable policykit support (for the usb acl helper)@<:@default=yes@:>@]), [], [enable_polkit="yes"]) if test "x$enable_usbredir" = "xno"; then AM_CONDITIONAL(WITH_USBREDIR, false) AM_CONDITIONAL(WITH_POLKIT, false) else PKG_CHECK_MODULES(GUDEV, gudev-1.0) PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 1.0.9) PKG_CHECK_MODULES(LIBUSBREDIRHOST, libusbredirhost >= 0.3.3) AC_DEFINE(USE_USBREDIR, [1], [Define if supporting usbredir proxying]) AM_CONDITIONAL(WITH_USBREDIR, true) if test "x$enable_polkit" = "xno"; then AM_CONDITIONAL(WITH_POLKIT, false) else PKG_CHECK_MODULES(POLKIT, polkit-gobject-1 >= 0.96) AC_CHECK_HEADER([acl/libacl.h],, AC_MSG_ERROR([cannot find headers for libacl])) AC_CHECK_LIB([acl], [acl_get_file], [ACL_LIBS=-lacl] [AC_SUBST(ACL_LIBS)], AC_MSG_ERROR([cannot find libacl])) AC_DEFINE(USE_POLKIT, [1], [Define if supporting polkit]) AM_CONDITIONAL(WITH_POLKIT, true) POLICYDIR=`${PKG_CONFIG} polkit-gobject-1 --variable=policydir` AC_SUBST(POLICYDIR) # Check for polkit_authority_get_sync() AC_CHECK_LIB([polkit-gobject-1], [polkit_authority_get_sync], ac_have_pk_auth_get_sync="1", ac_have_pk_auth_get_sync="0") AC_DEFINE_UNQUOTED(HAVE_POLKIT_AUTHORITY_GET_SYNC, $ac_have_pk_auth_get_sync, [Define if you have a polkit with polkit_authority_get_sync()]) fi fi AC_ARG_WITH([usb-acl-helper-dir], AS_HELP_STRING([--with-usb-acl-helper-dir=DIR], [Directory where the USB ACL helper binary should be installed]), [ACL_HELPER_DIR="$with_usb_acl_helper_dir"], [ACL_HELPER_DIR="${bindir}/"]) AC_SUBST([ACL_HELPER_DIR]) AC_ARG_WITH([coroutine], AS_HELP_STRING([--with-coroutine=@<:@ucontext/gthread/winfiber/auto@:>@], [use ucontext or GThread for coroutines @<:@default=auto@:>@]), [], [with_coroutine=auto]) case $with_coroutine in ucontext|gthread|winfiber|auto) ;; *) AC_MSG_ERROR(Unsupported coroutine type) esac if test "$with_coroutine" = "auto"; then if test "$os_win32" = "yes"; then with_coroutine=winfiber else with_coroutine=ucontext fi fi if test "$with_coroutine" = "ucontext"; then AC_CHECK_FUNC(makecontext, [],[with_coroutine=gthread]) AC_CHECK_FUNC(swapcontext, [],[with_coroutine=gthread]) AC_CHECK_FUNC(getcontext, [],[with_coroutine=gthread]) fi WITH_UCONTEXT=0 WITH_GTHREAD=0 WITH_WINFIBER=0 case $with_coroutine in ucontext) WITH_UCONTEXT=1 ;; gthread) WITH_GTHREAD=1 ;; winfiber) WITH_WINFIBER=1 ;; *) AC_MSG_ERROR(Unsupported coroutine type) esac AC_DEFINE_UNQUOTED(WITH_UCONTEXT,[$WITH_UCONTEXT], [Whether to use ucontext coroutine impl]) AM_CONDITIONAL(WITH_UCONTEXT, [test "x$WITH_UCONTEXT" = "x1"]) AC_DEFINE_UNQUOTED(WITH_WINFIBER,[$WITH_WINFIBER], [Whether to use fiber coroutine impl]) AM_CONDITIONAL(WITH_WINFIBER, [test "x$WITH_WINFIBER" = "x1"]) AC_DEFINE_UNQUOTED(WITH_GTHREAD,[$WITH_GTHREAD], [Whether to use gthread coroutine impl]) AM_CONDITIONAL(WITH_GTHREAD, [test "x$WITH_GTHREAD" = "x1"]) AM_CONDITIONAL([HAVE_INTROSPECTION], [test "0" != "1"]) PKG_CHECK_MODULES([GOBJECT_INTROSPECTION], [gobject-introspection-1.0 >= 0.9.4], [has_symbol_prefix=yes], [:]) GOBJECT_INTROSPECTION_CHECK([0.6.7]) AM_CONDITIONAL([G_IR_SCANNER_SYMBOL_PREFIX], [test "x$has_symbol_prefix" = "xyes"]) AC_ARG_ENABLE([vala], AS_HELP_STRING([--enable-vala], [Check for vala requirements @<:@default=no@:>@]), [], enable_vala="no") VALA_REQUIRED=0.14 if test x$enable_vala = xyes ; then # check for vala AM_PROG_VALAC([$VALA_REQUIRED]) AC_PATH_PROG(VAPIGEN, vapigen, no) if test "x$VAPIGEN" == "xno"; then AC_MSG_ERROR([Cannot find the "vapigen" binary in your PATH]) fi AC_SUBST(VAPIGEN) fi AM_CONDITIONAL(WITH_VALA, [test "x$enable_vala" = "xyes"]) VAPIDIR="${datadir}/vala/vapi" AC_SUBST(VAPIDIR) AC_ARG_WITH([python], AS_HELP_STRING([--with-python], [build python bindings @<:@default=yes@:>@]), [case "${withval}" in yes|no) ;; *) AC_MSG_ERROR([bad value ${withval} for python option]) ;; esac], [withval=yes]) if test "$with_gtk" = "3.0" then WITH_PYTHON=no else WITH_PYTHON=$withval fi if test "$WITH_PYTHON" = "yes"; then PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= 2.0.0) AC_SUBST(PYGTK_CFLAGS) AC_SUBST(PYGTK_LIBS) AM_PATH_PYTHON AC_MSG_CHECKING([whether $PYTHON version >= 2.0]) HAVE_PYTHON_REQUIRED=no AM_PYTHON_CHECK_VERSION([$PYTHON], [2.0], [HAVE_PYTHON_REQUIRED="yes"], [HAVE_PYTHON_REQUIRED="no"]) AC_MSG_RESULT($HAVE_PYTHON_REQUIRED) if test "x$HAVE_PYTHON_REQUIRED" != "xyes" then AC_MSG_ERROR("No suitable python found") fi AM_CHECK_PYTHON_HEADERS(have_python_headers=yes,have_python_headers=no) if test "x$have_python_headers" != "xyes" then AC_MSG_ERROR("No python development headers found") fi fi AM_CONDITIONAL(WITH_PYTHON, [test "$WITH_PYTHON" = "yes"]) dnl =========================================================================== dnl check compiler flags AC_DEFUN([SPICE_CC_TRY_FLAG], [ AC_MSG_CHECKING([whether $CC supports $1]) spice_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $1" AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [spice_cc_flag=yes], [spice_cc_flag=no]) CFLAGS="$spice_save_CFLAGS" if test "x$spice_cc_flag" = "xyes"; then ifelse([$2], , :, [$2]) else ifelse([$3], , :, [$3]) fi AC_MSG_RESULT([$spice_cc_flag]) ]) dnl Use lots of warning flags with with gcc and compatible compilers dnl Note: if you change the following variable, the cache is automatically dnl skipped and all flags rechecked. So there's no need to do anything dnl else. If for any reason you need to force a recheck, just change dnl MAYBE_WARN in an ignorable way (like adding whitespace) dnl MAYBE_WARN="-Wall -Wno-sign-compare -Werror -Wno-deprecated-declarations" MAYBE_WARN="-Wall -Wno-sign-compare -Wno-deprecated-declarations" AC_ARG_ENABLE([werror], AS_HELP_STRING([--enable-werror], [Use -Werror (if supported)]), [set_werror="$enableval"], [if test -d $srcdir/.git; then is_git_version=true set_werror=yes else set_werror=no fi]) # invalidate cached value if MAYBE_WARN has changed if test "x$spice_cv_warn_maybe" != "x$MAYBE_WARN"; then unset spice_cv_warn_cflags fi AC_CACHE_CHECK([for supported warning flags], spice_cv_warn_cflags, [ echo WARN_CFLAGS="" # Some warning options are not supported by all versions of # gcc, so test all desired options against the current # compiler. # # Note that there are some order dependencies # here. Specifically, an option that disables a warning will # have no net effect if a later option then enables that # warnings, (perhaps implicitly). So we put some grouped # options (-Wall and -Wextra) up front and the -Wno options # last. for W in $MAYBE_WARN; do SPICE_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"]) done if test "$set_werror" != "no"; then SPICE_CC_TRY_FLAG(["-Werror"], [WARN_CFLAGS="$WARN_CFLAGS -Werror"]) fi spice_cv_warn_cflags=$WARN_CFLAGS spice_cv_warn_maybe=$MAYBE_WARN AC_MSG_CHECKING([which warning flags were supported])]) WARN_CFLAGS="$spice_cv_warn_cflags" SPICE_CFLAGS="$SPICE_CFLAGS $WARN_CFLAGS" AC_SUBST(SPICE_CFLAGS) SPICE_GLIB_CFLAGS="$PROTOCOL_CFLAGS $PIXMAN_CFLAGS $CELT051_CFLAGS $PULSE_CFLAGS $GST_CFLAGS $GLIB2_CFLAGS $GIO_CFLAGS $GOBJECT2_CFLAGS $SSL_CFLAGS $SASL_CFLAGS" SPICE_GTK_CFLAGS="$SPICE_GLIB_CFLAGS $GTK_CFLAGS " AC_SUBST(SPICE_GLIB_CFLAGS) AC_SUBST(SPICE_GTK_CFLAGS) AC_SUBST(SPICE_COMMON_SRCDIR) AC_SUBST(SPICE_GLIB_REQUIRES) AC_SUBST(SPICE_GTK_REQUIRES) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) AC_OUTPUT([ Makefile spice-client-glib-2.0.pc spice-client-gtk-2.0.pc spice-client-gtk-3.0.pc spice-controller.pc common/Makefile data/Makefile data/spicy.desktop.in data/spicy.nsis po/Makefile.in python_modules/Makefile gtk/Makefile gtk/controller/Makefile doc/Makefile doc/reference/Makefile vapi/Makefile ]) dnl ========================================================================== AC_MSG_NOTICE([ Spice-Gtk $VERSION ============== prefix: ${prefix} c compiler: ${CC} Coroutine: ${with_coroutine} Audio: ${with_audio} Target: ${red_target} SASL support: ${enable_sasl} Smartcard support: ${enable_smartcard} USB redirection support: ${enable_usbredir} Gtk: $GTK_API_VERSION Now type 'make' to build $PACKAGE ])