From a29f0e8ccd3525f32754d9c8269279144883f61c Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 12 Aug 2014 14:37:48 -0700 Subject: [PATCH] GUAC-745: Add --without-SUPPORT options for vnc/rdp/ssh/etc. --- configure.ac | 585 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 366 insertions(+), 219 deletions(-) diff --git a/configure.ac b/configure.ac index 7537b9e9..7909339d 100644 --- a/configure.ac +++ b/configure.ac @@ -129,33 +129,38 @@ AC_ARG_WITH(init_dir, AM_CONDITIONAL([ENABLE_INIT], [test "x${init_dir}" != "x"]) AC_SUBST(init_dir) -AC_ARG_ENABLE(ssh_agent, - [AS_HELP_STRING([--enable-ssh-agent], - [enable built-in ssh-agent]) - ],enable_ssh_agent=yes) - # # libssl # -have_ssl=yes +have_ssl=disabled SSL_LIBS= +AC_ARG_WITH([ssl], + [AS_HELP_STRING([--with-ssl], + [support SSL encryption @<:@default=check@:>@])], + [], + [with_ssl=check]) -AC_CHECK_HEADER(openssl/ssl.h,, [have_ssl=no]) -AC_CHECK_LIB([ssl], [SSL_CTX_new], [SSL_LIBS="$SSL_LIBS -lssl"], [have_ssl=no]) -AM_CONDITIONAL([ENABLE_SSL], [test "x${have_ssl}" = "xyes"]) - -if test "x${have_ssl}" = "xno" +if test "x$with_ssl" != "xno" then - AC_MSG_WARN([ + have_ssl=yes + + AC_CHECK_HEADER(openssl/ssl.h,, [have_ssl=no]) + AC_CHECK_LIB([ssl], [SSL_CTX_new], [SSL_LIBS="$SSL_LIBS -lssl"], [have_ssl=no]) + + if test "x${have_ssl}" = "xno" + then + AC_MSG_WARN([ -------------------------------------------- Unable to find libssl. guacd will not support SSL connections. --------------------------------------------]) -else - AC_DEFINE([ENABLE_SSL],, [Whether SSL-related support is enabled]) + else + AC_DEFINE([ENABLE_SSL],, [Whether SSL-related support is enabled]) + fi fi +AM_CONDITIONAL([ENABLE_SSL], [test "x${have_ssl}" = "xyes"]) AC_SUBST(SSL_LIBS) @@ -163,68 +168,108 @@ AC_SUBST(SSL_LIBS) # Ogg Vorbis # -have_vorbis=yes +have_vorbis=disabled VORBIS_LIBS= +AC_ARG_WITH([vorbis], + [AS_HELP_STRING([--with-vorbis], + [support Ogg Vorbis @<:@default=check@:>@])], + [], + [with_vorbis=check]) -AC_CHECK_HEADER(vorbis/vorbisenc.h,, [have_vorbis=no]) -AC_CHECK_LIB([ogg], [ogg_stream_init], [VORBIS_LIBS="$VORBIS_LIBS -logg"], [have_vorbis=no]) -AC_CHECK_LIB([vorbis], [vorbis_block_init], [VORBIS_LIBS="$VORBIS_LIBS -lvorbis"], [have_vorbis=no]) -AC_CHECK_LIB([vorbisenc], [vorbis_encode_init], [VORBIS_LIBS="$VORBIS_LIBS -lvorbisenc"], [have_vorbis=no]) -AM_CONDITIONAL([ENABLE_OGG], [test "x${have_vorbis}" = "xyes"]) - -if test "x${have_vorbis}" = "xno" +if test "x$with_vorbis" != "xno" then - AC_MSG_WARN([ + have_vorbis=yes + + AC_CHECK_HEADER(vorbis/vorbisenc.h,, [have_vorbis=no]) + AC_CHECK_LIB([ogg], [ogg_stream_init], [VORBIS_LIBS="$VORBIS_LIBS -logg"], [have_vorbis=no]) + AC_CHECK_LIB([vorbis], [vorbis_block_init], [VORBIS_LIBS="$VORBIS_LIBS -lvorbis"], [have_vorbis=no]) + AC_CHECK_LIB([vorbisenc], [vorbis_encode_init], [VORBIS_LIBS="$VORBIS_LIBS -lvorbisenc"], [have_vorbis=no]) + + if test "x${have_vorbis}" = "xno" + then + AC_MSG_WARN([ -------------------------------------------- Unable to find libogg / libvorbis / libvorbisenc. Sound will not be encoded with Ogg Vorbis. --------------------------------------------]) -else - AC_DEFINE([ENABLE_OGG],, - [Whether support for Ogg Vorbis is enabled]) + else + AC_DEFINE([ENABLE_OGG],, + [Whether support for Ogg Vorbis is enabled]) + fi fi +AM_CONDITIONAL([ENABLE_OGG], [test "x${have_vorbis}" = "xyes"]) AC_SUBST(VORBIS_LIBS) # # PulseAudio # -have_pulse=yes +have_pulse=disabled PULSE_LIBS= +AC_ARG_WITH([pulse], + [AS_HELP_STRING([--with-pulse], + [support PulseAudio @<:@default=check@:>@])], + [], + [with_pulse=check]) -AC_CHECK_LIB([pulse], [pa_context_new], [PULSE_LIBS="$PULSE_LIBS -lpulse"], [have_pulse=no]) -AM_CONDITIONAL([ENABLE_PULSE], [test "x${have_pulse}" = "xyes"]) - -if test "x${have_pulse}" = "xno" +if test "x$with_pulse" != "xno" then - AC_MSG_WARN([ + have_pulse=yes + + AC_CHECK_LIB([pulse], [pa_context_new], [PULSE_LIBS="$PULSE_LIBS -lpulse"], [have_pulse=no]) + + if test "x${have_pulse}" = "xno" + then + AC_MSG_WARN([ -------------------------------------------- Unable to find libpulse Sound support for VNC will be disabled --------------------------------------------]) -else - AC_DEFINE([ENABLE_PULSE],, [Whether PulseAudio support is enabled]) + else + AC_DEFINE([ENABLE_PULSE],, [Whether PulseAudio support is enabled]) + fi fi +AM_CONDITIONAL([ENABLE_PULSE], [test "x${have_pulse}" = "xyes"]) AC_SUBST(PULSE_LIBS) # # PANGO # -have_pango=yes -PKG_CHECK_MODULES([PANGO], [pango],, [have_pango=no]); -PKG_CHECK_MODULES([PANGOCAIRO], [pangocairo],, [have_pango=no]); +have_pango=disabled +AC_ARG_WITH([pango], + [AS_HELP_STRING([--with-pango], + [support Pango text layout @<:@default=check@:>@])], + [], + [with_pango=check]) + +if test "x$with_pango" != "xno" +then + have_pango=yes + PKG_CHECK_MODULES([PANGO], [pango],, [have_pango=no]); + PKG_CHECK_MODULES([PANGOCAIRO], [pangocairo],, [have_pango=no]); +fi # # Terminal emulator # -have_terminal=yes -if test "x${have_pango}" = "xno" +have_terminal=disabled +AC_ARG_WITH([terminal], + [AS_HELP_STRING([--with-terminal], + [support text-based protocols @<:@default=check@:>@])], + [], + [with_terminal=check]) + +if test "x$with_terminal" != "xno" then - have_terminal=no + have_terminal=yes + if test "x${have_pango}" = "xno" + then + have_terminal=no + fi fi AM_CONDITIONAL([ENABLE_TERMINAL], [test "x${have_terminal}" = "xyes"]) @@ -233,12 +278,21 @@ AM_CONDITIONAL([ENABLE_TERMINAL], [test "x${have_terminal}" = "xyes"]) # libVNCServer # -have_libvncserver=yes +have_libvncserver=disabled VNC_LIBS= +AC_ARG_WITH([vnc], + [AS_HELP_STRING([--with-vnc], + [support VNC @<:@default=check@:>@])], + [], + [with_vnc=check]) + +if test "x$with_vnc" != "xno" +then + have_libvncserver=yes + AC_CHECK_LIB([vncclient], [rfbInitClient], [VNC_LIBS="$VNC_LIBS -lvncclient"], [have_libvncserver=no]) +fi -AC_CHECK_LIB([vncclient], [rfbInitClient], [VNC_LIBS="$VNC_LIBS -lvncclient"], [have_libvncserver=no]) AM_CONDITIONAL([ENABLE_VNC], [test "x${have_libvncserver}" = "xyes"]) - AC_SUBST(VNC_LIBS) # @@ -297,130 +351,175 @@ fi # FreeRDP # -have_winpr=yes -have_freerdp=yes -legacy_freerdp_extensions=no -rdpsettings_interface=unknown -rdpsettings_fastpath=yes -freerdp_interface=unknown -event_interface=unknown +have_freerdp=disabled RDP_LIBS= +AC_ARG_WITH([rdp], + [AS_HELP_STRING([--with-rdp], + [support RDP @<:@default=check@:>@])], + [], + [with_rdp=check]) -# libfreerdp-cache -AC_CHECK_LIB([freerdp-cache], [glyph_cache_register_callbacks], - [RDP_LIBS="$RDP_LIBS -lfreerdp-cache"], - [AC_MSG_WARN([ - -------------------------------------------- - Unable to find libfreerdp-cache - RDP will be disabled. - --------------------------------------------]) - have_freerdp=no]) +if test "x$with_rdp" != "xno" +then + have_winpr=yes + have_freerdp=yes + legacy_freerdp_extensions=no + rdpsettings_interface=unknown + rdpsettings_fastpath=yes + freerdp_interface=unknown + event_interface=unknown -# libfreerdp-core -AC_CHECK_LIB([freerdp-core], [freerdp_new], - [RDP_LIBS="$RDP_LIBS -lfreerdp-core"], - [AC_MSG_WARN([ + # libfreerdp-core + AC_CHECK_LIB([freerdp-core], [freerdp_new], + [RDP_LIBS="$RDP_LIBS -lfreerdp-core"], + [AC_MSG_WARN([ -------------------------------------------- Unable to find libfreerdp-core RDP will be disabled. --------------------------------------------]) - have_freerdp=no]) + have_freerdp=no]) +fi + + +# libfreerdp-cache +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_LIB([freerdp-cache], [glyph_cache_register_callbacks], + [RDP_LIBS="$RDP_LIBS -lfreerdp-cache"], + [AC_MSG_WARN([ + -------------------------------------------- + Unable to find libfreerdp-cache + RDP will be disabled. + --------------------------------------------]) + have_freerdp=no]) +fi # libfreerdp-channels (1.0) / libfreerdp-client (1.1) -AC_CHECK_LIB([freerdp-client], [freerdp_channels_new], - [RDP_LIBS="$RDP_LIBS -lfreerdp-client"], - [AC_CHECK_LIB([freerdp-channels], [freerdp_channels_new], - [RDP_LIBS="$RDP_LIBS -lfreerdp-channels" - legacy_freerdp_extensions=yes])]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_LIB([freerdp-client], [freerdp_channels_new], + [RDP_LIBS="$RDP_LIBS -lfreerdp-client"], + [AC_CHECK_LIB([freerdp-channels], [freerdp_channels_new], + [RDP_LIBS="$RDP_LIBS -lfreerdp-channels" + legacy_freerdp_extensions=yes])]) +fi # libfreerdp-utils -AC_CHECK_LIB([freerdp-utils], [svc_plugin_init], - [RDP_LIBS="$RDP_LIBS -lfreerdp-utils"], - [AC_MSG_WARN([ +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_LIB([freerdp-utils], [svc_plugin_init], + [RDP_LIBS="$RDP_LIBS -lfreerdp-utils"], + [AC_MSG_WARN([ -------------------------------------------- Unable to find libfreerdp-utils RDP will be disabled. --------------------------------------------]) - have_freerdp=no]) + have_freerdp=no]) +fi # libfreerdp-codec -AC_CHECK_LIB([freerdp-codec], [freerdp_image_convert], - [RDP_LIBS="$RDP_LIBS -lfreerdp-codec"], - [AC_MSG_WARN([ +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_LIB([freerdp-codec], [freerdp_image_convert], + [RDP_LIBS="$RDP_LIBS -lfreerdp-codec"], + [AC_MSG_WARN([ -------------------------------------------- Unable to find libfreerdp-codec RDP will be disabled. --------------------------------------------]) - have_freerdp=no]) + have_freerdp=no]) +fi # Check for interval polling in plugins -AC_CHECK_MEMBERS([rdpSvcPlugin.interval_ms],,, - [[#include ]]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_MEMBERS([rdpSvcPlugin.interval_ms],,, + [[#include ]]) +fi # Keyboard layout header -AC_CHECK_HEADERS([freerdp/locale/keyboard.h],, - [AC_CHECK_HEADERS([freerdp/kbd/layouts.h],, - [AC_MSG_WARN([ +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_HEADERS([freerdp/locale/keyboard.h],, + [AC_CHECK_HEADERS([freerdp/kbd/layouts.h],, + [AC_MSG_WARN([ -------------------------------------------- Unable to find keyboard layout headers RDP will be disabled. --------------------------------------------]) - have_freerdp=no])]) + have_freerdp=no])]) +fi # New headers defining addins -AC_CHECK_HEADERS([freerdp/addin.h freerdp/client/channels.h]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_HEADERS([freerdp/addin.h freerdp/client/channels.h]) +fi # Header defining cliprdr -AC_CHECK_HEADERS([freerdp/client/cliprdr.h],, - [AC_CHECK_HEADERS([freerdp/plugins/cliprdr.h],, - [AC_MSG_WARN([ +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_HEADERS([freerdp/client/cliprdr.h],, + [AC_CHECK_HEADERS([freerdp/plugins/cliprdr.h],, + [AC_MSG_WARN([ -------------------------------------------- Unable to find cliprdr headers RDP will be disabled. --------------------------------------------]) - have_freerdp=no], - [#include ])], - [#include - #include ]) + have_freerdp=no], + [#include ])], + [#include + #include ]) +fi -AC_CHECK_DECL([freerdp_register_addin_provider], - [AC_DEFINE([HAVE_FREERDP_REGISTER_ADDIN_PROVIDER],, - [Whether freerdp_register_addin_provider() is defined])],, - [#include ]) +# Addin registration variations +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_DECL([freerdp_register_addin_provider], + [AC_DEFINE([HAVE_FREERDP_REGISTER_ADDIN_PROVIDER],, + [Whether freerdp_register_addin_provider() is defined])],, + [#include ]) -AC_CHECK_DECL([freerdp_channels_global_init], - [AC_DEFINE([HAVE_FREERDP_CHANNELS_GLOBAL_INIT],, - [Whether freerdp_channels_global_init() is defined])],, - [#include ]) + AC_CHECK_DECL([freerdp_channels_global_init], + [AC_DEFINE([HAVE_FREERDP_CHANNELS_GLOBAL_INIT],, + [Whether freerdp_channels_global_init() is defined])],, + [#include ]) +fi # # FreeRDP: WinPR # # Check for stream support via WinPR -AC_CHECK_HEADER(winpr/stream.h,, - [have_winpr=no, - AC_CHECK_DECL([stream_write_uint8],, - [AC_MSG_WARN([ +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_HEADER(winpr/stream.h,, + [have_winpr=no, + AC_CHECK_DECL([stream_write_uint8],, + [AC_MSG_WARN([ -------------------------------------------- Unable to find stream support RDP will be disabled. --------------------------------------------]) - have_freerdp=no], - [#include ])]) + have_freerdp=no], + [#include ])]) +fi # Check for types in WinPR -AC_CHECK_HEADER(winpr/wtypes.h,, - [have_winpr=no, - AC_CHECK_HEADER(freerdp/types.h,, - [AC_MSG_WARN([ +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_HEADER(winpr/wtypes.h,, + [have_winpr=no, + AC_CHECK_HEADER(freerdp/types.h,, + [AC_MSG_WARN([ -------------------------------------------- Unable to find type definitions RDP will be disabled. --------------------------------------------]) - have_freerdp=no])]) + have_freerdp=no])]) +fi -if test "x${have_winpr}" = "xyes" +if test "x${have_libfreerdp}" = "xyes" -a "x${have_winpr}" = "xyes" then AC_DEFINE([ENABLE_WINPR],, [Whether library support for WinPR types was found]) @@ -430,166 +529,188 @@ fi # FreeRDP: freerdp # -# Check for current (as of 1.1) freerdp interface -AC_CHECK_MEMBERS([freerdp.ContextSize], - [freerdp_interface=stable],, - [[#include ]]) - -# If not current, check for legacy interface -if test "x${freerdp_interface}" = "xunknown" +if test "x${have_libfreerdp}" = "xyes" then - AC_CHECK_MEMBERS([freerdp.context_size], - [freerdp_interface=legacy],, + # Check for current (as of 1.1) freerdp interface + AC_CHECK_MEMBERS([freerdp.ContextSize], + [freerdp_interface=stable],, [[#include ]]) -fi -# Set defines based on interface type, warn if unknown -if test "x${freerdp_interface}" = "xlegacy"; then - AC_DEFINE([LEGACY_FREERDP],, - [Whether the older version of the FreeRDP API was found]) -elif test "x${freerdp_interface}" = "xunknown"; then - AC_MSG_WARN([ + # If not current, check for legacy interface + if test "x${freerdp_interface}" = "xunknown" + then + AC_CHECK_MEMBERS([freerdp.context_size], + [freerdp_interface=legacy],, + [[#include ]]) + fi + + # Set defines based on interface type, warn if unknown + if test "x${freerdp_interface}" = "xlegacy"; then + AC_DEFINE([LEGACY_FREERDP],, + [Whether the older version of the FreeRDP API was found]) + elif test "x${freerdp_interface}" = "xunknown"; then + AC_MSG_WARN([ -------------------------------------------- Unknown FreeRDP interface RDP will be disabled. --------------------------------------------]) - have_freerdp=no + have_freerdp=no + fi fi # # FreeRDP: rdpSettings # -# Check for current (as of 1.1) rdpSettings interface -AC_CHECK_MEMBERS([rdpSettings.Width, - rdpSettings.Height, - rdpSettings.FastPathInput, - rdpSettings.FastPathOutput, - rdpSettings.OrderSupport], - [rdpsettings_interface=stable],, - [[#include ]]) - -# If not current, check for legacy interface -if test "x${rdpsettings_interface}" = "xunknown" +if test "x${have_libfreerdp}" = "xyes" then - AC_CHECK_MEMBERS([rdpSettings.width, - rdpSettings.height, - rdpSettings.order_support], - [rdpsettings_interface=legacy],, - [[#include ]]) -fi - -# Set defines based on interface type, warn if unknown -if test "x${rdpsettings_interface}" = "xlegacy"; then - AC_DEFINE([LEGACY_RDPSETTINGS],, - [Whether the legacy version of the rdpSettings API was found]) - - # Legacy interface may not have FastPath settings - AC_CHECK_MEMBERS([rdpSettings.fast_path_input, - rdpSettings.fast_path_output],, - [rdpsettings_fastpath=no], + # Check for current (as of 1.1) rdpSettings interface + AC_CHECK_MEMBERS([rdpSettings.Width, + rdpSettings.Height, + rdpSettings.FastPathInput, + rdpSettings.FastPathOutput, + rdpSettings.OrderSupport], + [rdpsettings_interface=stable],, [[#include ]]) -elif test "x${rdpsettings_interface}" = "xunknown"; then - AC_MSG_WARN([ + # If not current, check for legacy interface + if test "x${rdpsettings_interface}" = "xunknown" + then + AC_CHECK_MEMBERS([rdpSettings.width, + rdpSettings.height, + rdpSettings.order_support], + [rdpsettings_interface=legacy],, + [[#include ]]) + fi + + # Set defines based on interface type, warn if unknown + if test "x${rdpsettings_interface}" = "xlegacy"; then + AC_DEFINE([LEGACY_RDPSETTINGS],, + [Whether the legacy version of the rdpSettings API was found]) + + # Legacy interface may not have FastPath settings + AC_CHECK_MEMBERS([rdpSettings.fast_path_input, + rdpSettings.fast_path_output],, + [rdpsettings_fastpath=no], + [[#include ]]) + + elif test "x${rdpsettings_interface}" = "xunknown"; then + AC_MSG_WARN([ -------------------------------------------- Unknown rdpSettings interface RDP will be disabled. --------------------------------------------]) - have_freerdp=no + have_freerdp=no + fi fi # Activate FastPath settings if present -if test "x${rdpsettings_fastpath}" = "xyes"; then +if test "x${have_libfreerdp}" = "xyes" -a "x${rdpsettings_fastpath}" = "xyes"; then AC_DEFINE([HAVE_RDPSETTINGS_FASTPATH],, [Whether the rdpSettings structure has FastPath settings]) fi # Check if the type CHANNEL_ENTRY_POINTS_FREERDP exists, if not define it to CHANNEL_ENTRY_POINTS_EX -AC_CHECK_TYPE([CHANNEL_ENTRY_POINTS_FREERDP],, - AC_DEFINE([CHANNEL_ENTRY_POINTS_FREERDP],[CHANNEL_ENTRY_POINTS_EX], [Type compatibility]), - [[#include ]]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_TYPE([CHANNEL_ENTRY_POINTS_FREERDP],, + AC_DEFINE([CHANNEL_ENTRY_POINTS_FREERDP],[CHANNEL_ENTRY_POINTS_EX], [Type compatibility]), + [[#include ]]) +fi # Check if the freerdp version header exists -AC_CHECK_HEADERS([freerdp/version.h]) - +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_HEADERS([freerdp/version.h]) +fi # # FreeRDP: rdpBitmap # -AC_MSG_CHECKING([whether rdpBitmap.Decompress() requires the codec_id]) -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include - #include - void __decompress(rdpContext* context, - rdpBitmap* bitmap, - UINT8* data, - int width, - int height, - int bpp, - int length, - BOOL compressed, - int codec_id); - rdpBitmap b = { .Decompress = __decompress };]])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_DEFINE([LEGACY_RDPBITMAP],, - [Whether the legacy rdpBitmap API was found])]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_MSG_CHECKING([whether rdpBitmap.Decompress() requires the codec_id]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include + #include + void __decompress(rdpContext* context, + rdpBitmap* bitmap, + UINT8* data, + int width, + int height, + int bpp, + int length, + BOOL compressed, + int codec_id); + rdpBitmap b = { .Decompress = __decompress };]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_DEFINE([LEGACY_RDPBITMAP],, + [Whether the legacy rdpBitmap API was found])]) +fi # # FreeRDP: rdpPalette # -AC_MSG_CHECKING([whether rdpPalette.entries is static]) -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include - rdpPalette p; - PALETTE_ENTRY* foo = p.entries;]])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_DEFINE([LEGACY_RDPPALETTE],, - [Whether the legacy rdpPalette API was found])]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_MSG_CHECKING([whether rdpPalette.entries is static]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include + rdpPalette p; + PALETTE_ENTRY* foo = p.entries;]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_DEFINE([LEGACY_RDPPALETTE],, + [Whether the legacy rdpPalette API was found])]) +fi # # FreeRDP: rdpPointer # # Check for SetDefault and SetNull members of rdpPointer -AC_CHECK_MEMBERS([rdpPointer.SetDefault, - rdpPointer.SetNull], - ,, - [[#include ]]) +if test "x${have_libfreerdp}" = "xyes" +then + AC_CHECK_MEMBERS([rdpPointer.SetDefault, + rdpPointer.SetNull], + ,, + [[#include ]]) +fi # # FreeRDP: wMessage / RDP_EVENT # # Check for current (as of 1.1) wMessage interface -AC_CHECK_MEMBERS([wMessage.id], - [event_interface=stable],, - [[#include ]]) - -# If not current, check for legacy (RDP_EVENT) interface -if test "x${event_interface}" = "xunknown" +if test "x${have_libfreerdp}" = "xyes" then - AC_CHECK_MEMBERS([RDP_EVENT.event_class], - [event_interface=legacy],, - [[#include ]]) -fi + AC_CHECK_MEMBERS([wMessage.id], + [event_interface=stable],, + [[#include ]]) -# Set defines based on interface type, warn if unknown -if test "x${event_interface}" = "xlegacy"; then - AC_DEFINE([LEGACY_EVENT],, - [Whether the legacy RDP_EVENT API was found]) -elif test "x${event_interface}" = "xunknown"; then - AC_MSG_WARN([ + # If not current, check for legacy (RDP_EVENT) interface + if test "x${event_interface}" = "xunknown" + then + AC_CHECK_MEMBERS([RDP_EVENT.event_class], + [event_interface=legacy],, + [[#include ]]) + fi + + # Set defines based on interface type, warn if unknown + if test "x${event_interface}" = "xlegacy"; then + AC_DEFINE([LEGACY_EVENT],, + [Whether the legacy RDP_EVENT API was found]) + elif test "x${event_interface}" = "xunknown"; then + AC_MSG_WARN([ -------------------------------------------- Unknown event interface RDP will be disabled. --------------------------------------------]) - have_freerdp=no + have_freerdp=no + fi fi - AM_CONDITIONAL([LEGACY_FREERDP_EXTENSIONS], [test "x${legacy_freerdp_extensions}" = "xyes"]) AM_CONDITIONAL([ENABLE_WINPR], [test "x${have_winpr}" = "xyes"]) AM_CONDITIONAL([ENABLE_RDP], [test "x${have_freerdp}" = "xyes"]) @@ -600,12 +721,28 @@ AC_SUBST(RDP_LIBS) # libssh2 # -have_libssh2=yes +have_libssh2=disabled SSH_LIBS= +AC_ARG_WITH([ssh], + [AS_HELP_STRING([--with-ssh], + [support SSH @<:@default=check@:>@])], + [], + [with_ssh=check]) + +AC_ARG_ENABLE(ssh_agent, + [AS_HELP_STRING([--enable-ssh-agent], + [enable built-in ssh-agent]) + ],enable_ssh_agent=yes) + +if test "x$with_ssh" != "xno" +then + have_libssh2=yes + + AC_CHECK_LIB([ssh2], [libssh2_session_init_ex], + [SSH_LIBS="$SSH_LIBS -lssh2"], + [have_libssh2=no]) +fi -AC_CHECK_LIB([ssh2], [libssh2_session_init_ex], - [SSH_LIBS="$SSH_LIBS -lssh2"], - [have_libssh2=no]) AM_CONDITIONAL([ENABLE_SSH], [test "x${have_libssh2}" = "xyes" \ -a "x${have_terminal}" = "xyes" \ -a "x${have_ssl}" = "xyes"]) @@ -667,12 +804,22 @@ AM_CONDITIONAL([ENABLE_SSH_AGENT], # libtelnet # -have_libtelnet=yes +have_libtelnet=disabled TELNET_LIBS= +AC_ARG_WITH([telnet], + [AS_HELP_STRING([--with-telnet], + [support Telnet @<:@default=check@:>@])], + [], + [with_telnet=check]) + +if test "x$with_telnet" != "xno" +then + have_libtelnet=yes + AC_CHECK_LIB([telnet], [telnet_init], + [TELNET_LIBS="$TELNET_LIBS -ltelnet"], + [have_libtelnet=no]) +fi -AC_CHECK_LIB([telnet], [telnet_init], - [TELNET_LIBS="$TELNET_LIBS -ltelnet"], - [have_libtelnet=no]) AM_CONDITIONAL([ENABLE_TELNET], [test "x${have_libtelnet}" = "xyes" \ -a "x${have_terminal}" = "xyes"])