echo >> config.log
echo "#" >> config.log
-error_exit() {
- echo
+print_error() {
+ (echo
echo "ERROR: $1"
while test -n "$2"; do
echo " $2"
shift
done
- echo
+ echo) >&2
+}
+
+error_exit() {
+ print_error "$@"
exit 1
}
return 1
}
+supported_target() {
+ case "$1" in
+ *-softmmu)
+ ;;
+ *-linux-user)
+ if test "$linux" != "yes"; then
+ print_error "Target '$target' is only available on a Linux host"
+ return 1
+ fi
+ ;;
+ *-bsd-user)
+ if test "$bsd" != "yes"; then
+ print_error "Target '$target' is only available on a BSD host"
+ return 1
+ fi
+ ;;
+ *)
+ print_error "Invalid target name '$target'"
+ return 1
+ ;;
+ esac
+ test "$tcg" = "yes" && return 0
+ supported_kvm_target "$1" && return 0
+ supported_xen_target "$1" && return 0
+ supported_hax_target "$1" && return 0
+ print_error "TCG disabled, but hardware accelerator not available for '$target'"
+ return 1
+}
+
# default parameters
source_path=$(dirname "$0")
cpu=""
attr=""
libattr=""
xfs=""
+tcg="yes"
vhost_net="no"
vhost_scsi="no"
;;
--enable-cap-ng) cap_ng="yes"
;;
+ --disable-tcg) tcg="no"
+ ;;
+ --enable-tcg) tcg="yes"
+ ;;
--disable-spice) spice="no"
;;
--enable-spice) spice="yes"
fi
if test -z "${target_list+xxx}" ; then
- target_list="$default_target_list"
+ for target in $default_target_list; do
+ supported_target $target 2>/dev/null && \
+ target_list="$target_list $target"
+ done
+ target_list="${target_list# }"
else
target_list=$(echo "$target_list" | sed -e 's/,/ /g')
+ for target in $target_list; do
+ # Check that we recognised the target name; this allows a more
+ # friendly error message than if we let it fall through.
+ case " $default_target_list " in
+ *" $target "*)
+ ;;
+ *)
+ error_exit "Unknown target name '$target'"
+ ;;
+ esac
+ supported_target $target || exit 1
+ done
fi
-# Check that we recognised the target name; this allows a more
-# friendly error message than if we let it fall through.
-for target in $target_list; do
- case " $default_target_list " in
- *" $target "*)
- ;;
- *)
- error_exit "Unknown target name '$target'"
- ;;
- esac
-done
-
# see if system emulation was really requested
case " $target_list " in
*"-softmmu "*) softmmu=yes
echo "host CPU $cpu"
echo "host big endian $bigendian"
echo "target list $target_list"
-echo "tcg debug enabled $debug_tcg"
echo "gprof enabled $gprof"
echo "sparse enabled $sparse"
echo "strip binaries $strip_opt"
echo "Install blobs $blobs"
echo "KVM support $kvm"
echo "HAX support $hax"
+echo "TCG support $tcg"
+if test "$tcg" = "yes" ; then
+ echo "TCG debug enabled $debug_tcg"
+ echo "TCG interpreter $tcg_interpreter"
+fi
echo "RDMA support $rdma"
-echo "TCG interpreter $tcg_interpreter"
echo "fdt support $fdt"
echo "preadv support $preadv"
echo "fdatasync $fdatasync"
if test "$signalfd" = "yes" ; then
echo "CONFIG_SIGNALFD=y" >> $config_host_mak
fi
-if test "$tcg_interpreter" = "yes" ; then
- echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
+if test "$tcg" = "yes"; then
+ echo "CONFIG_TCG=y" >> $config_host_mak
+ if test "$tcg_interpreter" = "yes" ; then
+ echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
+ fi
fi
if test "$fdatasync" = "yes" ; then
echo "CONFIG_FDATASYNC=y" >> $config_host_mak
target_softmmu="yes"
;;
${target_name}-linux-user)
- if test "$linux" != "yes" ; then
- error_exit "Target '$target' is only available on a Linux host"
- fi
target_user_only="yes"
target_linux_user="yes"
;;
${target_name}-bsd-user)
- if test "$bsd" != "yes" ; then
- error_exit "Target '$target' is only available on a BSD host"
- fi
target_user_only="yes"
target_bsd_user="yes"
;;