public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Carlo Marcelo Arenas Belon <carenas-kLeDWSohozoJb6fo7hG9ng@public.gmane.org>
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: [RFC v3] passthrough for configure options to qemu
Date: Mon, 22 Oct 2007 19:07:49 -0500	[thread overview]
Message-ID: <20071023000749.GB28523@tapir> (raw)

The following patch implement a configure passthrough for qemu and
migrate all currently implemented qemu specific configuration flags
(enable-alsa, disable-vnc-tls and disable-gcc-check) to use it.
 
It uses qemu's configure to get a list of hints for additional options to
use and to keep backward compatible descriptions of the options that can
be used, but adding disable-gcc-check statically so it is clear what the 
impact of overriding the use of gcc4 is. 

Qemu's configure has been enhanced to protect against the use of invalid 
options as well as reconfigured to stderr for fatal errors so they can be 
integrated into kvm's configure.
            
Carlo

---
diff --git a/configure b/configure
index a0c8746..43bd8a7 100755
--- a/configure
+++ b/configure
@@ -6,9 +6,7 @@ want_module=1
 qemu_cc=
 qemu_cflags=
 qemu_ldflags=
-enable_alsa=
-disable_vnc_tls=
-disable_gcc_check=
+qemu_conf=
 cross_prefix=
 arch=`uname -m`
 target_exec=
@@ -26,11 +24,16 @@ usage() {
 	    --qemu-cc=CC           specify compiler for qemu (must be gcc-3.x)
 	    --qemu-cflags=CFLAGS   CFLAGS to add to qemu configuration
 	    --qemu-ldflags=LDFLAGS LDFLAGS to add to qemu configuration
-	    --enable-alsa          enable alsa support for qemu
-	    --disable-vnc-tls      disable vnc tls support for qemu
+
+	Any additional option is given to qemu's configure verbatim; including:
 	    --disable-gcc-check    don't insist on gcc-3.x
 	                           CAUTION: this will break running without kvm
 EOF
+    cd qemu
+    ./configure --help | egrep "enable-|disable-" \
+        | grep -v user | grep -v system | grep -v kqemu | grep -v kvm \
+        | sed -e "s/^  /    /g" \
+        | sed -e"s/  enable/enable/g" | sed -e "s/  disable/disable/g"
     exit 1
 }
 
@@ -60,15 +63,6 @@ while [[ "$1" = -* ]]; do
 	--qemu-ldflags)
 	    qemu_ldflags="$arg"
 	    ;;
-	--enable-alsa)
-	    enable_alsa=1
-	    ;;
-	--disable-vnc-tls)
-	    disable_vnc_tls=1
-	    ;;
-	--disable-gcc-check)
-	    disable_gcc_check=1
-	    ;;
 	--arch)
 	    arch="$arg"
 	    ;;
@@ -79,7 +73,7 @@ while [[ "$1" = -* ]]; do
 	    usage
 	    ;;
 	*)
-	    usage
+	    qemu_conf="$qemu_conf $opt"
 	    ;;
     esac
 done
@@ -111,14 +105,11 @@ fi
     --disable-kqemu --extra-cflags="-I $PWD/../user $qemu_cflags" \
     --extra-ldflags="-L $PWD/../user $qemu_ldflags" \
     --enable-kvm --kernel-path="$libkvm_kerneldir" \
-    ${enable_alsa:+"--enable-alsa"} \
-    ${disable_vnc_tls:+"--disable-vnc-tls"} \
-    ${disable_gcc_check:+"--disable-gcc-check"} \
     --prefix="$prefix" \
     ${qemu_cc:+"--cc=$qemu_cc"} \
     ${cross_prefix:+"--cross-prefix=$cross_prefix"} \
-    ${cross_prefix:+"--cpu=$arch"}
-)
+    ${cross_prefix:+"--cpu=$arch"} $qemu_conf > /dev/null
+) || usage
 
 
 cat <<EOF > config.mak
diff --git a/qemu/configure b/qemu/configure
index fc1e59a..a95018a 100755
--- a/qemu/configure
+++ b/qemu/configure
@@ -311,6 +311,8 @@ for opt do
         *)     echo "undefined SPARC architecture. Exiting";exit 1;;
       esac
   ;;
+  *) show_help="yes"
+  ;;
   esac
 done
 
@@ -419,7 +421,7 @@ EOF
 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
   : C compiler works ok
 else
-    echo "ERROR: \"$cc\" either does not exist or does not work"
+    echo "ERROR: \"$cc\" either does not exist or does not work" 1>&2
     exit 1
 fi
 
@@ -438,26 +440,26 @@ if test "$check_gcc" = "yes" ; then
 int main(){return 0;}
 EOF
     if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
-	echo "WARNING: \"$cc\" looks like gcc 4.x"
+	echo "WARNING: \"$cc\" looks like gcc 4.x" 1>&2
 	found_compat_cc="no"
 	if test "$gcc3_search" = "yes" ; then
-	    echo "Looking for gcc 3.x"
+	    echo "Looking for gcc 3.x" 1>&2
 	    for compat_cc in $gcc3_list ; do
 		if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
-		    echo "Found \"$compat_cc\""
+		    echo "Found \"$compat_cc\"" 1>&2
 		    cc="$cross_prefix$compat_cc"
 		    found_compat_cc="yes"
 		    break
 		fi
 	    done
 	    if test "$found_compat_cc" = "no" ; then
-		echo "gcc 3.x not found!"
+		echo "gcc 3.x not found!" 1>&2
 	    fi
 	fi
 	if test "$found_compat_cc" = "no" ; then
-	    echo "QEMU is known to have problems when compiled with gcc 4.x"
-	    echo "It is recommended that you use gcc 3.x to build QEMU"
-	    echo "To use this compiler anyway, configure with --disable-gcc-check"
+	    echo "QEMU is known to have problems when compiled with gcc 4.x" 1>&2
+	    echo "It is recommended that you use gcc 3.x to build QEMU" 1>&2
+	    echo "To use this compiler anyway, configure with --disable-gcc-check" 1>&2
 	    exit 1;
 	fi
     fi
@@ -970,9 +972,9 @@ esac
 
 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
         -a "$sdl" = "no" -a "$cocoa" = "no" ; then
-    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
-    echo "To build QEMU without graphical output configure with --disable-gfx-check"
-    echo "Note that this will disable all output from the virtual graphics card."
+    echo "ERROR: QEMU requires SDL or Cocoa for graphical output" 1>&2
+    echo "To build QEMU without graphical output configure with --disable-gfx-check" 1>&2
+    echo "Note that this will disable all output from the virtual graphics card." 1>&2
     exit 1;
 fi
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/

             reply	other threads:[~2007-10-23  0:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-23  0:07 Carlo Marcelo Arenas Belon [this message]
2007-10-25 18:38 ` [RFC v3] passthrough for configure options to qemu Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071023000749.GB28523@tapir \
    --to=carenas-kledwsohozojb6fo7hg9ng@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox