X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure;h=5b183c2e391bfa4553fbe061c23bb419bebe8310;hb=a6ae23831b05a11880b40f7d58e332c45a6b04f7;hp=c5032425e6d31a4dd8029428f27cd49e5804368f;hpb=c670970dc069ebaf941a786f0608fca701dcf7d0;p=mirror_qemu.git diff --git a/configure b/configure index c5032425e6..5b183c2e39 100755 --- a/configure +++ b/configure @@ -278,6 +278,8 @@ ld_has() { # default parameters source_path=$(dirname "$0") +# make source path absolute +source_path=$(cd "$source_path"; pwd) cpu="" iasl="iasl" interp_prefix="/usr/gnemul/qemu-%M" @@ -327,6 +329,7 @@ git="git" # Don't accept a target_list environment variable. unset target_list +unset target_list_exclude # Default value for a variable defining feature "foo". # * foo="no" feature will only be used if --enable-foo arg is given @@ -519,8 +522,6 @@ for opt do ;; --cxx=*) CXX="$optarg" ;; - --source-path=*) source_path="$optarg" - ;; --cpu=*) cpu="$optarg" ;; --extra-cflags=*) QEMU_CFLAGS="$QEMU_CFLAGS $optarg" @@ -599,9 +600,6 @@ if test "$debug_info" = "yes"; then LDFLAGS="-g $LDFLAGS" fi -# make source path absolute -source_path=$(cd "$source_path"; pwd) - # running configure in the source tree? # we know that's the case if configure is there. if test -f "./configure"; then @@ -901,7 +899,18 @@ fi : ${make=${MAKE-make}} : ${install=${INSTALL-install}} -: ${python=${PYTHON-python}} +# We prefer python 3.x. A bare 'python' is traditionally +# python 2.x, but some distros have it as python 3.x, so +# we check that before python2 +python= +for binary in "${PYTHON-python3}" python python2 +do + if has "$binary" + then + python="$binary" + break + fi +done : ${smbd=${SMBD-/usr/sbin/smbd}} # Default objcc to clang if available, otherwise use CC @@ -945,8 +954,6 @@ for opt do ;; --interp-prefix=*) interp_prefix="$optarg" ;; - --source-path=*) - ;; --cross-prefix=*) ;; --cc=*) @@ -990,6 +997,14 @@ for opt do --cpu=*) ;; --target-list=*) target_list="$optarg" + if test "$target_list_exclude"; then + error_exit "Can't mix --target-list with --target-list-exclude" + fi + ;; + --target-list-exclude=*) target_list_exclude="$optarg" + if test "$target_list"; then + error_exit "Can't mix --target-list-exclude with --target-list" + fi ;; --enable-trace-backends=*) trace_backends="$optarg" ;; @@ -1111,6 +1126,8 @@ for opt do ;; --disable-slirp) slirp="no" ;; + --enable-slirp=git) slirp="git" + ;; --enable-slirp=system) slirp="system" ;; --disable-vde) vde="no" @@ -1601,9 +1618,26 @@ if [ "$bsd_user" = "yes" ]; then mak_wilds="${mak_wilds} $source_path/default-configs/*-bsd-user.mak" fi -for config in $mak_wilds; do - default_target_list="${default_target_list} $(basename "$config" .mak)" -done +if test -z "$target_list_exclude"; then + for config in $mak_wilds; do + default_target_list="${default_target_list} $(basename "$config" .mak)" + done +else + exclude_list=$(echo "$target_list_exclude" | sed -e 's/,/ /g') + for config in $mak_wilds; do + target="$(basename "$config" .mak)" + exclude="no" + for excl in $exclude_list; do + if test "$excl" = "$target"; then + exclude="yes" + break; + fi + done + if test "$exclude" = "no"; then + default_target_list="${default_target_list} $target" + fi + done +fi # Enumerate public trace backends for --help output trace_backend_list=$(echo $(grep -le '^PUBLIC = True$' "$source_path"/scripts/tracetool/backend/*.py | sed -e 's/^.*\/\(.*\)\.py$/\1/')) @@ -1622,9 +1656,9 @@ Standard options: --target-list=LIST set target list (default: build everything) $(echo Available targets: $default_target_list | \ fold -s -w 53 | sed -e 's/^/ /') + --target-list-exclude=LIST exclude a set of targets from the default target-list Advanced options (experts only): - --source-path=PATH path of source code [$source_path] --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix] --cc=CC use C compiler CC [$cc] --iasl=IASL use ACPI compiler IASL [$iasl] @@ -1797,8 +1831,12 @@ EOF exit 0 fi -if ! has $python; then - error_exit "Python not found. Use --python=/path/to/python" +# Remove old dependency files to make sure that they get properly regenerated +rm -f *-config-devices.mak.d + +if test -z "$python" +then + error_exit "Python not found. Use --python=/path/to/python" fi # Note that if the Python conditional here evaluates True we will exit @@ -1887,7 +1925,7 @@ gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_ gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags" gcc_flags="-Wendif-labels -Wno-shift-negative-value $gcc_flags" gcc_flags="-Wno-initializer-overrides -Wexpansion-to-defined $gcc_flags" -gcc_flags="-Wno-string-plus-int $gcc_flags" +gcc_flags="-Wno-string-plus-int -Wno-typedef-redefinition $gcc_flags" # Note that we do not add -Werror to gcc_flags here, because that would # enable it for all configure tests. If a configure test failed due # to -Werror this would just silently disable some features, @@ -2350,36 +2388,16 @@ fi ########################################## # libseccomp check -libseccomp_minver="2.2.0" if test "$seccomp" != "no" ; then - case "$cpu" in - i386|x86_64|mips) - ;; - arm|aarch64) - libseccomp_minver="2.2.3" - ;; - ppc|ppc64|s390x) - libseccomp_minver="2.3.0" - ;; - *) - libseccomp_minver="" - ;; - esac - - if test "$libseccomp_minver" != "" && - $pkg_config --atleast-version=$libseccomp_minver libseccomp ; then + libseccomp_minver="2.3.0" + if $pkg_config --atleast-version=$libseccomp_minver libseccomp ; then seccomp_cflags="$($pkg_config --cflags libseccomp)" seccomp_libs="$($pkg_config --libs libseccomp)" seccomp="yes" else if test "$seccomp" = "yes" ; then - if test "$libseccomp_minver" != "" ; then - feature_not_found "libseccomp" \ - "Install libseccomp devel >= $libseccomp_minver" - else - feature_not_found "libseccomp" \ - "libseccomp is not supported for host cpu $cpu" - fi + feature_not_found "libseccomp" \ + "Install libseccomp devel >= $libseccomp_minver" fi seccomp="no" fi @@ -5864,6 +5882,8 @@ case "$slirp" in "" | yes) if $pkg_config slirp; then slirp=system + elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then + slirp=git elif test -e "${source_path}/slirp/Makefile" ; then slirp=internal elif test -z "$slirp" ; then @@ -5881,7 +5901,10 @@ case "$slirp" in esac case "$slirp" in - internal) + git | internal) + if test "$slirp" = git; then + git_submodules="${git_submodules} slirp" + fi mkdir -p slirp slirp_cflags="-I\$(SRC_PATH)/slirp/src -I\$(BUILD_DIR)/slirp/src" slirp_libs="-L\$(BUILD_DIR)/slirp -lslirp" @@ -6544,7 +6567,7 @@ if test "$slirp" != "no"; then echo "SLIRP_CFLAGS=$slirp_cflags" >> $config_host_mak echo "SLIRP_LIBS=$slirp_libs" >> $config_host_mak fi -if [ "$slirp" = "internal" ]; then +if [ "$slirp" = "git" -o "$slirp" = "internal" ]; then echo "config-host.h: subdir-slirp" >> $config_host_mak fi if test "$vde" = "yes" ; then @@ -7865,6 +7888,7 @@ for bios_file in \ $source_path/pc-bios/*.img \ $source_path/pc-bios/openbios-* \ $source_path/pc-bios/u-boot.* \ + $source_path/pc-bios/edk2-*.fd.bz2 \ $source_path/pc-bios/palcode-* do LINKS="$LINKS pc-bios/$(basename $bios_file)"