This patch adds cross compile capability to the top level configure
script.
Updates:
Removed command line option --target-cpu to configure what qemu
executable to build.
diff -r f48e521e0add configure
--- a/configure Wed Oct 03 21:00:03 2007 -0500
+++ b/configure Mon Oct 08 03:30:41 2007 -0500
@@ -5,13 +5,17 @@ want_module=1
want_module=1
qemu_cc=$(ls /usr/bin/gcc3* /usr/bin/gcc-3* 2>/dev/null | tail -n1)
disable_gcc_check=
+cross_prefix=
+arch=`uname -m`
+target_cpu=
usage() {
cat <<-EOF
Usage: $0 [options]
Options include:
-
+ --arch=ARCH architecture to compile for ($arch)
+ --cross-prefix=PREFIX prefix for cross compiler
--prefix=PREFIX where to install things ($prefix)
--with-patched-kernel don't use external module
--kerneldir=DIR kernel build directory ($kerneldir)
@@ -53,6 +57,12 @@ while [[ "$1" = -* ]]; do
--disable-gcc-check)
disable_gcc_check=1
;;
+ --arch)
+ arch="$arg"
+ ;;
+ --cross-prefix)
+ cross_prefix="$arg"
+ ;;
--help)
usage
;;
@@ -62,7 +72,7 @@ while [[ "$1" = -* ]]; do
esac
done
-if [[ -z "$qemu_cc" ]]; then
+if [[ -z "$qemu_cc" ]] && [[ -z "$cross_prefix" ]]; then
echo "$0: cannot locate gcc 3.x. please install it or specify with --qemu-cc"
exit 1
fi
@@ -72,29 +82,48 @@ if (( want_module )); then
libkvm_kerneldir=$(readlink -f kernel)
fi
-target_cpu() {
- if [[ $(uname -m) = i?86 ]]; then
- echo x86_64
- else
- uname -m
+#if arch is an x86 arch set to i386
+if [[ $arch = i?86 ]]; then
+ arch="i386"
+fi
+
+#see if using a cross compiler or not
+compiler=
+qemu_opts=
+user_opts=
+if [[ -z $cross_prefix ]]; then
+ qemu_opts+=" --cc=$qemu_cc"
+ user_opts+=" --cc=$qemu_cc"
+else
+ qemu_opts+=" --cross-prefix=$cross_prefix"
+ user_opts+=" --cross-prefix=$cross_prefix"
+fi
+
+#set parameters compiling
+if [ "$arch" = "i386" -o "$arch" = "x86_64" ]; then
+ if [[ -z $target_cpu ]]; then
+ target_cpu="x86_64"
fi
-}
+ qemu_opts+=" --enable-alsa"
+fi
-(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir")
-(cd qemu; ./configure --target-list=$(target_cpu)-softmmu --cc="$qemu_cc" \
+#configure user dir
+(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir" \
+ $user_opts --arch="$arch")
+(cd qemu; ./configure --target-list=$target_cpu-softmmu \
--disable-kqemu --extra-cflags="-I $PWD/../user" \
--extra-ldflags="-L $PWD/../user" \
--enable-kvm --kernel-path="$libkvm_kerneldir" \
- --enable-alsa \
${disable_gcc_check:+"--disable-gcc-check"} \
- --prefix="$prefix"
+ --prefix="$prefix" \
+ $qemu_opts --cpu="$arch"
)
-
cat <<EOF > config.mak
+ARCH=$arch
PREFIX=$prefix
KERNELDIR=$kerneldir
WANT_MODULE=$want_module
+CC=$cross_prefix$qemu_cc
EOF
-
-------------------------------------------------------------------------
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/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel