From 37fc2cf5ba8919cef407199ee540aad4b1a9a2b6 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Sat, 31 Oct 2009 17:38:08 -0400 Subject: [PATCH] configure: check for socat and its escape feature Currently we use a static value for the socat path, or we trust the user-provided one. With this patch we still trust any user provided value, but if none is passed we check for socat on the machine we're being configured on. This allows us also to check if we can or cannot use the escape= feature in socat. If the user has forced the path in, he can also pass --with-socat-escape in order to force the escape functionality to be used, even if a check is not done. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- Makefile.am | 1 + configure.ac | 39 +++++++++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index cbfa69c1c..87af4e64e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -411,6 +411,7 @@ lib/_autoconf.py: Makefile stamp-directories echo "KVM_PATH = '$(KVM_PATH)'"; \ echo "KVM_MIGRATION_PORT = '$(KVM_MIGRATION_PORT)'"; \ echo "SOCAT_PATH = '$(SOCAT_PATH)'"; \ + echo "SOCAT_ESCAPE = '$(SOCAT_ESCAPE)'"; \ echo "LVM_STRIPECOUNT = $(LVM_STRIPECOUNT)"; \ echo "TOOLSDIR = '$(toolsdir)'"; \ echo "GNT_SCRIPTS = [$(foreach i,$(notdir $(gnt_scripts)),'$(i)',)]"; \ diff --git a/configure.ac b/configure.ac index 3ba28cd9f..c681e034b 100644 --- a/configure.ac +++ b/configure.ac @@ -122,11 +122,16 @@ AC_SUBST(KVM_MIGRATION_PORT, $kvm_migration_port) AC_ARG_WITH([socat-path], [AS_HELP_STRING([--with-socat-path=PATH], [absolute path to the socat binary] - [ (default is /usr/bin/socat)] + [ (default is to let configure search for it)] )], - [socat_path="$withval"], - [socat_path="/usr/bin/socat"]) -AC_SUBST(SOCAT_PATH, $socat_path) + [SOCAT="$withval"], + []) + +AC_ARG_WITH([socat-escape], + [AS_HELP_STRING([--with-socat-escape], + [enable escape functionality found in newer socat])], + [], + [check_socat_escape=yes]) # ---with-lvm-stripecount=... AC_ARG_WITH([lvm-stripecount], @@ -173,6 +178,32 @@ then AC_MSG_WARN([dot (from the graphviz suite) not found, documentation rebuild not possible]) fi +if test -z "$SOCAT" -a -n "$check_socat_escape" +then +AC_CACHE_CHECK([for socat with the escape feature], [ac_cv_path_SOCAT], + [AC_PATH_PROGS_FEATURE_CHECK(SOCAT, [socat], + [[$ac_path_SOCAT -hh | grep -q escape \ + && ac_cv_path_SOCAT=$ac_path_SOCAT \ + SOCAT=$ac_cv_path_SOCAT \ + with_socat_escape=yes ac_path_SOCAT_found=:]], + [AC_MSG_WARN([no escape feature found])])]) +fi + +if test -z "$SOCAT" +then +AC_CACHE_CHECK([for socat], [ac_cv_path_SOCAT], + [AC_PATH_PROGS_FEATURE_CHECK(SOCAT, [socat], + [[ac_cv_path_SOCAT=$ac_path_SOCAT \ + SOCAT=$ac_cv_path_SOCAT ac_path_SOCAT_found=:]], + [AC_MSG_ERROR([socat not found])])]) +fi + +AC_SUBST([SOCAT_PATH], [$SOCAT]) +if test "x$with_socat_escape" = xyes +then + AC_SUBST([SOCAT_ESCAPE], [1]) +fi + # Check for Python AM_PATH_PYTHON(2.4) -- GitLab