configure: early test for supported targets
Check for unsupported targets in target_list, and print an error early in the configuration process. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3b6b75506d
commit
d880a3ba7d
52
configure
vendored
52
configure
vendored
@ -40,14 +40,18 @@ printf " '%s'" "$0" "$@" >> config.log
|
|||||||
echo >> config.log
|
echo >> config.log
|
||||||
echo "#" >> config.log
|
echo "#" >> config.log
|
||||||
|
|
||||||
error_exit() {
|
print_error() {
|
||||||
echo
|
(echo
|
||||||
echo "ERROR: $1"
|
echo "ERROR: $1"
|
||||||
while test -n "$2"; do
|
while test -n "$2"; do
|
||||||
echo " $2"
|
echo " $2"
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
echo
|
echo) >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
error_exit() {
|
||||||
|
print_error "$@"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,6 +211,30 @@ supported_xen_target() {
|
|||||||
return 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
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
# default parameters
|
# default parameters
|
||||||
source_path=$(dirname "$0")
|
source_path=$(dirname "$0")
|
||||||
cpu=""
|
cpu=""
|
||||||
@ -1734,14 +1762,16 @@ if test "$solaris" = "yes" ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "${target_list+xxx}" ; then
|
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
|
else
|
||||||
target_list=$(echo "$target_list" | sed -e 's/,/ /g')
|
target_list=$(echo "$target_list" | sed -e 's/,/ /g')
|
||||||
fi
|
for target in $target_list; do
|
||||||
|
|
||||||
# Check that we recognised the target name; this allows a more
|
# Check that we recognised the target name; this allows a more
|
||||||
# friendly error message than if we let it fall through.
|
# friendly error message than if we let it fall through.
|
||||||
for target in $target_list; do
|
|
||||||
case " $default_target_list " in
|
case " $default_target_list " in
|
||||||
*" $target "*)
|
*" $target "*)
|
||||||
;;
|
;;
|
||||||
@ -1749,7 +1779,9 @@ for target in $target_list; do
|
|||||||
error_exit "Unknown target name '$target'"
|
error_exit "Unknown target name '$target'"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
supported_target $target || exit 1
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# see if system emulation was really requested
|
# see if system emulation was really requested
|
||||||
case " $target_list " in
|
case " $target_list " in
|
||||||
@ -6050,16 +6082,10 @@ case "$target" in
|
|||||||
target_softmmu="yes"
|
target_softmmu="yes"
|
||||||
;;
|
;;
|
||||||
${target_name}-linux-user)
|
${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_user_only="yes"
|
||||||
target_linux_user="yes"
|
target_linux_user="yes"
|
||||||
;;
|
;;
|
||||||
${target_name}-bsd-user)
|
${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_user_only="yes"
|
||||||
target_bsd_user="yes"
|
target_bsd_user="yes"
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user