echo >> config.log
echo "#" >> config.log
+quote_sh() {
+ printf "%s" "$1" | sed "s,','\\\\'',g; s,.*,'&',"
+}
+
print_error() {
(echo
echo "ERROR: $1"
iasl="iasl"
interp_prefix="/usr/gnemul/qemu-%M"
static="no"
+cross_compile="no"
cross_prefix=""
audio_drv_list=""
block_drv_rw_whitelist=""
audio_win_int=""
libs_qga=""
debug_info="yes"
+lto="false"
stack_protector=""
safe_stack=""
use_containers="yes"
if test -e "$source_path/.git"
then
- git_update=yes
+ git_submodules_action="update"
git_submodules="ui/keycodemapdb"
git_submodules="$git_submodules tests/fp/berkeley-testfloat-3"
git_submodules="$git_submodules tests/fp/berkeley-softfloat-3"
else
- git_update=no
+ git_submodules_action="ignore"
git_submodules=""
if ! test -f "$source_path/ui/keycodemapdb/README"
# Distributions want to ensure that several features are compiled in, and it
# is impossible without a --enable-foo that exits if a feature is not found.
-brlapi=""
-curl=""
+default_feature=""
+# parse CC options second
+for opt do
+ optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
+ case "$opt" in
+ --without-default-features)
+ default_feature="no"
+ ;;
+ esac
+done
+
+brlapi="auto"
+curl="auto"
iconv="auto"
curses="auto"
docs="auto"
netmap="no"
sdl="auto"
sdl_image="auto"
+coreaudio="auto"
virtiofsd="auto"
-virtfs=""
+virtfs="auto"
libudev="auto"
mpath="auto"
vnc="enabled"
sparse="auto"
-vde=""
+vde="$default_feature"
vnc_sasl="auto"
vnc_jpeg="auto"
vnc_png="auto"
xkbcommon="auto"
-xen=""
-xen_ctrl_version=""
+xen="$default_feature"
+xen_ctrl_version="$default_feature"
xen_pci_passthrough="auto"
-linux_aio=""
-linux_io_uring=""
-cap_ng=""
-attr=""
-libattr=""
-xfs=""
+linux_aio="$default_feature"
+linux_io_uring="$default_feature"
+cap_ng="auto"
+attr="auto"
+xfs="$default_feature"
tcg="enabled"
-membarrier=""
-vhost_net=""
-vhost_crypto=""
-vhost_scsi=""
-vhost_vsock=""
+membarrier="$default_feature"
+vhost_net="$default_feature"
+vhost_crypto="$default_feature"
+vhost_scsi="$default_feature"
+vhost_vsock="$default_feature"
vhost_user="no"
vhost_user_blk_server="auto"
-vhost_user_fs=""
+vhost_user_fs="$default_feature"
kvm="auto"
hax="auto"
hvf="auto"
whpx="auto"
-rdma=""
-pvrdma=""
+rdma="$default_feature"
+pvrdma="$default_feature"
gprof="no"
debug_tcg="no"
debug="no"
sanitizers="no"
tsan="no"
-fortify_source=""
+fortify_source="$default_feature"
strip_opt="yes"
-tcg_interpreter="no"
+tcg_interpreter="false"
bigendian="no"
mingw32="no"
gcov="no"
-EXESUF=""
+EXESUF="$default_feature"
HOST_DSOSUF=".so"
modules="no"
module_upgrades="no"
qom_cast_debug="yes"
trace_backends="log"
trace_file="trace"
-spice=""
-rbd=""
-smartcard=""
+spice="$default_feature"
+rbd="auto"
+smartcard="$default_feature"
u2f="auto"
-libusb=""
-usb_redir=""
-opengl=""
+libusb="$default_feature"
+usb_redir="$default_feature"
+opengl="$default_feature"
opengl_dmabuf="no"
cpuid_h="no"
-avx2_opt=""
+avx2_opt="$default_feature"
capstone="auto"
-lzo=""
-snappy=""
-bzip2=""
-lzfse=""
-zstd=""
-guest_agent=""
+lzo="auto"
+snappy="auto"
+bzip2="auto"
+lzfse="auto"
+zstd="auto"
+guest_agent="$default_feature"
guest_agent_with_vss="no"
guest_agent_ntddscsi="no"
-guest_agent_msi=""
-vss_win32_sdk=""
+guest_agent_msi="auto"
+vss_win32_sdk="$default_feature"
win_sdk="no"
-want_tools=""
-libiscsi=""
-libnfs=""
+want_tools="$default_feature"
+libiscsi="auto"
+libnfs="auto"
coroutine=""
-coroutine_pool=""
+coroutine_pool="$default_feature"
debug_stack_usage="no"
crypto_afalg="no"
-seccomp=""
-glusterfs=""
-glusterfs_xlator_opt="no"
-glusterfs_discard="no"
-glusterfs_fallocate="no"
-glusterfs_zerofill="no"
-glusterfs_ftruncate_has_stat="no"
-glusterfs_iocb_has_stat="no"
-gtk=""
-gtk_gl="no"
+cfi="false"
+cfi_debug="false"
+seccomp="auto"
+glusterfs="auto"
+gtk="auto"
tls_priority="NORMAL"
-gnutls=""
-nettle=""
+gnutls="$default_feature"
+nettle="$default_feature"
nettle_xts="no"
-gcrypt=""
+gcrypt="$default_feature"
gcrypt_hmac="no"
gcrypt_xts="no"
qemu_private_xts="yes"
-auth_pam=""
-vte=""
-virglrenderer=""
-tpm=""
-libssh=""
-live_block_migration="yes"
-numa=""
+auth_pam="$default_feature"
+vte="$default_feature"
+virglrenderer="$default_feature"
+tpm="$default_feature"
+libssh="$default_feature"
+live_block_migration=${default_feature:-yes}
+numa="$default_feature"
tcmalloc="no"
jemalloc="no"
-replication="yes"
-bochs="yes"
-cloop="yes"
-dmg="yes"
-qcow1="yes"
-vdi="yes"
-vvfat="yes"
-qed="yes"
-parallels="yes"
+replication=${default_feature:-yes}
+bochs=${default_feature:-yes}
+cloop=${default_feature:-yes}
+dmg=${default_feature:-yes}
+qcow1=${default_feature:-yes}
+vdi=${default_feature:-yes}
+vvfat=${default_feature:-yes}
+qed=${default_feature:-yes}
+parallels=${default_feature:-yes}
sheepdog="no"
-libxml2=""
+libxml2="$default_feature"
debug_mutex="no"
-libpmem=""
-default_devices="yes"
+libpmem="$default_feature"
+default_devices="true"
plugins="no"
fuzzing="no"
rng_none="no"
-secret_keyring=""
-libdaxctl=""
+secret_keyring="$default_feature"
+libdaxctl="$default_feature"
meson=""
ninja=""
skip_meson=no
-gettext=""
+gettext="auto"
fuse="auto"
fuse_lseek="auto"
-bogus_os="no"
malloc_trim="auto"
-# parse CC options first
+# parse CC options second
for opt do
optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
case "$opt" in
--cross-prefix=*) cross_prefix="$optarg"
+ cross_compile="yes"
;;
--cc=*) CC="$optarg"
;;
# might be going to just print the --help text, or it might
# be the result of a missing compiler.
targetos='bogus'
- bogus_os='yes'
fi
# Some host OSes need non-standard checks for which CPU to use.
# the correct CPU with the --cpu option.
case $targetos in
Darwin)
- # on Leopard most of the system is 32-bit, so we have to ask the kernel if we can
- # run 64-bit userspace code.
- # If the user didn't specify a CPU explicitly and the kernel says this is
- # 64 bit hw, then assume x86_64. Otherwise fall through to the usual detection code.
- if test -z "$cpu" && test "$(sysctl -n hw.optional.x86_64)" = "1"; then
- cpu="x86_64"
- fi
HOST_DSOSUF=".dylib"
;;
SunOS)
Darwin)
bsd="yes"
darwin="yes"
- if [ "$cpu" = "x86_64" ] ; then
- QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
- QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS"
- fi
- cocoa="enabled"
- audio_drv_list="coreaudio try-sdl"
+ audio_drv_list="try-coreaudio try-sdl"
audio_possible_drivers="coreaudio sdl"
- QEMU_LDFLAGS="-framework CoreFoundation -framework IOKit $QEMU_LDFLAGS"
# Disable attempts to use ObjectiveC features in os/object.h since they
# won't work when we're compiling with gcc as a C compiler.
QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
audio_possible_drivers="oss alsa sdl pa"
linux="yes"
linux_user="yes"
- vhost_user="yes"
+ vhost_user=${default_feature:-yes}
;;
esac
;;
--with-trace-file=*) trace_file="$optarg"
;;
- --with-default-devices) default_devices="yes"
+ --with-default-devices) default_devices="true"
+ ;;
+ --without-default-devices) default_devices="false"
;;
- --without-default-devices) default_devices="no"
+ --without-default-features) # processed above
;;
--enable-gprof) gprof="yes"
;;
;;
--enable-qom-cast-debug) qom_cast_debug="yes"
;;
- --disable-virtfs) virtfs="no"
+ --disable-virtfs) virtfs="disabled"
;;
- --enable-virtfs) virtfs="yes"
+ --enable-virtfs) virtfs="enabled"
;;
--disable-libudev) libudev="disabled"
;;
;;
--enable-vnc) vnc="enabled"
;;
- --disable-gettext) gettext="false"
+ --disable-gettext) gettext="disabled"
;;
- --enable-gettext) gettext="true"
+ --enable-gettext) gettext="enabled"
;;
--oss-lib=*) oss_lib="$optarg"
;;
;;
--disable-slirp) slirp="disabled"
;;
+ --enable-slirp) slirp="enabled"
+ ;;
--enable-slirp=git) slirp="internal"
;;
--enable-slirp=system) slirp="system"
;;
--enable-xen-pci-passthrough) xen_pci_passthrough="enabled"
;;
- --disable-brlapi) brlapi="no"
+ --disable-brlapi) brlapi="disabled"
;;
- --enable-brlapi) brlapi="yes"
+ --enable-brlapi) brlapi="enabled"
;;
--disable-kvm) kvm="disabled"
;;
;;
--enable-whpx) whpx="enabled"
;;
- --disable-tcg-interpreter) tcg_interpreter="no"
+ --disable-tcg-interpreter) tcg_interpreter="false"
;;
- --enable-tcg-interpreter) tcg_interpreter="yes"
+ --enable-tcg-interpreter) tcg_interpreter="true"
;;
- --disable-cap-ng) cap_ng="no"
+ --disable-cap-ng) cap_ng="disabled"
;;
- --enable-cap-ng) cap_ng="yes"
+ --enable-cap-ng) cap_ng="enabled"
;;
--disable-tcg) tcg="disabled"
;;
;;
--enable-spice) spice="yes"
;;
- --disable-libiscsi) libiscsi="no"
+ --disable-libiscsi) libiscsi="disabled"
;;
- --enable-libiscsi) libiscsi="yes"
+ --enable-libiscsi) libiscsi="enabled"
;;
- --disable-libnfs) libnfs="no"
+ --disable-libnfs) libnfs="disabled"
;;
- --enable-libnfs) libnfs="yes"
+ --enable-libnfs) libnfs="enabled"
;;
--enable-profiler) profiler="yes"
;;
--disable-cocoa) cocoa="disabled"
;;
- --enable-cocoa)
- cocoa="enabled" ;
- audio_drv_list="coreaudio $(echo $audio_drv_list | sed s,coreaudio,,g)"
+ --enable-cocoa) cocoa="enabled"
;;
--disable-system) softmmu="no"
;;
;;
--disable-werror) werror="no"
;;
+ --enable-lto) lto="true"
+ ;;
+ --disable-lto) lto="false"
+ ;;
--enable-stack-protector) stack_protector="yes"
;;
--disable-stack-protector) stack_protector="no"
;;
--disable-safe-stack) safe_stack="no"
;;
+ --enable-cfi)
+ cfi="true";
+ lto="true";
+ ;;
+ --disable-cfi) cfi="false"
+ ;;
+ --enable-cfi-debug) cfi_debug="true"
+ ;;
+ --disable-cfi-debug) cfi_debug="false"
+ ;;
--disable-curses) curses="disabled"
;;
--enable-curses) curses="enabled"
;;
--enable-iconv) iconv="enabled"
;;
- --disable-curl) curl="no"
+ --disable-curl) curl="disabled"
;;
- --enable-curl) curl="yes"
+ --enable-curl) curl="enabled"
;;
--disable-fdt) fdt="disabled"
;;
;;
--enable-linux-io-uring) linux_io_uring="yes"
;;
- --disable-attr) attr="no"
+ --disable-attr) attr="disabled"
;;
- --enable-attr) attr="yes"
+ --enable-attr) attr="enabled"
;;
--disable-membarrier) membarrier="no"
;;
;;
--enable-opengl) opengl="yes"
;;
- --disable-rbd) rbd="no"
+ --disable-rbd) rbd="disabled"
;;
- --enable-rbd) rbd="yes"
+ --enable-rbd) rbd="enabled"
;;
--disable-xfsctl) xfs="no"
;;
;;
--disable-zlib-test)
;;
- --disable-lzo) lzo="no"
+ --disable-lzo) lzo="disabled"
;;
- --enable-lzo) lzo="yes"
+ --enable-lzo) lzo="enabled"
;;
- --disable-snappy) snappy="no"
+ --disable-snappy) snappy="disabled"
;;
- --enable-snappy) snappy="yes"
+ --enable-snappy) snappy="enabled"
;;
- --disable-bzip2) bzip2="no"
+ --disable-bzip2) bzip2="disabled"
;;
- --enable-bzip2) bzip2="yes"
+ --enable-bzip2) bzip2="enabled"
;;
- --enable-lzfse) lzfse="yes"
+ --enable-lzfse) lzfse="enabled"
;;
- --disable-lzfse) lzfse="no"
+ --disable-lzfse) lzfse="disabled"
;;
- --disable-zstd) zstd="no"
+ --disable-zstd) zstd="disabled"
;;
- --enable-zstd) zstd="yes"
+ --enable-zstd) zstd="enabled"
;;
--enable-guest-agent) guest_agent="yes"
;;
--disable-guest-agent) guest_agent="no"
;;
- --enable-guest-agent-msi) guest_agent_msi="yes"
+ --enable-guest-agent-msi) guest_agent_msi="enabled"
;;
- --disable-guest-agent-msi) guest_agent_msi="no"
+ --disable-guest-agent-msi) guest_agent_msi="disabled"
;;
--with-vss-sdk) vss_win32_sdk=""
;;
;;
--disable-tools) want_tools="no"
;;
- --enable-seccomp) seccomp="yes"
+ --enable-seccomp) seccomp="enabled"
;;
- --disable-seccomp) seccomp="no"
+ --disable-seccomp) seccomp="disabled"
;;
- --disable-glusterfs) glusterfs="no"
+ --disable-glusterfs) glusterfs="disabled"
;;
--disable-avx2) avx2_opt="no"
;;
--enable-avx512f) avx512f_opt="yes"
;;
- --enable-glusterfs) glusterfs="yes"
+ --enable-glusterfs) glusterfs="enabled"
;;
--disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane)
echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2
--enable-uuid|--disable-uuid)
echo "$0: $opt is obsolete, UUID support is always built" >&2
;;
- --disable-gtk) gtk="no"
+ --disable-gtk) gtk="disabled"
;;
- --enable-gtk) gtk="yes"
+ --enable-gtk) gtk="enabled"
;;
--tls-priority=*) tls_priority="$optarg"
;;
;;
--with-git=*) git="$optarg"
;;
- --enable-git-update) git_update=yes
+ --enable-git-update)
+ git_submodules_action="update"
+ echo "--enable-git-update deprecated, use --with-git-submodules=update"
+ ;;
+ --disable-git-update)
+ git_submodules_action="validate"
+ echo "--disable-git-update deprecated, use --with-git-submodules=validate"
;;
- --disable-git-update) git_update=no
+ --with-git-submodules=*)
+ git_submodules_action="$optarg"
;;
--enable-debug-mutex) debug_mutex=yes
;;
esac
done
+case $git_submodules_action in
+ update|validate)
+ if test ! -e "$source_path/.git"; then
+ echo "ERROR: cannot $git_submodules_action git submodules without .git"
+ exit 1
+ fi
+ ;;
+ ignore)
+ ;;
+ *)
+ echo "ERROR: invalid --with-git-submodules= value '$git_submodules_action'"
+ exit 1
+ ;;
+esac
+
libdir="${libdir:-$prefix/lib}"
libexecdir="${libexecdir:-$prefix/libexec}"
includedir="${includedir:-$prefix/include}"
if test "$mingw32" = "yes" ; then
- mandir="$prefix"
- datadir="$prefix"
- docdir="$prefix"
- bindir="$prefix"
- sysconfdir="$prefix"
- local_statedir="$prefix"
+ bindir="${bindir:-$prefix}"
else
- mandir="${mandir:-$prefix/share/man}"
- datadir="${datadir:-$prefix/share}"
- docdir="${docdir:-$prefix/share/doc}"
bindir="${bindir:-$prefix/bin}"
- sysconfdir="${sysconfdir:-$prefix/etc}"
- local_statedir="${local_statedir:-$prefix/var}"
fi
+mandir="${mandir:-$prefix/share/man}"
+datadir="${datadir:-$prefix/share}"
+docdir="${docdir:-$prefix/share/doc}"
+sysconfdir="${sysconfdir:-$prefix/etc}"
+local_statedir="${local_statedir:-$prefix/var}"
firmwarepath="${firmwarepath:-$datadir/qemu-firmware}"
localedir="${localedir:-$datadir/locale}"
--target-list-exclude=LIST exclude a set of targets from the default target-list
Advanced options (experts only):
- --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]
+ --cross-prefix=PREFIX use PREFIX for compile tools, PREFIX can be blank [$cross_prefix]
--cc=CC use C compiler CC [$cc]
--iasl=IASL use ACPI compiler IASL [$iasl]
--host-cc=CC use C compiler CC [$host_cc] for code run at
--ninja=NINJA use specified ninja [$ninja]
--smbd=SMBD use specified smbd [$smbd]
--with-git=GIT use specified git [$git]
+ --with-git-submodules=update update git submodules (default if .git dir exists)
+ --with-git-submodules=validate fail if git submodules are not up to date
+ --with-git-submodules=ignore do not update or check git submodules (default if no .git dir)
--static enable static build [$static]
--mandir=PATH install man pages in PATH
--datadir=PATH install firmware in PATH/$qemu_suffix
--efi-aarch64=PATH PATH of efi file to use for aarch64 VMs.
--with-suffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir/docdir [$qemu_suffix]
--with-pkgversion=VERS use specified string as sub-version of the package
+ --without-default-features default all --enable-* options to "disabled"
+ --without-default-devices do not include any device that is not needed to
+ start the emulator (only use if you are including
+ desired devices in default-configs/devices/)
--enable-debug enable common debug build options
--enable-sanitizers enable default sanitizers
--enable-tsan enable thread sanitizer
--with-trace-file=NAME Full PATH,NAME of file to store traces
Default:trace-<pid>
--disable-slirp disable SLIRP userspace network connectivity
- --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)
+ --enable-tcg-interpreter enable TCI (TCG with bytecode interpreter, experimental and slow)
--enable-malloc-trim enable libc malloc_trim() for memory optimization
--oss-lib path to OSS library
--cpu=CPU Build for host CPU [$cpu]
--gdb=GDB-path gdb to use for gdbstub tests [$gdb_bin]
Optional features, enabled with --enable-FEATURE and
-disabled with --disable-FEATURE, default is enabled if available:
+disabled with --disable-FEATURE, default is enabled if available
+(unless built with --without-default-features):
system all system emulation targets
user supported user emulation targets
module-upgrades try to load modules from alternate paths for upgrades
debug-tcg TCG debugging (default is disabled)
debug-info debugging information
+ lto Enable Link-Time Optimization.
sparse sparse checker
safe-stack SafeStack Stack Smash Protection. Depends on
clang/llvm >= 3.7 and requires coroutine backend ucontext.
-
+ cfi Enable Control-Flow Integrity for indirect function calls.
+ In case of a cfi violation, QEMU is terminated with SIGILL
+ Depends on lto and is incompatible with modules
+ Automatically enables Link-Time Optimization (lto)
+ cfi-debug In case of a cfi violation, a message containing the line that
+ triggered the error is written to stderr. After the error,
+ QEMU is still terminated with SIGILL
gnutls GNUTLS cryptography support
nettle nettle cryptography support
gcrypt libgcrypt cryptography support
if test -z "$meson"; then
if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.55.3; then
meson=meson
- elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ elif test $git_submodules_action != 'ignore' ; then
meson=git
elif test -e "${source_path}/meson/meson.py" ; then
meson=internal
# Consult white-list to determine whether to enable werror
# by default. Only enable by default for git builds
if test -z "$werror" ; then
- if test -e "$source_path/.git" && \
+ if test "$git_submodules_action" != "ignore" && \
{ test "$linux" = "yes" || test "$mingw32" = "yes"; }; then
werror="yes"
else
fi
fi
-if test "$bogus_os" = "yes"; then
+if test "$targetos" = "bogus"; then
# Now that we know that we're not printing the help and that
# the compiler works (so the results of the check_defines we used
# to identify the OS are reliable), if we didn't recognize the
add_to warn_flags -Wnested-externs
add_to warn_flags -Wendif-labels
add_to warn_flags -Wexpansion-to-defined
+add_to warn_flags -Wimplicit-fallthrough=2
nowarn_flags=
add_to nowarn_flags -Wno-initializer-overrides
# Check we support --no-pie first; we will need this for building ROMs.
if compile_prog "-Werror -fno-pie" "-no-pie"; then
CFLAGS_NOPIE="-fno-pie"
- LDFLAGS_NOPIE="-no-pie"
fi
if test "$static" = "yes"; then
fi
elif test "$pie" = "no"; then
CONFIGURE_CFLAGS="$CFLAGS_NOPIE $CONFIGURE_CFLAGS"
- CONFIGURE_LDFLAGS="$LDFLAGS_NOPIE $CONFIGURE_LDFLAGS"
elif compile_prog "-Werror -fPIE -DPIE" "-pie"; then
CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
CONFIGURE_LDFLAGS="-pie $CONFIGURE_LDFLAGS"
fi
##########################################
-# cocoa implies not SDL or GTK
-# (the cocoa UI code currently assumes it is always the active UI
-# and doesn't interact well with other UI frontend code)
-if test "$cocoa" = "enabled"; then
- if test "$sdl" = "enabled"; then
- error_exit "Cocoa and SDL UIs cannot both be enabled at once"
- fi
- if test "$gtk" = "yes"; then
- error_exit "Cocoa and GTK UIs cannot both be enabled at once"
- fi
- gtk=no
- sdl=disabled
+# Disable features only meaningful for system-mode emulation
+if test "$softmmu" = "no"; then
+ audio_drv_list=""
fi
+##########################################
# Some versions of Mac OS X incorrectly define SIZE_MAX
cat > $TMPC << EOF
#include <stdint.h>
fi
fi
-##########################################
-# lzo check
-
-if test "$lzo" != "no" ; then
- cat > $TMPC << EOF
-#include <lzo/lzo1x.h>
-int main(void) { lzo_version(); return 0; }
-EOF
- if compile_prog "" "-llzo2" ; then
- lzo_libs="-llzo2"
- lzo="yes"
- else
- if test "$lzo" = "yes"; then
- feature_not_found "liblzo2" "Install liblzo2 devel"
- fi
- lzo="no"
- fi
-fi
-
-##########################################
-# snappy check
-
-if test "$snappy" != "no" ; then
- cat > $TMPC << EOF
-#include <snappy-c.h>
-int main(void) { snappy_max_compressed_length(4096); return 0; }
-EOF
- if compile_prog "" "-lsnappy" ; then
- snappy_libs='-lsnappy'
- snappy="yes"
- else
- if test "$snappy" = "yes"; then
- feature_not_found "libsnappy" "Install libsnappy devel"
- fi
- snappy="no"
- fi
-fi
-
-##########################################
-# bzip2 check
-
-if test "$bzip2" != "no" ; then
- cat > $TMPC << EOF
-#include <bzlib.h>
-int main(void) { BZ2_bzlibVersion(); return 0; }
-EOF
- if compile_prog "" "-lbz2" ; then
- bzip2="yes"
- else
- if test "$bzip2" = "yes"; then
- feature_not_found "libbzip2" "Install libbzip2 devel"
- fi
- bzip2="no"
- fi
-fi
-
-##########################################
-# lzfse check
-
-if test "$lzfse" != "no" ; then
- cat > $TMPC << EOF
-#include <lzfse.h>
-int main(void) { lzfse_decode_scratch_size(); return 0; }
-EOF
- if compile_prog "" "-llzfse" ; then
- lzfse="yes"
- else
- if test "$lzfse" = "yes"; then
- feature_not_found "lzfse" "Install lzfse devel"
- fi
- lzfse="no"
- fi
-fi
-
-##########################################
-# zstd check
-
-if test "$zstd" != "no" ; then
- libzstd_minver="1.4.0"
- if $pkg_config --atleast-version=$libzstd_minver libzstd ; then
- zstd_cflags="$($pkg_config --cflags libzstd)"
- zstd_libs="$($pkg_config --libs libzstd)"
- zstd="yes"
- else
- if test "$zstd" = "yes" ; then
- feature_not_found "libzstd" "Install libzstd devel"
- fi
- zstd="no"
- fi
-fi
-
-##########################################
-# libseccomp check
-
-if test "$seccomp" != "no" ; 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
- feature_not_found "libseccomp" \
- "Install libseccomp devel >= $libseccomp_minver"
- fi
- seccomp="no"
- fi
-fi
-
##########################################
# xen probe
fi
fi
-if test "$xen_pci_passthrough" != "disabled"; then
- if test "$xen" = "enabled" && test "$linux" = "yes"; then
- xen_pci_passthrough=enabled
- else
- if test "$xen_pci_passthrough" = "enabled"; then
- error_exit "User requested feature Xen PCI Passthrough" \
- " but this feature requires /sys from Linux"
- fi
- xen_pci_passthrough=disabled
- fi
-fi
-
-##########################################
-# gettext probe
-if test "$gettext" != "false" ; then
- if has xgettext; then
- gettext=true
- else
- if test "$gettext" = "true" ; then
- feature_not_found "gettext" "Install xgettext binary"
- fi
- gettext=false
- fi
-fi
-
-##########################################
-# X11 probe
-if $pkg_config --exists "x11"; then
- have_x11=yes
- x11_cflags=$($pkg_config --cflags x11)
- x11_libs=$($pkg_config --libs x11)
-fi
-
-##########################################
-# GTK probe
-
-if test "$gtk" != "no"; then
- gtkpackage="gtk+-3.0"
- gtkx11package="gtk+-x11-3.0"
- gtkversion="3.22.0"
- if $pkg_config --exists "$gtkpackage >= $gtkversion"; then
- gtk_cflags=$($pkg_config --cflags $gtkpackage)
- gtk_libs=$($pkg_config --libs $gtkpackage)
- gtk_version=$($pkg_config --modversion $gtkpackage)
- if $pkg_config --exists "$gtkx11package >= $gtkversion"; then
- need_x11=yes
- gtk_cflags="$gtk_cflags $x11_cflags"
- gtk_libs="$gtk_libs $x11_libs"
- fi
- gtk="yes"
- elif test "$gtk" = "yes"; then
- feature_not_found "gtk" "Install gtk3-devel"
- else
- gtk="no"
- fi
-fi
-
-
##########################################
# GNUTLS probe
fi
##########################################
-# libcap-ng library probe
-if test "$cap_ng" != "no" ; then
- cap_libs="-lcap-ng"
+# detect CoreAudio
+if test "$coreaudio" != "no" ; then
+ coreaudio_libs="-framework CoreAudio"
cat > $TMPC << EOF
-#include <cap-ng.h>
+#include <CoreAudio/CoreAudio.h>
int main(void)
{
- capng_capability_to_name(CAPNG_EFFECTIVE);
- return 0;
+ return (int)AudioGetCurrentHostTime();
}
EOF
- if compile_prog "" "$cap_libs" ; then
- cap_ng=yes
+ if compile_prog "" "$coreaudio_libs" ; then
+ coreaudio=yes
else
- if test "$cap_ng" = "yes" ; then
- feature_not_found "cap_ng" "Install libcap-ng devel"
- fi
- cap_ng=no
+ coreaudio=no
fi
fi
fi
;;
- coreaudio)
+ coreaudio | try-coreaudio)
+ if test "$coreaudio" = "no"; then
+ if test "$drv" = "try-coreaudio"; then
+ audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-coreaudio//')
+ else
+ error_exit "$drv check failed" \
+ "Make sure to have the $drv is available."
+ fi
+ else
coreaudio_libs="-framework CoreAudio"
+ if test "$drv" = "try-coreaudio"; then
+ audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-coreaudio/coreaudio/')
+ fi
+ fi
;;
dsound)
esac
done
-##########################################
-# BrlAPI probe
-
-if test "$brlapi" != "no" ; then
- brlapi_libs="-lbrlapi"
- cat > $TMPC << EOF
-#include <brlapi.h>
-#include <stddef.h>
-int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
-EOF
- if compile_prog "" "$brlapi_libs" ; then
- brlapi=yes
- else
- if test "$brlapi" = "yes" ; then
- feature_not_found "brlapi" "Install brlapi devel"
- fi
- brlapi=no
- fi
-fi
-
-##########################################
-# curl probe
-if test "$curl" != "no" ; then
- if $pkg_config libcurl --exists; then
- curlconfig="$pkg_config libcurl"
- else
- curlconfig=curl-config
- fi
- cat > $TMPC << EOF
-#include <curl/curl.h>
-int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
-EOF
- curl_cflags=$($curlconfig --cflags 2>/dev/null)
- curl_libs=$($curlconfig --libs 2>/dev/null)
- if compile_prog "$curl_cflags" "$curl_libs" ; then
- curl=yes
- else
- if test "$curl" = "yes" ; then
- feature_not_found "curl" "Install libcurl devel"
- fi
- curl=no
- fi
-fi # test "$curl"
-
##########################################
# glib support probe
for pthread_lib in $PTHREADLIBS_LIST; do
if compile_prog "" "$pthread_lib" ; then
pthread=yes
- found=no
- for lib_entry in $LIBS; do
- if test "$lib_entry" = "$pthread_lib"; then
- found=yes
- break
- fi
- done
- if test "$found" = "no"; then
- LIBS="$pthread_lib $LIBS"
- fi
break
fi
done
pthread_setname_np_wo_tid=yes
fi
-##########################################
-# rbd probe
-if test "$rbd" != "no" ; then
- cat > $TMPC <<EOF
-#include <stdio.h>
-#include <rbd/librbd.h>
-int main(void) {
- rados_t cluster;
- rados_create(&cluster, NULL);
- return 0;
-}
-EOF
- rbd_libs="-lrbd -lrados"
- if compile_prog "" "$rbd_libs" ; then
- rbd=yes
- else
- if test "$rbd" = "yes" ; then
- feature_not_found "rados block device" "Install librbd/ceph devel"
- fi
- rbd=no
- fi
-fi
-
##########################################
# libssh probe
if test "$libssh" != "no" ; then
fi
fi
-##########################################
-# attr probe
-
-libattr_libs=
-if test "$attr" != "no" ; then
- cat > $TMPC <<EOF
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef CONFIG_LIBATTR
-#include <attr/xattr.h>
-#else
-#include <sys/xattr.h>
-#endif
-int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
-EOF
- if compile_prog "" "" ; then
- attr=yes
- # Older distros have <attr/xattr.h>, and need -lattr:
- elif compile_prog "-DCONFIG_LIBATTR" "-lattr" ; then
- attr=yes
- libattr_libs="-lattr"
- libattr=yes
- else
- if test "$attr" = "yes" ; then
- feature_not_found "ATTR" "Install libc6 or libattr devel"
- fi
- attr=no
- fi
-fi
-
##########################################
# iovec probe
cat > $TMPC <<EOF
iovec=yes
fi
-##########################################
-# preadv probe
-cat > $TMPC <<EOF
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <unistd.h>
-int main(void) { return preadv(0, 0, 0, 0); }
-EOF
-preadv=no
-if compile_prog "" "" ; then
- preadv=yes
-fi
-
##########################################
# fdt probe
case "$fdt" in
auto | enabled | internal)
# Simpler to always update submodule, even if not needed.
- if test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ if test "$git_submodules_action" != "ignore"; then
git_submodules="${git_submodules} dtc"
fi
;;
opengl_cflags="$($pkg_config --cflags $opengl_pkgs)"
opengl_libs="$($pkg_config --libs $opengl_pkgs)"
opengl=yes
- if test "$gtk" = "yes" && $pkg_config --exists "$gtkpackage >= 3.16"; then
- gtk_gl="yes"
- fi
else
if test "$opengl" = "yes" ; then
feature_not_found "opengl" "Please install opengl (mesa) devel pkgs: $opengl_pkgs"
fi
fi
-if test "$opengl" = "yes" && test "$have_x11" = "yes"; then
- for target in $target_list; do
- case $target in
- lm32-softmmu) # milkymist-tmu2 requires X11 and OpenGL
- need_x11=yes
- ;;
- esac
- done
-fi
-
##########################################
# libxml2 probe
if test "$libxml2" != "no" ; then
fi
fi
-##########################################
-# glusterfs probe
-if test "$glusterfs" != "no" ; then
- if $pkg_config --atleast-version=3 glusterfs-api; then
- glusterfs="yes"
- glusterfs_cflags=$($pkg_config --cflags glusterfs-api)
- glusterfs_libs=$($pkg_config --libs glusterfs-api)
- if $pkg_config --atleast-version=4 glusterfs-api; then
- glusterfs_xlator_opt="yes"
- fi
- if $pkg_config --atleast-version=5 glusterfs-api; then
- glusterfs_discard="yes"
- fi
- if $pkg_config --atleast-version=6 glusterfs-api; then
- glusterfs_fallocate="yes"
- glusterfs_zerofill="yes"
- fi
- cat > $TMPC << EOF
-#include <glusterfs/api/glfs.h>
-
-int
-main(void)
-{
- /* new glfs_ftruncate() passes two additional args */
- return glfs_ftruncate(NULL, 0, NULL, NULL);
-}
-EOF
- if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
- glusterfs_ftruncate_has_stat="yes"
- fi
- cat > $TMPC << EOF
-#include <glusterfs/api/glfs.h>
-
-/* new glfs_io_cbk() passes two additional glfs_stat structs */
-static void
-glusterfs_iocb(glfs_fd_t *fd, ssize_t ret, struct glfs_stat *prestat, struct glfs_stat *poststat, void *data)
-{}
-
-int
-main(void)
-{
- glfs_io_cbk iocb = &glusterfs_iocb;
- iocb(NULL, 0 , NULL, NULL, NULL);
- return 0;
-}
-EOF
- if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
- glusterfs_iocb_has_stat="yes"
- fi
- else
- if test "$glusterfs" = "yes" ; then
- feature_not_found "GlusterFS backend support" \
- "Install glusterfs-api devel >= 3"
- fi
- glusterfs="no"
- fi
-fi
-
# Check for inotify functions when we are building linux-user
# emulator. This is done because older glibc versions don't
# have syscall stubs for these implemented. In that case we
clock_adjtime=no
cat > $TMPC <<EOF
#include <time.h>
+#include <sys/timex.h>
int main(void)
{
bswap_h=yes
fi
-##########################################
-# Do we have libiscsi >= 1.9.0
-if test "$libiscsi" != "no" ; then
- if $pkg_config --atleast-version=1.9.0 libiscsi; then
- libiscsi="yes"
- libiscsi_cflags=$($pkg_config --cflags libiscsi)
- libiscsi_libs=$($pkg_config --libs libiscsi)
- else
- if test "$libiscsi" = "yes" ; then
- feature_not_found "libiscsi" "Install libiscsi >= 1.9.0"
- fi
- libiscsi="no"
- fi
-fi
-
-##########################################
-# Do we need librt
-# uClibc provides 2 versions of clock_gettime(), one with realtime
-# support and one without. This means that the clock_gettime() don't
-# need -lrt. We still need it for timer_create() so we check for this
-# function in addition.
-cat > $TMPC <<EOF
-#include <signal.h>
-#include <time.h>
-int main(void) {
- timer_create(CLOCK_REALTIME, NULL, NULL);
- return clock_gettime(CLOCK_REALTIME, NULL);
-}
-EOF
-
-if compile_prog "" "" ; then
- :
-# we need pthread for static linking. use previous pthread test result
-elif compile_prog "" "$pthread_lib -lrt" ; then
- LIBS="$LIBS -lrt"
-fi
-
# Check whether we have openpty() in either libc or libutil
cat > $TMPC << EOF
extern int openpty(int *am, int *as, char *name, void *termp, void *winp);
case "$capstone" in
auto | enabled | internal)
# Simpler to always update submodule, even if not needed.
- if test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ if test "$git_submodules_action" != "ignore"; then
git_submodules="${git_submodules} capstone"
fi
;;
case "$slirp" in
auto | enabled | internal)
# Simpler to always update submodule, even if not needed.
- if test -e "${source_path}/.git" && test $git_update = 'yes' ; then
+ if test "$git_submodules_action" != "ignore"; then
git_submodules="${git_submodules} slirp"
fi
;;
QEMU_LDFLAGS="-fsanitize=undefined $QEMU_LDFLAGS"
fi
-##########################################
-# Do we have libnfs
-if test "$libnfs" != "no" ; then
- if $pkg_config --atleast-version=1.9.3 libnfs; then
- libnfs="yes"
- libnfs_libs=$($pkg_config --libs libnfs)
- else
- if test "$libnfs" = "yes" ; then
- feature_not_found "libnfs" "Install libnfs devel >= 1.9.3"
- fi
- libnfs="no"
- fi
-fi
-
##########################################
# Exclude --warn-common with TSan to suppress warnings from the TSan libraries.
ivshmem=yes
fi
-if test "$softmmu" = yes ; then
- if test "$linux" = yes; then
- if test "$virtfs" != no && test "$cap_ng" = yes && test "$attr" = yes ; then
- virtfs=yes
- else
- if test "$virtfs" = yes; then
- error_exit "VirtFS requires libcap-ng devel and libattr devel"
- fi
- virtfs=no
- fi
- else
- if test "$virtfs" = yes; then
- error_exit "VirtFS is supported only on Linux"
- fi
- virtfs=no
- fi
-fi
-
# Probe for guest agent support/options
if [ "$guest_agent" != "no" ]; then
fi
fi
-# Guest agent Window MSI package
+# Guest agent Windows MSI package
-if test "$guest_agent" != yes; then
- if test "$guest_agent_msi" = yes; then
- error_exit "MSI guest agent package requires guest agent enabled"
- fi
- guest_agent_msi=no
-elif test "$mingw32" != "yes"; then
- if test "$guest_agent_msi" = "yes"; then
- error_exit "MSI guest agent package is available only for MinGW Windows cross-compilation"
- fi
- guest_agent_msi=no
-elif ! has wixl; then
- if test "$guest_agent_msi" = "yes"; then
- error_exit "MSI guest agent package requires wixl tool installed ( usually from msitools package )"
- fi
- guest_agent_msi=no
-else
- # we support qemu-ga, mingw32, and wixl: default to MSI enabled if it wasn't
- # disabled explicitly
- if test "$guest_agent_msi" != "no"; then
- guest_agent_msi=yes
- fi
+if test "$QEMU_GA_MANUFACTURER" = ""; then
+ QEMU_GA_MANUFACTURER=QEMU
fi
-
-if test "$guest_agent_msi" = "yes"; then
- if test "$guest_agent_with_vss" = "yes"; then
- QEMU_GA_MSI_WITH_VSS="-D InstallVss"
- fi
-
- if test "$QEMU_GA_MANUFACTURER" = ""; then
- QEMU_GA_MANUFACTURER=QEMU
- fi
-
- if test "$QEMU_GA_DISTRO" = ""; then
- QEMU_GA_DISTRO=Linux
- fi
-
- if test "$QEMU_GA_VERSION" = ""; then
- QEMU_GA_VERSION=$(cat $source_path/VERSION)
- fi
-
- QEMU_GA_MSI_MINGW_DLL_PATH="-D Mingw_dlls=$($pkg_config --variable=prefix glib-2.0)/bin"
-
- case "$cpu" in
- x86_64)
- QEMU_GA_MSI_ARCH="-a x64 -D Arch=64"
- ;;
- i386)
- QEMU_GA_MSI_ARCH="-D Arch=32"
- ;;
- *)
- error_exit "CPU $cpu not supported for building installation package"
- ;;
- esac
+if test "$QEMU_GA_DISTRO" = ""; then
+ QEMU_GA_DISTRO=Linux
+fi
+if test "$QEMU_GA_VERSION" = ""; then
+ QEMU_GA_VERSION=$(cat $source_path/VERSION)
fi
+QEMU_GA_MSI_MINGW_DLL_PATH="$($pkg_config --variable=prefix glib-2.0)/bin"
+
# Mac OS X ships with a broken assembler
roms=
if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \
roms="$roms s390-ccw"
# SLOF is required for building the s390-ccw firmware on s390x,
# since it is using the libnet code from SLOF for network booting.
- if test -e "${source_path}/.git" ; then
+ if test "$git_submodules_action" != "ignore"; then
git_submodules="${git_submodules} roms/SLOF"
fi
fi
cxx=
fi
-if test $git_update = 'yes' ; then
- (cd "${source_path}" && GIT="$git" "./scripts/git-submodule.sh" update "$git_submodules")
+if !(GIT="$git" "$source_path/scripts/git-submodule.sh" "$git_submodules_action" "$git_submodules"); then
+ exit 1
fi
config_host_mak="config-host.mak"
echo all: >> $config_host_mak
echo "GIT=$git" >> $config_host_mak
echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
-echo "GIT_UPDATE=$git_update" >> $config_host_mak
+echo "GIT_SUBMODULES_ACTION=$git_submodules_action" >> $config_host_mak
echo "ARCH=$ARCH" >> $config_host_mak
-if test "$default_devices" = "yes" ; then
- echo "CONFIG_MINIKCONF_MODE=--defconfig" >> $config_host_mak
-else
- echo "CONFIG_MINIKCONF_MODE=--allnoconfig" >> $config_host_mak
-fi
if test "$debug_tcg" = "yes" ; then
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
fi
fi
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=y" >> $config_host_mak
- rc_version=$(cat $source_path/VERSION)
- version_major=${rc_version%%.*}
- rc_version=${rc_version#*.}
- version_minor=${rc_version%%.*}
- rc_version=${rc_version#*.}
- version_subminor=${rc_version%%.*}
- version_micro=0
- echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
- echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
if test "$guest_agent_with_vss" = "yes" ; then
echo "CONFIG_QGA_VSS=y" >> $config_host_mak
echo "QGA_VSS_PROVIDER=$qga_vss_provider" >> $config_host_mak
if test "$guest_agent_ntddscsi" = "yes" ; then
echo "CONFIG_QGA_NTDDSCSI=y" >> $config_host_mak
fi
- if test "$guest_agent_msi" = "yes"; then
- echo "CONFIG_QGA_MSI=y" >> $config_host_mak
- echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak
- echo "QEMU_GA_MSI_WITH_VSS=${QEMU_GA_MSI_WITH_VSS}" >> $config_host_mak
- echo "QEMU_GA_MSI_ARCH=${QEMU_GA_MSI_ARCH}" >> $config_host_mak
- echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak
- echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak
- echo "QEMU_GA_VERSION=${QEMU_GA_VERSION}" >> $config_host_mak
- fi
+ echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak
+ echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak
+ echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak
+ echo "QEMU_GA_VERSION=${QEMU_GA_VERSION}" >> $config_host_mak
else
echo "CONFIG_POSIX=y" >> $config_host_mak
fi
if test "$gprof" = "yes" ; then
echo "CONFIG_GPROF=y" >> $config_host_mak
fi
-if test "$cap_ng" = "yes" ; then
- echo "CONFIG_LIBCAP_NG=y" >> $config_host_mak
- echo "LIBCAP_NG_LIBS=$cap_libs" >> $config_host_mak
-fi
echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
if test "$module_upgrades" = "yes"; then
echo "CONFIG_MODULE_UPGRADES=y" >> $config_host_mak
fi
-if test "$have_x11" = "yes" && test "$need_x11" = "yes"; then
- echo "CONFIG_X11=y" >> $config_host_mak
- echo "X11_CFLAGS=$x11_cflags" >> $config_host_mak
- echo "X11_LIBS=$x11_libs" >> $config_host_mak
-fi
if test "$pipe2" = "yes" ; then
echo "CONFIG_PIPE2=y" >> $config_host_mak
fi
if test "$bswap_h" = "yes" ; then
echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
fi
-if test "$curl" = "yes" ; then
- echo "CONFIG_CURL=y" >> $config_host_mak
- echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
- echo "CURL_LIBS=$curl_libs" >> $config_host_mak
-fi
-if test "$brlapi" = "yes" ; then
- echo "CONFIG_BRLAPI=y" >> $config_host_mak
- echo "BRLAPI_LIBS=$brlapi_libs" >> $config_host_mak
-fi
-if test "$gtk" = "yes" ; then
- echo "CONFIG_GTK=y" >> $config_host_mak
- echo "GTK_CFLAGS=$gtk_cflags" >> $config_host_mak
- echo "GTK_LIBS=$gtk_libs" >> $config_host_mak
- if test "$gtk_gl" = "yes" ; then
- echo "CONFIG_GTK_GL=y" >> $config_host_mak
- fi
-fi
if test "$gio" = "yes" ; then
echo "CONFIG_GIO=y" >> $config_host_mak
echo "GIO_CFLAGS=$gio_cflags" >> $config_host_mak
echo "LINUX_IO_URING_CFLAGS=$linux_io_uring_cflags" >> $config_host_mak
echo "LINUX_IO_URING_LIBS=$linux_io_uring_libs" >> $config_host_mak
fi
-if test "$attr" = "yes" ; then
- echo "CONFIG_ATTR=y" >> $config_host_mak
- echo "LIBATTR_LIBS=$libattr_libs" >> $config_host_mak
-fi
-if test "$libattr" = "yes" ; then
- echo "CONFIG_LIBATTR=y" >> $config_host_mak
-fi
-if test "$virtfs" = "yes" ; then
- echo "CONFIG_VIRTFS=y" >> $config_host_mak
-fi
if test "$vhost_scsi" = "yes" ; then
echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
fi
if test "$iovec" = "yes" ; then
echo "CONFIG_IOVEC=y" >> $config_host_mak
fi
-if test "$preadv" = "yes" ; then
- echo "CONFIG_PREADV=y" >> $config_host_mak
-fi
if test "$membarrier" = "yes" ; then
echo "CONFIG_MEMBARRIER=y" >> $config_host_mak
fi
if test "$optreset" = "yes" ; then
echo "HAVE_OPTRESET=y" >> $config_host_mak
fi
-if test "$tcg" = "enabled"; then
- 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
fi
echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak
fi
-if test "$lzo" = "yes" ; then
- echo "CONFIG_LZO=y" >> $config_host_mak
- echo "LZO_LIBS=$lzo_libs" >> $config_host_mak
-fi
-
-if test "$snappy" = "yes" ; then
- echo "CONFIG_SNAPPY=y" >> $config_host_mak
- echo "SNAPPY_LIBS=$snappy_libs" >> $config_host_mak
-fi
-
-if test "$bzip2" = "yes" ; then
- echo "CONFIG_BZIP2=y" >> $config_host_mak
- echo "BZIP2_LIBS=-lbz2" >> $config_host_mak
-fi
-
-if test "$lzfse" = "yes" ; then
- echo "CONFIG_LZFSE=y" >> $config_host_mak
- echo "LZFSE_LIBS=-llzfse" >> $config_host_mak
-fi
-
-if test "$zstd" = "yes" ; then
- echo "CONFIG_ZSTD=y" >> $config_host_mak
- echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak
- echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak
-fi
-
-if test "$libiscsi" = "yes" ; then
- echo "CONFIG_LIBISCSI=y" >> $config_host_mak
- echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
- echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
-fi
-
-if test "$libnfs" = "yes" ; then
- echo "CONFIG_LIBNFS=y" >> $config_host_mak
- echo "LIBNFS_LIBS=$libnfs_libs" >> $config_host_mak
-fi
-
-if test "$seccomp" = "yes"; then
- echo "CONFIG_SECCOMP=y" >> $config_host_mak
- echo "SECCOMP_CFLAGS=$seccomp_cflags" >> $config_host_mak
- echo "SECCOMP_LIBS=$seccomp_libs" >> $config_host_mak
-fi
-
# XXX: suppress that
if [ "$bsd" = "yes" ] ; then
echo "CONFIG_BSD=y" >> $config_host_mak
if test "$qom_cast_debug" = "yes" ; then
echo "CONFIG_QOM_CAST_DEBUG=y" >> $config_host_mak
fi
-if test "$rbd" = "yes" ; then
- echo "CONFIG_RBD=y" >> $config_host_mak
- echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
-fi
echo "CONFIG_COROUTINE_BACKEND=$coroutine" >> $config_host_mak
if test "$coroutine_pool" = "yes" ; then
echo "CONFIG_GETAUXVAL=y" >> $config_host_mak
fi
-if test "$glusterfs" = "yes" ; then
- echo "CONFIG_GLUSTERFS=y" >> $config_host_mak
- echo "GLUSTERFS_CFLAGS=$glusterfs_cflags" >> $config_host_mak
- echo "GLUSTERFS_LIBS=$glusterfs_libs" >> $config_host_mak
-fi
-
-if test "$glusterfs_xlator_opt" = "yes" ; then
- echo "CONFIG_GLUSTERFS_XLATOR_OPT=y" >> $config_host_mak
-fi
-
-if test "$glusterfs_discard" = "yes" ; then
- echo "CONFIG_GLUSTERFS_DISCARD=y" >> $config_host_mak
-fi
-
-if test "$glusterfs_fallocate" = "yes" ; then
- echo "CONFIG_GLUSTERFS_FALLOCATE=y" >> $config_host_mak
-fi
-
-if test "$glusterfs_zerofill" = "yes" ; then
- echo "CONFIG_GLUSTERFS_ZEROFILL=y" >> $config_host_mak
-fi
-
-if test "$glusterfs_ftruncate_has_stat" = "yes" ; then
- echo "CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT=y" >> $config_host_mak
-fi
-
-if test "$glusterfs_iocb_has_stat" = "yes" ; then
- echo "CONFIG_GLUSTERFS_IOCB_HAS_STAT=y" >> $config_host_mak
-fi
-
if test "$libssh" = "yes" ; then
echo "CONFIG_LIBSSH=y" >> $config_host_mak
echo "LIBSSH_CFLAGS=$libssh_cflags" >> $config_host_mak
fi
fi
-if test -n "$gdb_bin" ; then
- echo "HAVE_GDB_BIN=$gdb_bin" >> $config_host_mak
+if test -n "$gdb_bin"; then
+ gdb_version=$($gdb_bin --version | head -n 1)
+ if version_ge ${gdb_version##* } 8.3.1; then
+ echo "HAVE_GDB_BIN=$gdb_bin" >> $config_host_mak
+ fi
fi
if test "$secret_keyring" = "yes" ; then
echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak
-echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
echo "EXESUF=$EXESUF" >> $config_host_mak
echo "HOST_DSOSUF=$HOST_DSOSUF" >> $config_host_mak
echo "RANLIB=$ranlib" >> $config_mak
done
-# set up qemu-iotests in this build directory
-iotests_common_env="tests/qemu-iotests/common.env"
-
-echo "# Automatically generated by configure - do not modify" > "$iotests_common_env"
-echo >> "$iotests_common_env"
-echo "export PYTHON='$python'" >> "$iotests_common_env"
-
if test "$skip_meson" = no; then
cross="config-meson.cross.new"
meson_quote() {
echo "[binaries]" >> $cross
echo "c = [$(meson_quote $cc)]" >> $cross
test -n "$cxx" && echo "cpp = [$(meson_quote $cxx)]" >> $cross
+test -n "$objcc" && echo "objc = [$(meson_quote $objcc)]" >> $cross
echo "ar = [$(meson_quote $ar)]" >> $cross
echo "nm = [$(meson_quote $nm)]" >> $cross
echo "pkgconfig = [$(meson_quote $pkg_config_exe)]" >> $cross
fi
echo "strip = [$(meson_quote $strip)]" >> $cross
echo "windres = [$(meson_quote $windres)]" >> $cross
-if test -n "$cross_prefix"; then
+if test "$cross_compile" = "yes"; then
cross_arg="--cross-file config-meson.cross"
echo "[host_machine]" >> $cross
if test "$mingw32" = "yes" ; then
if test "$linux" = "yes" ; then
echo "system = 'linux'" >> $cross
fi
+ if test "$darwin" = "yes" ; then
+ echo "system = 'darwin'" >> $cross
+ fi
case "$ARCH" in
- i386|x86_64)
+ i386)
echo "cpu_family = 'x86'" >> $cross
;;
+ x86_64)
+ echo "cpu_family = 'x86_64'" >> $cross
+ ;;
ppc64le)
echo "cpu_family = 'ppc64'" >> $cross
;;
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
${staticpic:+-Db_staticpic=$staticpic} \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
+ -Db_lto=$lto -Dcfi=$cfi -Dcfi_debug=$cfi_debug \
-Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \
-Dkvm=$kvm -Dhax=$hax -Dwhpx=$whpx -Dhvf=$hvf \
-Dxen=$xen -Dxen_pci_passthrough=$xen_pci_passthrough -Dtcg=$tcg \
- -Dcocoa=$cocoa -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
+ -Dcocoa=$cocoa -Dgtk=$gtk -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f -Dvirtiofsd=$virtiofsd \
- -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt \
- -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
+ -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
+ -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
+ -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
+ -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy -Dlzfse=$lzfse \
+ -Dzstd=$zstd -Dseccomp=$seccomp -Dvirtfs=$virtfs -Dcap_ng=$cap_ng \
+ -Dattr=$attr -Ddefault_devices=$default_devices \
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
-Dvhost_user_blk_server=$vhost_user_blk_server \
- -Dfuse=$fuse -Dfuse_lseek=$fuse_lseek \
+ -Dfuse=$fuse -Dfuse_lseek=$fuse_lseek -Dguest_agent_msi=$guest_agent_msi \
+ $(if test "$default_features" = no; then echo "-Dauto_features=disabled"; fi) \
+ -Dtcg_interpreter=$tcg_interpreter \
$cross_arg \
"$PWD" "$source_path"
printf "exec" >>config.status
for i in "$0" "$@"; do
- test "$i" = --skip-meson || printf " '%s'" "$i" >>config.status
+ test "$i" = --skip-meson || printf " %s" "$(quote_sh "$i")" >>config.status
done
echo ' "$@"' >>config.status
chmod +x config.status