3 # qemu configure script (c) 2003 Fabrice Bellard
6 # Unset some variables known to interfere with behavior of common tools,
7 # just as autoconf does.
8 CLICOLOR_FORCE
= GREP_OPTIONS
=
9 unset CLICOLOR_FORCE GREP_OPTIONS
11 # Don't allow CCACHE, if present, to use cached results of compile tests!
12 export CCACHE_RECACHE
=yes
14 # Temporary directory used for files created while
15 # configure runs. Since it is in the build directory
16 # we can safely blow away any previous version of it
17 # (and we need not jump through hoops to try to delete
18 # it when configure exits.)
23 echo "ERROR: failed to create temporary directory"
28 TMPC
="${TMPDIR1}/${TMPB}.c"
29 TMPO
="${TMPDIR1}/${TMPB}.o"
30 TMPCXX
="${TMPDIR1}/${TMPB}.cxx"
31 TMPL
="${TMPDIR1}/${TMPB}.lo"
32 TMPA
="${TMPDIR1}/lib${TMPB}.la"
33 TMPE
="${TMPDIR1}/${TMPB}.exe"
34 TMPMO
="${TMPDIR1}/${TMPB}.mo"
38 # Print a helpful header at the top of config.log
39 echo "# QEMU configure log $(date)" >> config.log
40 printf "# Configured with:" >> config.log
41 printf " '%s'" "$0" "$@" >> config.log
43 echo "#" >> config.log
48 while test -n "$2"; do
57 # Run the compiler, capturing its output to the log. First argument
58 # is compiler binary to execute.
61 echo $compiler "$@" >> config.log
62 $compiler "$@" >> config.log
2>&1 ||
return $?
63 # Test passed. If this is an --enable-werror build, rerun
64 # the test with -Werror and bail out if it fails. This
65 # makes warning-generating-errors in configure test code
66 # obvious to developers.
67 if test "$werror" != "yes"; then
70 # Don't bother rerunning the compile if we were already using -Werror
76 echo $compiler -Werror "$@" >> config.log
77 $compiler -Werror "$@" >> config.log
2>&1 && return $?
78 error_exit
"configure test passed without -Werror but failed with -Werror." \
79 "This is probably a bug in the configure script. The failing command" \
80 "will be at the bottom of config.log." \
81 "You can run configure with --disable-werror to bypass this check."
85 do_compiler
"$cc" "$@"
89 do_compiler
"$cxx" "$@"
93 # Set QEMU_CXXFLAGS from QEMU_CFLAGS by filtering out those
94 # options which some versions of GCC's C++ compiler complain about
95 # because they only make sense for C programs.
97 for arg
in $QEMU_CFLAGS; do
99 -Wstrict-prototypes|
-Wmissing-prototypes|
-Wnested-externs|\
100 -Wold-style-declaration|
-Wold-style-definition|
-Wredundant-decls)
103 QEMU_CXXFLAGS
=${QEMU_CXXFLAGS:+$QEMU_CXXFLAGS }$arg
111 do_cc
$QEMU_CFLAGS $local_cflags -c -o $TMPO $TMPC
117 do_cc
$QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
120 # symbolically link $1 to $2. Portable version of "ln -sf".
123 mkdir
-p "$(dirname "$2")"
127 # check whether a command is available to this shell (may be either an
128 # executable or a builtin)
130 type "$1" >/dev
/null
2>&1
133 # search for an executable in PATH
139 # pathname has a dir component?
140 if [ "${local_command#*/}" != "$local_command" ]; then
141 if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then
142 echo "$local_command"
146 if [ -z "$local_command" ]; then
151 for local_dir
in $PATH; do
152 if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then
153 echo "$local_dir/$local_command"
154 IFS
="${local_ifs:-$(printf ' \t\n')}"
159 IFS
="${local_ifs:-$(printf ' \t\n')}"
164 echo "$trace_backends" |
grep "$1" >/dev
/null
168 source_path
=$
(dirname "$0")
171 interp_prefix
="/usr/gnemul/qemu-%M"
175 block_drv_rw_whitelist
=""
176 block_drv_ro_whitelist
=""
182 cc_i386
=i386-pc-linux-gnu-gcc
187 # Don't accept a target_list environment variable.
190 # Default value for a variable defining feature "foo".
191 # * foo="no" feature will only be used if --enable-foo arg is given
192 # * foo="" feature will be searched for, and if found, will be used
193 # unless --disable-foo is given
194 # * foo="yes" this value will only be set by --enable-foo flag.
195 # feature will searched for,
196 # if not found, configure exits with error
198 # Always add --enable-foo and --disable-foo command line args.
199 # Distributions want to ensure that several features are compiled in, and it
200 # is impossible without a --enable-foo that exits if a feature is not found.
221 xen_pv_domain_build
="no"
222 xen_pci_passthrough
=""
246 LDFLAGS_SHARED
="-shared"
249 mandir
="\${prefix}/share/man"
250 datadir
="\${prefix}/share"
251 qemu_docdir
="\${prefix}/share/doc/qemu"
252 bindir
="\${prefix}/bin"
253 libdir
="\${prefix}/lib"
254 libexecdir
="\${prefix}/libexec"
255 includedir
="\${prefix}/include"
256 sysconfdir
="\${prefix}/etc"
257 local_statedir
="\${prefix}/var"
289 guest_agent_with_vss
="no"
290 guest_agent_ntddscsi
="no"
301 glusterfs_xlator_opt
="no"
302 glusterfs_discard
="no"
303 glusterfs_zerofill
="no"
308 tls_priority
="NORMAL"
324 # parse CC options first
326 optarg
=$
(expr "x$opt" : 'x[^=]*=\(.*\)')
328 --cross-prefix=*) cross_prefix
="$optarg"
332 --cxx=*) CXX
="$optarg"
334 --source-path=*) source_path
="$optarg"
336 --cpu=*) cpu
="$optarg"
338 --extra-cflags=*) QEMU_CFLAGS
="$QEMU_CFLAGS $optarg"
339 EXTRA_CFLAGS
="$optarg"
341 --extra-ldflags=*) LDFLAGS
="$LDFLAGS $optarg"
342 EXTRA_LDFLAGS
="$optarg"
344 --enable-debug-info) debug_info
="yes"
346 --disable-debug-info) debug_info
="no"
351 # Using uname is really, really broken. Once we have the right set of checks
352 # we can eliminate its usage altogether.
354 # Preferred compiler:
356 # ${cross_prefix}gcc (if cross-prefix specified)
358 if test -z "${CC}${cross_prefix}"; then
361 cc
="${CC-${cross_prefix}gcc}"
364 if test -z "${CXX}${cross_prefix}"; then
367 cxx
="${CXX-${cross_prefix}g++}"
370 ar="${AR-${cross_prefix}ar}"
371 as
="${AS-${cross_prefix}as}"
374 objcopy
="${OBJCOPY-${cross_prefix}objcopy}"
375 ld
="${LD-${cross_prefix}ld}"
376 nm
="${NM-${cross_prefix}nm}"
377 strip
="${STRIP-${cross_prefix}strip}"
378 windres
="${WINDRES-${cross_prefix}windres}"
379 pkg_config_exe
="${PKG_CONFIG-${cross_prefix}pkg-config}"
381 "${pkg_config_exe}" ${QEMU_PKG_CONFIG_FLAGS} "$@"
383 pkg_config
=query_pkg_config
384 sdl_config
="${SDL_CONFIG-${cross_prefix}sdl-config}"
385 sdl2_config
="${SDL2_CONFIG-${cross_prefix}sdl2-config}"
387 # If the user hasn't specified ARFLAGS, default to 'rv', just as make does.
388 ARFLAGS
="${ARFLAGS-rv}"
390 # default flags for all hosts
391 # We use -fwrapv to tell the compiler that we require a C dialect where
392 # left shift of signed integers is well defined and has the expected
393 # 2s-complement style results. (Both clang and gcc agree that it
394 # provides these semantics.)
395 QEMU_CFLAGS
="-fno-strict-aliasing -fno-common -fwrapv $QEMU_CFLAGS"
396 QEMU_CFLAGS
="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
397 QEMU_CFLAGS
="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
398 QEMU_CFLAGS
="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
399 QEMU_INCLUDES
="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/include"
400 if test "$debug_info" = "yes"; then
402 LDFLAGS
="-g $LDFLAGS"
405 # make source path absolute
406 source_path
=$
(cd "$source_path"; pwd)
408 # running configure in the source tree?
409 # we know that's the case if configure is there.
410 if test -f "./configure"; then
411 pwd_is_source_path
="y"
413 pwd_is_source_path
="n"
419 #error $1 not defined
421 int main(void) { return 0; }
429 int main(void) { return 0; }
436 int main(void) { return 0; }
440 if check_define __linux__
; then
442 elif check_define _WIN32
; then
444 elif check_define __OpenBSD__
; then
446 elif check_define __sun__
; then
448 elif check_define __HAIKU__
; then
454 # Some host OSes need non-standard checks for which CPU to use.
455 # Note that these checks are broken for cross-compilation: if you're
456 # cross-compiling to one of these OSes then you'll need to specify
457 # the correct CPU with the --cpu option.
460 # on Leopard most of the system is 32-bit, so we have to ask the kernel if we can
461 # run 64-bit userspace code.
462 # If the user didn't specify a CPU explicitly and the kernel says this is
463 # 64 bit hw, then assume x86_64. Otherwise fall through to the usual detection code.
464 if test -z "$cpu" && test "$(sysctl -n hw.optional.x86_64)" = "1"; then
469 # $(uname -m) returns i86pc even on an x86_64 box, so default based on isainfo
470 if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then
475 if test ! -z "$cpu" ; then
476 # command line argument
478 elif check_define __i386__
; then
480 elif check_define __x86_64__
; then
481 if check_define __ILP32__
; then
486 elif check_define __sparc__
; then
487 if check_define __arch64__
; then
492 elif check_define _ARCH_PPC
; then
493 if check_define _ARCH_PPC64
; then
498 elif check_define __mips__
; then
500 elif check_define __ia64__
; then
502 elif check_define __s390__
; then
503 if check_define __s390x__
; then
508 elif check_define __arm__
; then
510 elif check_define __aarch64__
; then
517 # Normalise host CPU name and set ARCH.
518 # Note that this case should only have supported host CPUs, not guests.
520 ia64|ppc|ppc64|s390|s390x|sparc64|x32
)
523 i386|i486|i586|i686|i86pc|BePC
)
542 # This will result in either an error or falling back to TCI later
546 if test -z "$ARCH"; then
552 # host *BSD for user mode
558 QEMU_CFLAGS
="-mno-cygwin $QEMU_CFLAGS"
559 audio_possible_drivers
="sdl"
564 audio_possible_drivers
="dsound sdl"
565 if check_include dsound.h
; then
566 audio_drv_list
="dsound"
574 audio_possible_drivers
="oss sdl pa"
580 audio_possible_drivers
="oss sdl pa"
581 # needed for kinfo_getvmmap(3) in libutil.h
583 netmap
="" # enable netmap autodetect
584 HOST_VARIANT_DIR
="freebsd"
590 audio_possible_drivers
="oss sdl pa"
591 HOST_VARIANT_DIR
="dragonfly"
597 audio_possible_drivers
="oss sdl"
599 HOST_VARIANT_DIR
="netbsd"
605 audio_possible_drivers
="sdl"
606 HOST_VARIANT_DIR
="openbsd"
611 LDFLAGS_SHARED
="-bundle -undefined dynamic_lookup"
612 if [ "$cpu" = "x86_64" ] ; then
613 QEMU_CFLAGS
="-arch x86_64 $QEMU_CFLAGS"
614 LDFLAGS
="-arch x86_64 $LDFLAGS"
617 audio_drv_list
="coreaudio"
618 audio_possible_drivers
="coreaudio sdl"
619 LDFLAGS
="-framework CoreFoundation -framework IOKit $LDFLAGS"
620 libs_softmmu
="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
621 # Disable attempts to use ObjectiveC features in os/object.h since they
622 # won't work when we're compiling with gcc as a C compiler.
623 QEMU_CFLAGS
="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
624 HOST_VARIANT_DIR
="darwin"
629 install="${INSTALL-ginstall}"
631 smbd
="${SMBD-/usr/sfw/sbin/smbd}"
632 needs_libsunmath
="no"
633 solarisrev
=$
(uname
-r | cut
-f2 -d.
)
634 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
635 if test "$solarisrev" -le 9 ; then
636 if test -f /opt
/SUNWspro
/prod
/lib
/libsunmath.so
.1; then
637 needs_libsunmath
="yes"
638 QEMU_CFLAGS
="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
639 LDFLAGS
="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
640 LIBS
="-lsunmath $LIBS"
642 error_exit
"QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" \
643 "libsunmath from the Sun Studio compilers tools, due to a lack of" \
644 "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" \
645 "Studio 11 can be downloaded from www.sun.com."
649 if test -f /usr
/include
/sys
/soundcard.h
; then
652 audio_possible_drivers
="oss sdl"
653 # needed for CMSG_ macros in sys/socket.h
654 QEMU_CFLAGS
="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
655 # needed for TIOCWIN* defines in termios.h
656 QEMU_CFLAGS
="-D__EXTENSIONS__ $QEMU_CFLAGS"
657 QEMU_CFLAGS
="-std=gnu99 $QEMU_CFLAGS"
658 solarisnetlibs
="-lsocket -lnsl -lresolv"
659 LIBS
="$solarisnetlibs $LIBS"
660 libs_qga
="$solarisnetlibs $libs_qga"
668 QEMU_CFLAGS
="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
669 LIBS
="-lposix_error_mapper -lnetwork $LIBS"
673 audio_possible_drivers
="oss alsa sdl pa"
680 QEMU_INCLUDES
="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES"
684 if [ "$bsd" = "yes" ] ; then
685 if [ "$darwin" != "yes" ] ; then
690 : ${make=${MAKE-make}}
691 : ${install=${INSTALL-install}}
692 : ${python=${PYTHON-python}}
693 : ${smbd=${SMBD-/usr/sbin/smbd}}
695 # Default objcc to clang if available, otherwise use CC
702 if test "$mingw32" = "yes" ; then
705 QEMU_CFLAGS
="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
706 # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
707 QEMU_CFLAGS
="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
708 # MinGW needs -mthreads for TLS and macro _MT.
709 QEMU_CFLAGS
="-mthreads $QEMU_CFLAGS"
710 LIBS
="-lwinmm -lws2_32 -liphlpapi $LIBS"
712 if compile_prog
"" "-liberty" ; then
713 LIBS
="-liberty $LIBS"
715 prefix
="c:/Program Files/QEMU"
718 qemu_docdir
="\${prefix}"
720 sysconfdir
="\${prefix}"
723 libs_qga
="-lws2_32 -lwinmm -lpowrprof -liphlpapi -lnetapi32 $libs_qga"
729 optarg
=$
(expr "x$opt" : 'x[^=]*=\(.*\)')
731 --help|
-h) show_help
=yes
733 --version|
-V) exec cat $source_path/VERSION
735 --prefix=*) prefix
="$optarg"
737 --interp-prefix=*) interp_prefix
="$optarg"
745 --host-cc=*) host_cc
="$optarg"
749 --iasl=*) iasl
="$optarg"
751 --objcc=*) objcc
="$optarg"
753 --make=*) make="$optarg"
755 --install=*) install="$optarg"
757 --python=*) python
="$optarg"
759 --gcov=*) gcov_tool
="$optarg"
761 --smbd=*) smbd
="$optarg"
769 --disable-debug-info)
779 --target-list=*) target_list
="$optarg"
781 --enable-trace-backends=*) trace_backends
="$optarg"
783 # XXX: backwards compatibility
784 --enable-trace-backend=*) trace_backends
="$optarg"
786 --with-trace-file=*) trace_file
="$optarg"
788 --enable-gprof) gprof
="yes"
790 --enable-gcov) gcov
="yes"
794 LDFLAGS
="-static $LDFLAGS"
795 QEMU_PKG_CONFIG_FLAGS
="--static $QEMU_PKG_CONFIG_FLAGS"
797 --mandir=*) mandir
="$optarg"
799 --bindir=*) bindir
="$optarg"
801 --libdir=*) libdir
="$optarg"
803 --libexecdir=*) libexecdir
="$optarg"
805 --includedir=*) includedir
="$optarg"
807 --datadir=*) datadir
="$optarg"
809 --with-confsuffix=*) confsuffix
="$optarg"
811 --docdir=*) qemu_docdir
="$optarg"
813 --sysconfdir=*) sysconfdir
="$optarg"
815 --localstatedir=*) local_statedir
="$optarg"
817 --sbindir=*|
--sharedstatedir=*|\
818 --oldincludedir=*|
--datarootdir=*|
--infodir=*|
--localedir=*|\
819 --htmldir=*|
--dvidir=*|
--pdfdir=*|
--psdir=*)
820 # These switches are silently ignored, for compatibility with
821 # autoconf-generated configure scripts. This allows QEMU's
822 # configure to be used by RPM and similar macros that set
823 # lots of directory switches by default.
825 --with-system-pixman) pixman
="system"
827 --without-system-pixman) pixman
="internal"
829 --without-pixman) pixman
="none"
831 --disable-sdl) sdl
="no"
833 --enable-sdl) sdl
="yes"
835 --with-sdlabi=*) sdlabi
="$optarg"
837 --disable-qom-cast-debug) qom_cast_debug
="no"
839 --enable-qom-cast-debug) qom_cast_debug
="yes"
841 --disable-virtfs) virtfs
="no"
843 --enable-virtfs) virtfs
="yes"
845 --disable-vnc) vnc
="no"
847 --enable-vnc) vnc
="yes"
849 --oss-lib=*) oss_lib
="$optarg"
851 --audio-drv-list=*) audio_drv_list
="$optarg"
853 --block-drv-rw-whitelist=*|
--block-drv-whitelist=*) block_drv_rw_whitelist
=$
(echo "$optarg" |
sed -e 's/,/ /g')
855 --block-drv-ro-whitelist=*) block_drv_ro_whitelist
=$
(echo "$optarg" |
sed -e 's/,/ /g')
857 --enable-debug-tcg) debug_tcg
="yes"
859 --disable-debug-tcg) debug_tcg
="no"
862 # Enable debugging options that aren't excessively noisy
868 --enable-sparse) sparse
="yes"
870 --disable-sparse) sparse
="no"
872 --disable-strip) strip_opt
="no"
874 --disable-vnc-sasl) vnc_sasl
="no"
876 --enable-vnc-sasl) vnc_sasl
="yes"
878 --disable-vnc-jpeg) vnc_jpeg
="no"
880 --enable-vnc-jpeg) vnc_jpeg
="yes"
882 --disable-vnc-png) vnc_png
="no"
884 --enable-vnc-png) vnc_png
="yes"
886 --disable-slirp) slirp
="no"
888 --disable-vde) vde
="no"
890 --enable-vde) vde
="yes"
892 --disable-netmap) netmap
="no"
894 --enable-netmap) netmap
="yes"
896 --disable-xen) xen
="no"
898 --enable-xen) xen
="yes"
900 --disable-xen-pci-passthrough) xen_pci_passthrough
="no"
902 --enable-xen-pci-passthrough) xen_pci_passthrough
="yes"
904 --disable-xen-pv-domain-build) xen_pv_domain_build
="no"
906 --enable-xen-pv-domain-build) xen_pv_domain_build
="yes"
908 --disable-brlapi) brlapi
="no"
910 --enable-brlapi) brlapi
="yes"
912 --disable-bluez) bluez
="no"
914 --enable-bluez) bluez
="yes"
916 --disable-kvm) kvm
="no"
918 --enable-kvm) kvm
="yes"
920 --disable-tcg-interpreter) tcg_interpreter
="no"
922 --enable-tcg-interpreter) tcg_interpreter
="yes"
924 --disable-cap-ng) cap_ng
="no"
926 --enable-cap-ng) cap_ng
="yes"
928 --disable-spice) spice
="no"
930 --enable-spice) spice
="yes"
932 --disable-libiscsi) libiscsi
="no"
934 --enable-libiscsi) libiscsi
="yes"
936 --disable-libnfs) libnfs
="no"
938 --enable-libnfs) libnfs
="yes"
940 --enable-profiler) profiler
="yes"
942 --disable-cocoa) cocoa
="no"
946 audio_drv_list
="coreaudio $(echo $audio_drv_list | sed s,coreaudio,,g)"
948 --disable-system) softmmu
="no"
950 --enable-system) softmmu
="yes"
957 --disable-linux-user) linux_user
="no"
959 --enable-linux-user) linux_user
="yes"
961 --disable-bsd-user) bsd_user
="no"
963 --enable-bsd-user) bsd_user
="yes"
965 --enable-pie) pie
="yes"
967 --disable-pie) pie
="no"
969 --enable-werror) werror
="yes"
971 --disable-werror) werror
="no"
973 --enable-stack-protector) stack_protector
="yes"
975 --disable-stack-protector) stack_protector
="no"
977 --disable-curses) curses
="no"
979 --enable-curses) curses
="yes"
981 --disable-curl) curl
="no"
983 --enable-curl) curl
="yes"
985 --disable-fdt) fdt
="no"
987 --enable-fdt) fdt
="yes"
989 --disable-linux-aio) linux_aio
="no"
991 --enable-linux-aio) linux_aio
="yes"
993 --disable-attr) attr
="no"
995 --enable-attr) attr
="yes"
997 --disable-blobs) blobs
="no"
999 --with-pkgversion=*) pkgversion
=" ($optarg)"
1001 --with-coroutine=*) coroutine
="$optarg"
1003 --disable-coroutine-pool) coroutine_pool
="no"
1005 --enable-coroutine-pool) coroutine_pool
="yes"
1007 --disable-docs) docs
="no"
1009 --enable-docs) docs
="yes"
1011 --disable-vhost-net) vhost_net
="no"
1013 --enable-vhost-net) vhost_net
="yes"
1015 --disable-vhost-scsi) vhost_scsi
="no"
1017 --enable-vhost-scsi) vhost_scsi
="yes"
1019 --disable-vhost-vsock) vhost_vsock
="no"
1021 --enable-vhost-vsock) vhost_vsock
="yes"
1023 --disable-opengl) opengl
="no"
1025 --enable-opengl) opengl
="yes"
1027 --disable-rbd) rbd
="no"
1029 --enable-rbd) rbd
="yes"
1031 --disable-xfsctl) xfs
="no"
1033 --enable-xfsctl) xfs
="yes"
1035 --disable-smartcard) smartcard
="no"
1037 --enable-smartcard) smartcard
="yes"
1039 --disable-libusb) libusb
="no"
1041 --enable-libusb) libusb
="yes"
1043 --disable-usb-redir) usb_redir
="no"
1045 --enable-usb-redir) usb_redir
="yes"
1047 --disable-zlib-test) zlib
="no"
1049 --disable-lzo) lzo
="no"
1051 --enable-lzo) lzo
="yes"
1053 --disable-snappy) snappy
="no"
1055 --enable-snappy) snappy
="yes"
1057 --disable-bzip2) bzip2="no"
1059 --enable-bzip2) bzip2="yes"
1061 --enable-guest-agent) guest_agent
="yes"
1063 --disable-guest-agent) guest_agent
="no"
1065 --enable-guest-agent-msi) guest_agent_msi
="yes"
1067 --disable-guest-agent-msi) guest_agent_msi
="no"
1069 --with-vss-sdk) vss_win32_sdk
=""
1071 --with-vss-sdk=*) vss_win32_sdk
="$optarg"
1073 --without-vss-sdk) vss_win32_sdk
="no"
1075 --with-win-sdk) win_sdk
=""
1077 --with-win-sdk=*) win_sdk
="$optarg"
1079 --without-win-sdk) win_sdk
="no"
1081 --enable-tools) want_tools
="yes"
1083 --disable-tools) want_tools
="no"
1085 --enable-seccomp) seccomp
="yes"
1087 --disable-seccomp) seccomp
="no"
1089 --disable-glusterfs) glusterfs
="no"
1091 --enable-glusterfs) glusterfs
="yes"
1093 --disable-archipelago) archipelago
="no"
1095 --enable-archipelago) archipelago
="yes"
1097 --disable-virtio-blk-data-plane|
--enable-virtio-blk-data-plane)
1098 echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2
1100 --enable-vhdx|
--disable-vhdx)
1101 echo "$0: $opt is obsolete, VHDX driver is always built" >&2
1103 --enable-uuid|
--disable-uuid)
1104 echo "$0: $opt is obsolete, UUID support is always built" >&2
1106 --disable-gtk) gtk
="no"
1108 --enable-gtk) gtk
="yes"
1110 --tls-priority=*) tls_priority
="$optarg"
1112 --disable-gnutls) gnutls
="no"
1114 --enable-gnutls) gnutls
="yes"
1116 --disable-nettle) nettle
="no"
1118 --enable-nettle) nettle
="yes"
1120 --disable-gcrypt) gcrypt
="no"
1122 --enable-gcrypt) gcrypt
="yes"
1124 --enable-rdma) rdma
="yes"
1126 --disable-rdma) rdma
="no"
1128 --with-gtkabi=*) gtkabi
="$optarg"
1130 --disable-vte) vte
="no"
1132 --enable-vte) vte
="yes"
1134 --disable-virglrenderer) virglrenderer
="no"
1136 --enable-virglrenderer) virglrenderer
="yes"
1138 --disable-tpm) tpm
="no"
1140 --enable-tpm) tpm
="yes"
1142 --disable-libssh2) libssh2
="no"
1144 --enable-libssh2) libssh2
="yes"
1146 --disable-numa) numa
="no"
1148 --enable-numa) numa
="yes"
1150 --disable-tcmalloc) tcmalloc
="no"
1152 --enable-tcmalloc) tcmalloc
="yes"
1154 --disable-jemalloc) jemalloc
="no"
1156 --enable-jemalloc) jemalloc
="yes"
1158 --disable-replication) replication
="no"
1160 --enable-replication) replication
="yes"
1163 echo "ERROR: unknown option $opt"
1164 echo "Try '$0 --help' for more information"
1170 if ! has
$python; then
1171 error_exit
"Python not found. Use --python=/path/to/python"
1174 # Note that if the Python conditional here evaluates True we will exit
1175 # with status 1 which is a shell 'false' value.
1176 if ! $python -c 'import sys; sys.exit(sys.version_info < (2,6) or sys.version_info >= (3,))'; then
1177 error_exit
"Cannot use '$python', Python 2.6 or later is required." \
1178 "Note that Python 3 or later is not yet supported." \
1179 "Use --python=/path/to/python to specify a supported Python."
1182 # Suppress writing compiled files
1188 LDFLAGS
="-m32 $LDFLAGS"
1192 LDFLAGS
="-m64 $LDFLAGS"
1195 LDFLAGS
="-m32 $LDFLAGS"
1196 CPU_CFLAGS
="-m32 -mcpu=ultrasparc"
1199 LDFLAGS
="-m64 $LDFLAGS"
1200 CPU_CFLAGS
="-m64 -mcpu=ultrasparc"
1204 LDFLAGS
="-m31 $LDFLAGS"
1208 LDFLAGS
="-m64 $LDFLAGS"
1212 LDFLAGS
="-m32 $LDFLAGS"
1213 cc_i386
='$(CC) -m32'
1217 LDFLAGS
="-m64 $LDFLAGS"
1218 cc_i386
='$(CC) -m32'
1222 LDFLAGS
="-mx32 $LDFLAGS"
1223 cc_i386
='$(CC) -m32'
1225 # No special flags required for other host CPUs
1228 QEMU_CFLAGS
="$CPU_CFLAGS $QEMU_CFLAGS"
1229 EXTRA_CFLAGS
="$CPU_CFLAGS $EXTRA_CFLAGS"
1231 # For user-mode emulation the host arch has to be one we explicitly
1232 # support, even if we're using TCI.
1233 if [ "$ARCH" = "unknown" ]; then
1238 default_target_list
=""
1242 if [ "$softmmu" = "yes" ]; then
1243 mak_wilds
="${mak_wilds} $source_path/default-configs/*-softmmu.mak"
1245 if [ "$linux_user" = "yes" ]; then
1246 mak_wilds
="${mak_wilds} $source_path/default-configs/*-linux-user.mak"
1248 if [ "$bsd_user" = "yes" ]; then
1249 mak_wilds
="${mak_wilds} $source_path/default-configs/*-bsd-user.mak"
1252 for config
in $mak_wilds; do
1253 default_target_list
="${default_target_list} $(basename "$config" .mak)"
1256 if test x
"$show_help" = x
"yes" ; then
1259 Usage: configure [options]
1260 Options: [defaults in brackets after descriptions]
1263 --help print this message
1264 --prefix=PREFIX install in PREFIX [$prefix]
1265 --interp-prefix=PREFIX where to find shared libraries, etc.
1266 use %M for cpu name [$interp_prefix]
1267 --target-list=LIST set target list (default: build everything)
1268 $(echo Available targets: $default_target_list | \
1269 fold -s -w 53 | sed -e 's/^/ /')
1271 Advanced options (experts only):
1272 --source-path=PATH path of source code [$source_path]
1273 --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]
1274 --cc=CC use C compiler CC [$cc]
1275 --iasl=IASL use ACPI compiler IASL [$iasl]
1276 --host-cc=CC use C compiler CC [$host_cc] for code run at
1278 --cxx=CXX use C++ compiler CXX [$cxx]
1279 --objcc=OBJCC use Objective-C compiler OBJCC [$objcc]
1280 --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS
1281 --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS
1282 --make=MAKE use specified make [$make]
1283 --install=INSTALL use specified install [$install]
1284 --python=PYTHON use specified python [$python]
1285 --smbd=SMBD use specified smbd [$smbd]
1286 --static enable static build [$static]
1287 --mandir=PATH install man pages in PATH
1288 --datadir=PATH install firmware in PATH$confsuffix
1289 --docdir=PATH install documentation in PATH$confsuffix
1290 --bindir=PATH install binaries in PATH
1291 --libdir=PATH install libraries in PATH
1292 --sysconfdir=PATH install config in PATH$confsuffix
1293 --localstatedir=PATH install local state in PATH (set at runtime on win32)
1294 --with-confsuffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir [$confsuffix]
1295 --enable-debug enable common debug build options
1296 --disable-strip disable stripping binaries
1297 --disable-werror disable compilation abort on warning
1298 --disable-stack-protector disable compiler-provided stack protection
1299 --audio-drv-list=LIST set audio drivers list:
1300 Available drivers: $audio_possible_drivers
1301 --block-drv-whitelist=L Same as --block-drv-rw-whitelist=L
1302 --block-drv-rw-whitelist=L
1303 set block driver read-write whitelist
1304 (affects only QEMU, not qemu-img)
1305 --block-drv-ro-whitelist=L
1306 set block driver read-only whitelist
1307 (affects only QEMU, not qemu-img)
1308 --enable-trace-backends=B Set trace backend
1309 Available backends: $($python $source_path/scripts/tracetool.py --list-backends)
1310 --with-trace-file=NAME Full PATH,NAME of file to store traces
1312 --disable-slirp disable SLIRP userspace network connectivity
1313 --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)
1314 --oss-lib path to OSS library
1315 --cpu=CPU Build for host CPU [$cpu]
1316 --with-coroutine=BACKEND coroutine backend. Supported options:
1317 gthread, ucontext, sigaltstack, windows
1318 --enable-gcov enable test coverage analysis with gcov
1319 --gcov=GCOV use specified gcov [$gcov_tool]
1320 --disable-blobs disable installing provided firmware blobs
1321 --with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent
1322 --with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb)
1323 --tls-priority default TLS protocol/cipher priority string
1325 Optional features, enabled with --enable-FEATURE and
1326 disabled with --disable-FEATURE, default is enabled if available:
1328 system all system emulation targets
1329 user supported user emulation targets
1330 linux-user all linux usermode emulation targets
1331 bsd-user all BSD usermode emulation targets
1332 docs build documentation
1333 guest-agent build the QEMU Guest Agent
1334 guest-agent-msi build guest agent Windows MSI installation package
1335 pie Position Independent Executables
1336 modules modules support
1337 debug-tcg TCG debugging (default is disabled)
1338 debug-info debugging information
1339 sparse sparse checker
1341 gnutls GNUTLS cryptography support
1342 nettle nettle cryptography support
1343 gcrypt libgcrypt cryptography support
1345 --with-sdlabi select preferred SDL ABI 1.2 or 2.0
1347 --with-gtkabi select preferred GTK ABI 2.0 or 3.0
1348 vte vte support for the gtk UI
1351 vnc-sasl SASL encryption for VNC server
1352 vnc-jpeg JPEG lossy compression for VNC server
1353 vnc-png PNG compression for VNC server
1354 cocoa Cocoa UI (Mac OS X only)
1356 xen xen backend driver support
1358 brlapi BrlAPI (Braile)
1359 curl curl connectivity
1361 bluez bluez stack connectivity
1362 kvm KVM acceleration support
1363 rdma RDMA-based migration support
1364 vde support for vde network
1365 netmap support for netmap network
1366 linux-aio Linux AIO support
1367 cap-ng libcap-ng support
1368 attr attr and xattr support
1369 vhost-net vhost-net acceleration support
1371 rbd rados block device (rbd)
1372 libiscsi iscsi support
1374 smartcard smartcard support (libcacard)
1375 libusb libusb (for usb passthrough)
1376 usb-redir usb network redirection support
1377 lzo support of lzo compression library
1378 snappy support of snappy compression library
1379 bzip2 support of bzip2 compression library
1380 (for reading bzip2-compressed dmg images)
1381 seccomp seccomp support
1382 coroutine-pool coroutine freelist (better performance)
1383 glusterfs GlusterFS backend
1384 archipelago Archipelago backend
1386 libssh2 ssh block device support
1387 numa libnuma support
1388 tcmalloc tcmalloc support
1389 jemalloc jemalloc support
1390 replication replication support
1392 NOTE: The object files are built at the place where configure is launched
1397 # Now we have handled --enable-tcg-interpreter and know we're not just
1398 # printing the help message, bail out if the host CPU isn't supported.
1399 if test "$ARCH" = "unknown"; then
1400 if test "$tcg_interpreter" = "yes" ; then
1401 echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
1403 error_exit
"Unsupported CPU = $cpu, try --enable-tcg-interpreter"
1407 # Consult white-list to determine whether to enable werror
1408 # by default. Only enable by default for git builds
1409 if test -z "$werror" ; then
1410 if test -d "$source_path/.git" -a \
1411 \
( "$linux" = "yes" -o "$mingw32" = "yes" \
) ; then
1418 # check that the C compiler works.
1420 if compile_object
; then
1421 : C compiler works ok
1423 error_exit
"\"$cc\" either does not exist or does not work"
1425 if ! compile_prog
; then
1426 error_exit
"\"$cc\" cannot build an executable (is your linker broken?)"
1429 # Check that the C++ compiler exists and works with the C compiler
1432 int c_function(void);
1433 int main(void) { return c_function(); }
1440 int c_function(void);
1442 int c_function(void) { return 42; }
1447 if do_cxx
$QEMU_CXXFLAGS -o $TMPE $TMPCXX $TMPO $LDFLAGS; then
1448 # C++ compiler $cxx works ok with C compiler $cc
1451 echo "C++ compiler $cxx does not work with C compiler $cc"
1452 echo "Disabling C++ specific optional code"
1456 echo "No C++ compiler available; disabling C++ specific optional code"
1460 gcc_flags
="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
1461 gcc_flags
="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
1462 gcc_flags
="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
1463 gcc_flags
="-Wendif-labels -Wno-shift-negative-value $gcc_flags"
1464 gcc_flags
="-Wno-initializer-overrides $gcc_flags"
1465 gcc_flags
="-Wno-string-plus-int $gcc_flags"
1466 # Note that we do not add -Werror to gcc_flags here, because that would
1467 # enable it for all configure tests. If a configure test failed due
1468 # to -Werror this would just silently disable some features,
1469 # so it's too error prone.
1471 cc_has_warning_flag
() {
1474 # Use the positive sense of the flag when testing for -Wno-wombat
1475 # support (gcc will happily accept the -Wno- form of unknown
1477 optflag
="$(echo $1 | sed -e 's/^-Wno-/-W/')"
1478 compile_prog
"-Werror $optflag" ""
1481 for flag
in $gcc_flags; do
1482 if cc_has_warning_flag
$flag ; then
1483 QEMU_CFLAGS
="$QEMU_CFLAGS $flag"
1487 if test "$stack_protector" != "no"; then
1489 int main(int argc, char *argv[])
1491 char arr[64], *p = arr, *c = argv[0];
1498 gcc_flags
="-fstack-protector-strong -fstack-protector-all"
1500 for flag
in $gcc_flags; do
1501 # We need to check both a compile and a link, since some compiler
1502 # setups fail only on a .c->.o compile and some only at link time
1503 if do_cc
$QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC &&
1504 compile_prog
"-Werror $flag" ""; then
1505 QEMU_CFLAGS
="$QEMU_CFLAGS $flag"
1510 if test "$stack_protector" = yes; then
1511 if test $sp_on = 0; then
1512 error_exit
"Stack protector not supported"
1517 # Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
1518 # large functions that use global variables. The bug is in all releases of
1519 # GCC, but it became particularly acute in 4.6.x and 4.7.x. It is fixed in
1520 # 4.7.3 and 4.8.0. We should be able to delete this at the end of 2013.
1522 #if __GNUC__ == 4 && (__GNUC_MINOR__ == 6 || (__GNUC_MINOR__ == 7 && __GNUC_PATCHLEVEL__ <= 2))
1523 int main(void) { return 0; }
1525 #error No bug in this compiler.
1528 if compile_prog
"-Werror -fno-gcse" "" ; then
1529 TRANSLATE_OPT_CFLAGS
=-fno-gcse
1532 if test "$static" = "yes" ; then
1533 if test "$modules" = "yes" ; then
1534 error_exit
"static and modules are mutually incompatible"
1536 if test "$pie" = "yes" ; then
1537 error_exit
"static and pie are mutually incompatible"
1543 # Unconditional check for compiler __thread support
1545 static __thread int tls_var;
1546 int main(void) { return tls_var; }
1549 if ! compile_prog
"-Werror" "" ; then
1550 error_exit
"Your compiler does not support the __thread specifier for " \
1551 "Thread-Local Storage (TLS). Please upgrade to a version that does."
1554 if test "$pie" = ""; then
1555 case "$cpu-$targetos" in
1556 i386-Linux|x86_64-Linux|x32-Linux|i386-OpenBSD|x86_64-OpenBSD
)
1564 if test "$pie" != "no" ; then
1568 # define THREAD __thread
1573 static THREAD int tls_var;
1575 int main(void) { return tls_var; }
1578 if compile_prog
"-fPIE -DPIE" "-pie"; then
1579 QEMU_CFLAGS
="-fPIE -DPIE $QEMU_CFLAGS"
1580 LDFLAGS
="-pie $LDFLAGS"
1582 if compile_prog
"" "-Wl,-z,relro -Wl,-z,now" ; then
1583 LDFLAGS
="-Wl,-z,relro -Wl,-z,now $LDFLAGS"
1586 if test "$pie" = "yes"; then
1587 error_exit
"PIE not available due to missing toolchain support"
1589 echo "Disabling PIE due to missing toolchain support"
1594 if compile_prog
"-Werror -fno-pie" "-nopie"; then
1595 CFLAGS_NOPIE
="-fno-pie"
1596 LDFLAGS_NOPIE
="-nopie"
1600 ##########################################
1601 # __sync_fetch_and_and requires at least -march=i486. Many toolchains
1602 # use i686 as default anyway, but for those that don't, an explicit
1603 # specification is necessary
1605 if test "$cpu" = "i386"; then
1607 static int sfaa(int *ptr)
1609 return __sync_fetch_and_and(ptr, 0);
1615 val = __sync_val_compare_and_swap(&val, 0, 1);
1620 if ! compile_prog
"" "" ; then
1621 QEMU_CFLAGS
="-march=i486 $QEMU_CFLAGS"
1625 #########################################
1626 # Solaris specific configure tool chain decisions
1628 if test "$solaris" = "yes" ; then
1629 if has
$install; then
1632 error_exit
"Solaris install program not found. Use --install=/usr/ucb/install or" \
1633 "install fileutils from www.blastwave.org using pkg-get -i fileutils" \
1634 "to get ginstall which is used by default (which lives in /opt/csw/bin)"
1636 if test "$(path_of $install)" = "/usr/sbin/install" ; then
1637 error_exit
"Solaris /usr/sbin/install is not an appropriate install program." \
1638 "try ginstall from the GNU fileutils available from www.blastwave.org" \
1639 "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
1644 if test -f /usr
/ccs
/bin
/ar ; then
1645 error_exit
"No path includes ar" \
1646 "Add /usr/ccs/bin to your path and rerun configure"
1648 error_exit
"No path includes ar"
1652 if test -z "${target_list+xxx}" ; then
1653 target_list
="$default_target_list"
1655 target_list
=$
(echo "$target_list" |
sed -e 's/,/ /g')
1658 # Check that we recognised the target name; this allows a more
1659 # friendly error message than if we let it fall through.
1660 for target
in $target_list; do
1661 case " $default_target_list " in
1665 error_exit
"Unknown target name '$target'"
1670 # see if system emulation was really requested
1671 case " $target_list " in
1672 *"-softmmu "*) softmmu
=yes
1678 feature_not_found
() {
1682 error_exit
"User requested feature $feature" \
1683 "configure was not able to find it." \
1688 # big/little endian test
1690 short big_endian[] = { 0x4269, 0x4765, 0x4e64, 0x4961, 0x4e00, 0, };
1691 short little_endian[] = { 0x694c, 0x7454, 0x654c, 0x6e45, 0x6944, 0x6e41, 0, };
1692 extern int foo(short *, short *);
1693 int main(int argc, char *argv[]) {
1694 return foo(big_endian, little_endian);
1698 if compile_object
; then
1699 if grep -q BiGeNdIaN
$TMPO ; then
1701 elif grep -q LiTtLeEnDiAn
$TMPO ; then
1704 echo big
/little
test failed
1707 echo big
/little
test failed
1710 ##########################################
1711 # cocoa implies not SDL or GTK
1712 # (the cocoa UI code currently assumes it is always the active UI
1713 # and doesn't interact well with other UI frontend code)
1714 if test "$cocoa" = "yes"; then
1715 if test "$sdl" = "yes"; then
1716 error_exit
"Cocoa and SDL UIs cannot both be enabled at once"
1718 if test "$gtk" = "yes"; then
1719 error_exit
"Cocoa and GTK UIs cannot both be enabled at once"
1725 ##########################################
1729 #include <sys/socket.h>
1730 #include <linux/ip.h>
1731 int main(void) { return sizeof(struct mmsghdr); }
1733 if compile_prog
"" "" ; then
1739 ##########################################
1740 # MinGW / Mingw-w64 localtime_r/gmtime_r check
1742 if test "$mingw32" = "yes"; then
1743 # Some versions of MinGW / Mingw-w64 lack localtime_r
1744 # and gmtime_r entirely.
1746 # Some versions of Mingw-w64 define a macro for
1747 # localtime_r/gmtime_r.
1749 # Some versions of Mingw-w64 will define functions
1750 # for localtime_r/gmtime_r, but only if you have
1751 # _POSIX_THREAD_SAFE_FUNCTIONS defined. For fun
1752 # though, unistd.h and pthread.h both define
1755 # So this #undef localtime_r and #include <unistd.h>
1756 # are not in fact redundant.
1761 int main(void) { localtime_r(NULL, NULL); return 0; }
1763 if compile_prog
"" "" ; then
1770 ##########################################
1773 if ! has
"$pkg_config_exe"; then
1774 error_exit
"pkg-config binary '$pkg_config_exe' not found"
1777 ##########################################
1780 if test "$linux_user" = "yes"; then
1783 #include <linux/futex.h>
1785 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
1791 if ! compile_object
; then
1792 feature_not_found
"nptl" "Install glibc and linux kernel headers."
1796 ##########################################
1797 # avx2 optimization requirement check
1800 #pragma GCC push_options
1801 #pragma GCC target("avx2")
1803 #include <immintrin.h>
1804 static int bar(void *a) {
1805 __m256i x = *(__m256i *)a;
1806 return _mm256_testz_si256(x, x);
1808 int main(int argc, char *argv[]) { return bar(argv[0]); }
1810 if compile_object
"" ; then
1814 #########################################
1817 if test "$zlib" != "no" ; then
1820 int main(void) { zlibVersion(); return 0; }
1822 if compile_prog
"" "-lz" ; then
1825 error_exit
"zlib check failed" \
1826 "Make sure to have the zlib libs and headers installed."
1831 ##########################################
1834 if test "$lzo" != "no" ; then
1836 #include <lzo/lzo1x.h>
1837 int main(void) { lzo_version(); return 0; }
1839 if compile_prog
"" "-llzo2" ; then
1840 libs_softmmu
="$libs_softmmu -llzo2"
1843 if test "$lzo" = "yes"; then
1844 feature_not_found
"liblzo2" "Install liblzo2 devel"
1850 ##########################################
1853 if test "$snappy" != "no" ; then
1855 #include <snappy-c.h>
1856 int main(void) { snappy_max_compressed_length(4096); return 0; }
1858 if compile_prog
"" "-lsnappy" ; then
1859 libs_softmmu
="$libs_softmmu -lsnappy"
1862 if test "$snappy" = "yes"; then
1863 feature_not_found
"libsnappy" "Install libsnappy devel"
1869 ##########################################
1872 if test "$bzip2" != "no" ; then
1875 int main(void) { BZ2_bzlibVersion(); return 0; }
1877 if compile_prog
"" "-lbz2" ; then
1880 if test "$bzip2" = "yes"; then
1881 feature_not_found
"libbzip2" "Install libbzip2 devel"
1887 ##########################################
1890 if test "$seccomp" != "no" ; then
1893 libseccomp_minver
="2.1.0"
1896 libseccomp_minver
="2.2.0"
1899 libseccomp_minver
="2.2.3"
1902 libseccomp_minver
="2.3.0"
1905 libseccomp_minver
=""
1909 if test "$libseccomp_minver" != "" &&
1910 $pkg_config --atleast-version=$libseccomp_minver libseccomp
; then
1911 libs_softmmu
="$libs_softmmu $($pkg_config --libs libseccomp)"
1912 QEMU_CFLAGS
="$QEMU_CFLAGS $($pkg_config --cflags libseccomp)"
1915 if test "$seccomp" = "yes" ; then
1916 if test "$libseccomp_minver" != "" ; then
1917 feature_not_found
"libseccomp" \
1918 "Install libseccomp devel >= $libseccomp_minver"
1920 feature_not_found
"libseccomp" \
1921 "libseccomp is not supported for host cpu $cpu"
1927 ##########################################
1930 if test "$xen" != "no" ; then
1931 xen_libs
="-lxenstore -lxenctrl -lxenguest"
1932 xen_stable_libs
="-lxenforeignmemory -lxengnttab -lxenevtchn"
1934 # First we test whether Xen headers and libraries are available.
1935 # If no, we are done and there is no Xen support.
1936 # If yes, more tests are run to detect the Xen version.
1940 #include <xenctrl.h>
1945 if ! compile_prog
"" "$xen_libs" ; then
1947 if test "$xen" = "yes" ; then
1948 feature_not_found
"xen" "Install xen devel"
1954 cat > $TMPC <<EOF &&
1956 * If we have stable libs the we don't want the libxc compat
1957 * layers, regardless of what CFLAGS we may have been given.
1959 #undef XC_WANT_COMPAT_EVTCHN_API
1960 #undef XC_WANT_COMPAT_GNTTAB_API
1961 #undef XC_WANT_COMPAT_MAP_FOREIGN_API
1962 #include <xenctrl.h>
1963 #include <xenstore.h>
1964 #include <xenevtchn.h>
1965 #include <xengnttab.h>
1966 #include <xenforeignmemory.h>
1968 #include <xen/hvm/hvm_info_table.h>
1969 #if !defined(HVM_MAX_VCPUS)
1970 # error HVM_MAX_VCPUS not defined
1973 xc_interface *xc = NULL;
1974 xenforeignmemory_handle *xfmem;
1975 xenevtchn_handle *xe;
1976 xengnttab_handle *xg;
1977 xen_domain_handle_t handle;
1981 xc = xc_interface_open(0, 0, 0);
1982 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
1983 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
1984 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
1985 xc_hvm_create_ioreq_server(xc, 0, HVM_IOREQSRV_BUFIOREQ_ATOMIC, NULL);
1986 xc_domain_create(xc, 0, handle, 0, NULL, NULL);
1988 xfmem = xenforeignmemory_open(0, 0);
1989 xenforeignmemory_map(xfmem, 0, 0, 0, 0, 0);
1991 xe = xenevtchn_open(0, 0);
1994 xg = xengnttab_open(0, 0);
1995 xengnttab_map_grant_ref(xg, 0, 0, 0);
2000 compile_prog
"" "$xen_libs $xen_stable_libs"
2002 xen_ctrl_version
=471
2005 cat > $TMPC <<EOF &&
2006 #include <xenctrl.h>
2009 xc_interface *xc = NULL;
2010 xen_domain_handle_t handle;
2011 xc_domain_create(xc, 0, handle, 0, NULL, NULL);
2015 compile_prog
"" "$xen_libs"
2017 xen_ctrl_version
=470
2022 cat > $TMPC <<EOF &&
2023 #include <xenctrl.h>
2024 #include <xenstore.h>
2026 #include <xen/hvm/hvm_info_table.h>
2027 #if !defined(HVM_MAX_VCPUS)
2028 # error HVM_MAX_VCPUS not defined
2033 xc = xc_interface_open(0, 0, 0);
2034 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2035 xc_gnttab_open(NULL, 0);
2036 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2037 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2038 xc_hvm_create_ioreq_server(xc, 0, HVM_IOREQSRV_BUFIOREQ_ATOMIC, NULL);
2039 xc_reserved_device_memory_map(xc, 0, 0, 0, 0, NULL, 0);
2043 compile_prog
"" "$xen_libs"
2045 xen_ctrl_version
=460
2050 cat > $TMPC <<EOF &&
2051 #include <xenctrl.h>
2052 #include <xenstore.h>
2054 #include <xen/hvm/hvm_info_table.h>
2055 #if !defined(HVM_MAX_VCPUS)
2056 # error HVM_MAX_VCPUS not defined
2061 xc = xc_interface_open(0, 0, 0);
2062 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2063 xc_gnttab_open(NULL, 0);
2064 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2065 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2066 xc_hvm_create_ioreq_server(xc, 0, 0, NULL);
2070 compile_prog
"" "$xen_libs"
2072 xen_ctrl_version
=450
2076 cat > $TMPC <<EOF &&
2077 #include <xenctrl.h>
2078 #include <xenstore.h>
2080 #include <xen/hvm/hvm_info_table.h>
2081 #if !defined(HVM_MAX_VCPUS)
2082 # error HVM_MAX_VCPUS not defined
2087 xc = xc_interface_open(0, 0, 0);
2088 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2089 xc_gnttab_open(NULL, 0);
2090 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2091 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2095 compile_prog
"" "$xen_libs"
2097 xen_ctrl_version
=420
2101 if test "$xen" = "yes" ; then
2102 feature_not_found
"xen (unsupported version)" \
2103 "Install a supported xen (xen 4.2 or newer)"
2108 if test "$xen" = yes; then
2109 if test $xen_ctrl_version -ge 471 ; then
2110 libs_softmmu
="$xen_stable_libs $libs_softmmu"
2112 libs_softmmu
="$xen_libs $libs_softmmu"
2116 if test "$xen_pci_passthrough" != "no"; then
2117 if test "$xen" = "yes" && test "$linux" = "yes"; then
2118 xen_pci_passthrough
=yes
2120 if test "$xen_pci_passthrough" = "yes"; then
2121 error_exit
"User requested feature Xen PCI Passthrough" \
2122 " but this feature requires /sys from Linux"
2124 xen_pci_passthrough
=no
2128 if test "$xen_pv_domain_build" = "yes" &&
2129 test "$xen" != "yes"; then
2130 error_exit
"User requested Xen PV domain builder support" \
2131 "which requires Xen support."
2134 ##########################################
2136 if test "$sparse" != "no" ; then
2140 if test "$sparse" = "yes" ; then
2141 feature_not_found
"sparse" "Install sparse binary"
2147 ##########################################
2151 if $pkg_config --exists "x11"; then
2152 x11_cflags
=$
($pkg_config --cflags x11
)
2153 x11_libs
=$
($pkg_config --libs x11
)
2156 ##########################################
2159 if test "$gtkabi" = ""; then
2160 # The GTK ABI was not specified explicitly, so try whether 2.0 is available.
2161 # Use 3.0 as a fallback if that is available.
2162 if $pkg_config --exists "gtk+-2.0 >= 2.18.0"; then
2164 elif $pkg_config --exists "gtk+-3.0 >= 3.0.0"; then
2171 if test "$gtk" != "no"; then
2172 gtkpackage
="gtk+-$gtkabi"
2173 gtkx11package
="gtk+-x11-$gtkabi"
2174 if test "$gtkabi" = "3.0" ; then
2179 if $pkg_config --exists "$gtkpackage >= $gtkversion"; then
2180 gtk_cflags
=$
($pkg_config --cflags $gtkpackage)
2181 gtk_libs
=$
($pkg_config --libs $gtkpackage)
2182 gtk_version
=$
($pkg_config --modversion $gtkpackage)
2183 if $pkg_config --exists "$gtkx11package >= $gtkversion"; then
2184 gtk_cflags
="$gtk_cflags $x11_cflags"
2185 gtk_libs
="$gtk_libs $x11_libs"
2187 libs_softmmu
="$gtk_libs $libs_softmmu"
2189 elif test "$gtk" = "yes"; then
2190 feature_not_found
"gtk" "Install gtk2 or gtk3 devel"
2197 ##########################################
2201 # Unfortunately some distros have bad pkg-config information for gnutls
2202 # such that it claims to exist but you get a compiler error if you try
2203 # to use the options returned by --libs. Specifically, Ubuntu for --static
2204 # builds doesn't work:
2205 # https://bugs.launchpad.net/ubuntu/+source/gnutls26/+bug/1478035
2207 # So sanity check the cflags/libs before assuming gnutls can be used.
2208 if ! $pkg_config --exists "gnutls"; then
2213 compile_prog
"$($pkg_config --cflags gnutls)" "$($pkg_config --libs gnutls)"
2218 if test "$gnutls" != "no"; then
2219 if gnutls_works
; then
2220 gnutls_cflags
=$
($pkg_config --cflags gnutls
)
2221 gnutls_libs
=$
($pkg_config --libs gnutls
)
2222 libs_softmmu
="$gnutls_libs $libs_softmmu"
2223 libs_tools
="$gnutls_libs $libs_tools"
2224 QEMU_CFLAGS
="$QEMU_CFLAGS $gnutls_cflags"
2227 # gnutls_rnd requires >= 2.11.0
2228 if $pkg_config --exists "gnutls >= 2.11.0"; then
2234 if $pkg_config --exists 'gnutls >= 3.0'; then
2237 elif $pkg_config --exists 'gnutls >= 2.12'; then
2238 case $
($pkg_config --libs --static gnutls
) in
2256 elif test "$gnutls" = "yes"; then
2257 feature_not_found
"gnutls" "Install gnutls devel"
2267 # If user didn't give a --disable/enable-gcrypt flag,
2268 # then mark as disabled if user requested nettle
2269 # explicitly, or if gnutls links to nettle
2270 if test -z "$gcrypt"
2272 if test "$nettle" = "yes" ||
test "$gnutls_nettle" = "yes"
2278 # If user didn't give a --disable/enable-nettle flag,
2279 # then mark as disabled if user requested gcrypt
2280 # explicitly, or if gnutls links to gcrypt
2281 if test -z "$nettle"
2283 if test "$gcrypt" = "yes" ||
test "$gnutls_gcrypt" = "yes"
2289 has_libgcrypt_config
() {
2290 if ! has
"libgcrypt-config"
2295 if test -n "$cross_prefix"
2297 host=$
(libgcrypt-config
--host)
2298 if test "$host-" != $cross_prefix
2307 if test "$gcrypt" != "no"; then
2308 if has_libgcrypt_config
; then
2309 gcrypt_cflags
=$
(libgcrypt-config
--cflags)
2310 gcrypt_libs
=$
(libgcrypt-config
--libs)
2311 # Debian has remove -lgpg-error from libgcrypt-config
2312 # as it "spreads unnecessary dependencies" which in
2313 # turn breaks static builds...
2314 if test "$static" = "yes"
2316 gcrypt_libs
="$gcrypt_libs -lgpg-error"
2318 libs_softmmu
="$gcrypt_libs $libs_softmmu"
2319 libs_tools
="$gcrypt_libs $libs_tools"
2320 QEMU_CFLAGS
="$QEMU_CFLAGS $gcrypt_cflags"
2322 if test -z "$nettle"; then
2329 gcry_kdf_derive(NULL, 0, GCRY_KDF_PBKDF2,
2331 NULL, 0, 0, 0, NULL);
2335 if compile_prog
"$gcrypt_cflags" "$gcrypt_libs" ; then
2339 if test "$gcrypt" = "yes"; then
2340 feature_not_found
"gcrypt" "Install gcrypt devel"
2348 if test "$nettle" != "no"; then
2349 if $pkg_config --exists "nettle"; then
2350 nettle_cflags
=$
($pkg_config --cflags nettle
)
2351 nettle_libs
=$
($pkg_config --libs nettle
)
2352 nettle_version
=$
($pkg_config --modversion nettle
)
2353 libs_softmmu
="$nettle_libs $libs_softmmu"
2354 libs_tools
="$nettle_libs $libs_tools"
2355 QEMU_CFLAGS
="$QEMU_CFLAGS $nettle_cflags"
2360 #include <nettle/pbkdf2.h>
2362 pbkdf2_hmac_sha256(8, NULL, 1000, 8, NULL, 8, NULL);
2366 if compile_prog
"$nettle_cflags" "$nettle_libs" ; then
2370 if test "$nettle" = "yes"; then
2371 feature_not_found
"nettle" "Install nettle devel"
2378 if test "$gcrypt" = "yes" && test "$nettle" = "yes"
2380 error_exit
"Only one of gcrypt & nettle can be enabled"
2383 ##########################################
2384 # libtasn1 - only for the TLS creds/session test suite
2389 if $pkg_config --exists "libtasn1"; then
2390 tasn1_cflags
=$
($pkg_config --cflags libtasn1
)
2391 tasn1_libs
=$
($pkg_config --libs libtasn1
)
2397 ##########################################
2398 # getifaddrs (for tests/test-io-channel-socket )
2401 if ! check_include
"ifaddrs.h" ; then
2405 ##########################################
2408 if test "$vte" != "no"; then
2409 if test "$gtkabi" = "3.0"; then
2410 vteminversion
="0.32.0"
2411 if $pkg_config --exists "vte-2.91"; then
2412 vtepackage
="vte-2.91"
2414 vtepackage
="vte-2.90"
2418 vteminversion
="0.24.0"
2420 if $pkg_config --exists "$vtepackage >= $vteminversion"; then
2421 vte_cflags
=$
($pkg_config --cflags $vtepackage)
2422 vte_libs
=$
($pkg_config --libs $vtepackage)
2423 vteversion
=$
($pkg_config --modversion $vtepackage)
2424 libs_softmmu
="$vte_libs $libs_softmmu"
2426 elif test "$vte" = "yes"; then
2427 if test "$gtkabi" = "3.0"; then
2428 feature_not_found
"vte" "Install libvte-2.90/2.91 devel"
2430 feature_not_found
"vte" "Install libvte devel"
2437 ##########################################
2440 # Look for sdl configuration program (pkg-config or sdl-config). Try
2441 # sdl-config even without cross prefix, and favour pkg-config over sdl-config.
2443 if test "$sdlabi" = ""; then
2444 if $pkg_config --exists "sdl"; then
2446 elif $pkg_config --exists "sdl2"; then
2453 if test $sdlabi = "2.0"; then
2454 sdl_config
=$sdl2_config
2456 sdlconfigname
=sdl2_config
2457 elif test $sdlabi = "1.2"; then
2459 sdlconfigname
=sdl_config
2461 error_exit
"Unknown sdlabi $sdlabi, must be 1.2 or 2.0"
2464 if test "$(basename $sdl_config)" != $sdlconfigname && ! has
${sdl_config}; then
2465 sdl_config
=$sdlconfigname
2468 if $pkg_config $sdlname --exists; then
2469 sdlconfig
="$pkg_config $sdlname"
2470 sdlversion
=$
($sdlconfig --modversion 2>/dev
/null
)
2471 elif has
${sdl_config}; then
2472 sdlconfig
="$sdl_config"
2473 sdlversion
=$
($sdlconfig --version)
2475 if test "$sdl" = "yes" ; then
2476 feature_not_found
"sdl" "Install SDL devel"
2480 if test -n "$cross_prefix" && test "$(basename "$sdlconfig")" = sdl-config
; then
2481 echo warning
: using
"\"$sdlconfig\"" to detect cross-compiled sdl
>&2
2485 if test "$sdl" != "no" ; then
2488 #undef main /* We don't want SDL to override our main() */
2489 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
2491 sdl_cflags
=$
($sdlconfig --cflags 2>/dev
/null
)
2492 if test "$static" = "yes" ; then
2493 sdl_libs
=$
($sdlconfig --static-libs 2>/dev
/null
)
2495 sdl_libs
=$
($sdlconfig --libs 2>/dev
/null
)
2497 if compile_prog
"$sdl_cflags" "$sdl_libs" ; then
2498 if test $
(echo $sdlversion |
sed 's/[^0-9]//g') -lt 121 ; then
2504 # static link with sdl ? (note: sdl.pc's --static --libs is broken)
2505 if test "$sdl" = "yes" -a "$static" = "yes" ; then
2506 if test $?
= 0 && echo $sdl_libs |
grep -- -laa > /dev
/null
; then
2507 sdl_libs
="$sdl_libs $(aalib-config --static-libs 2>/dev/null)"
2508 sdl_cflags
="$sdl_cflags $(aalib-config --cflags 2>/dev/null)"
2510 if compile_prog
"$sdl_cflags" "$sdl_libs" ; then
2516 else # sdl not found
2517 if test "$sdl" = "yes" ; then
2518 feature_not_found
"sdl" "Install SDL devel"
2521 fi # sdl compile test
2524 if test "$sdl" = "yes" ; then
2527 #if defined(SDL_VIDEO_DRIVER_X11)
2528 #include <X11/XKBlib.h>
2530 #error No x11 support
2532 int main(void) { return 0; }
2534 if compile_prog
"$sdl_cflags $x11_cflags" "$sdl_libs $x11_libs" ; then
2535 sdl_cflags
="$sdl_cflags $x11_cflags"
2536 sdl_libs
="$sdl_libs $x11_libs"
2538 libs_softmmu
="$sdl_libs $libs_softmmu"
2541 ##########################################
2542 # RDMA needs OpenFabrics libraries
2543 if test "$rdma" != "no" ; then
2545 #include <rdma/rdma_cma.h>
2546 int main(void) { return 0; }
2548 rdma_libs
="-lrdmacm -libverbs"
2549 if compile_prog
"" "$rdma_libs" ; then
2551 libs_softmmu
="$libs_softmmu $rdma_libs"
2553 if test "$rdma" = "yes" ; then
2555 " OpenFabrics librdmacm/libibverbs not present." \
2557 " (1) Fast: Install infiniband packages from your distro." \
2558 " (2) Cleanest: Install libraries from www.openfabrics.org" \
2559 " (3) Also: Install softiwarp if you don't have RDMA hardware"
2566 ##########################################
2567 # VNC SASL detection
2568 if test "$vnc" = "yes" -a "$vnc_sasl" != "no" ; then
2570 #include <sasl/sasl.h>
2572 int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
2574 # Assuming Cyrus-SASL installed in /usr prefix
2576 vnc_sasl_libs
="-lsasl2"
2577 if compile_prog
"$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
2579 libs_softmmu
="$vnc_sasl_libs $libs_softmmu"
2580 QEMU_CFLAGS
="$QEMU_CFLAGS $vnc_sasl_cflags"
2582 if test "$vnc_sasl" = "yes" ; then
2583 feature_not_found
"vnc-sasl" "Install Cyrus SASL devel"
2589 ##########################################
2590 # VNC JPEG detection
2591 if test "$vnc" = "yes" -a "$vnc_jpeg" != "no" ; then
2594 #include <jpeglib.h>
2595 int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
2598 vnc_jpeg_libs
="-ljpeg"
2599 if compile_prog
"$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
2601 libs_softmmu
="$vnc_jpeg_libs $libs_softmmu"
2602 QEMU_CFLAGS
="$QEMU_CFLAGS $vnc_jpeg_cflags"
2604 if test "$vnc_jpeg" = "yes" ; then
2605 feature_not_found
"vnc-jpeg" "Install libjpeg-turbo devel"
2611 ##########################################
2613 if test "$vnc" = "yes" -a "$vnc_png" != "no" ; then
2615 //#include <stdio.h>
2619 png_structp png_ptr;
2620 png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
2621 return png_ptr != 0;
2624 if $pkg_config libpng
--exists; then
2625 vnc_png_cflags
=$
($pkg_config libpng
--cflags)
2626 vnc_png_libs
=$
($pkg_config libpng
--libs)
2629 vnc_png_libs
="-lpng"
2631 if compile_prog
"$vnc_png_cflags" "$vnc_png_libs" ; then
2633 libs_softmmu
="$vnc_png_libs $libs_softmmu"
2634 QEMU_CFLAGS
="$QEMU_CFLAGS $vnc_png_cflags"
2636 if test "$vnc_png" = "yes" ; then
2637 feature_not_found
"vnc-png" "Install libpng devel"
2643 ##########################################
2644 # fnmatch() probe, used for ACL routines
2647 #include <fnmatch.h>
2650 fnmatch("foo", "foo", 0);
2654 if compile_prog
"" "" ; then
2658 ##########################################
2659 # xfsctl() probe, used for raw-posix
2660 if test "$xfs" != "no" ; then
2662 #include <stddef.h> /* NULL */
2663 #include <xfs/xfs.h>
2666 xfsctl(NULL, 0, 0, NULL);
2670 if compile_prog
"" "" ; then
2673 if test "$xfs" = "yes" ; then
2674 feature_not_found
"xfs" "Instal xfsprogs/xfslibs devel"
2680 ##########################################
2681 # vde libraries probe
2682 if test "$vde" != "no" ; then
2683 vde_libs
="-lvdeplug"
2685 #include <libvdeplug.h>
2688 struct vde_open_args a = {0, 0, 0};
2694 if compile_prog
"" "$vde_libs" ; then
2696 libs_softmmu
="$vde_libs $libs_softmmu"
2697 libs_tools
="$vde_libs $libs_tools"
2699 if test "$vde" = "yes" ; then
2700 feature_not_found
"vde" "Install vde (Virtual Distributed Ethernet) devel"
2706 ##########################################
2707 # netmap support probe
2708 # Apart from looking for netmap headers, we make sure that the host API version
2709 # supports the netmap backend (>=11). The upper bound (15) is meant to simulate
2710 # a minor/major version number. Minor new features will be marked with values up
2711 # to 15, and if something happens that requires a change to the backend we will
2712 # move above 15, submit the backend fixes and modify this two bounds.
2713 if test "$netmap" != "no" ; then
2715 #include <inttypes.h>
2717 #include <net/netmap.h>
2718 #include <net/netmap_user.h>
2719 #if (NETMAP_API < 11) || (NETMAP_API > 15)
2722 int main(void) { return 0; }
2724 if compile_prog
"" "" ; then
2727 if test "$netmap" = "yes" ; then
2728 feature_not_found
"netmap"
2734 ##########################################
2735 # libcap-ng library probe
2736 if test "$cap_ng" != "no" ; then
2742 capng_capability_to_name(CAPNG_EFFECTIVE);
2746 if compile_prog
"" "$cap_libs" ; then
2748 libs_tools
="$cap_libs $libs_tools"
2750 if test "$cap_ng" = "yes" ; then
2751 feature_not_found
"cap_ng" "Install libcap-ng devel"
2757 ##########################################
2758 # Sound support libraries probe
2769 int main(void) { $exp }
2771 if compile_prog
"$cfl" "$lib" ; then
2774 error_exit
"$drv check failed" \
2775 "Make sure to have the $drv libs and headers installed."
2779 audio_drv_list
=$
(echo "$audio_drv_list" |
sed -e 's/,/ /g')
2780 for drv
in $audio_drv_list; do
2783 audio_drv_probe
$drv alsa
/asoundlib.h
-lasound \
2784 "return snd_pcm_close((snd_pcm_t *)0);"
2785 libs_softmmu
="-lasound $libs_softmmu"
2789 audio_drv_probe
$drv pulse
/pulseaudio.h
"-lpulse" \
2790 "pa_context_set_source_output_volume(NULL, 0, NULL, NULL, NULL); return 0;"
2791 libs_softmmu
="-lpulse $libs_softmmu"
2796 libs_softmmu
="-framework CoreAudio $libs_softmmu"
2800 libs_softmmu
="-lole32 -ldxguid $libs_softmmu"
2805 libs_softmmu
="$oss_lib $libs_softmmu"
2809 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
2813 echo "$audio_possible_drivers" |
grep -q "\<$drv\>" ||
{
2814 error_exit
"Unknown driver '$drv' selected" \
2815 "Possible drivers are: $audio_possible_drivers"
2821 ##########################################
2824 if test "$brlapi" != "no" ; then
2825 brlapi_libs
="-lbrlapi"
2829 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
2831 if compile_prog
"" "$brlapi_libs" ; then
2833 libs_softmmu
="$brlapi_libs $libs_softmmu"
2835 if test "$brlapi" = "yes" ; then
2836 feature_not_found
"brlapi" "Install brlapi devel"
2842 ##########################################
2844 if test "$curses" != "no" ; then
2845 if test "$mingw32" = "yes" ; then
2846 curses_list
="$($pkg_config --libs ncurses 2>/dev/null):-lpdcurses"
2848 curses_list
="$($pkg_config --libs ncurses 2>/dev/null):-lncurses:-lcurses"
2854 const char *s = curses_version();
2860 for curses_lib
in $curses_list; do
2862 if compile_prog
"" "$curses_lib" ; then
2864 libs_softmmu
="$curses_lib $libs_softmmu"
2869 if test "$curses_found" = "yes" ; then
2872 if test "$curses" = "yes" ; then
2873 feature_not_found
"curses" "Install ncurses devel"
2879 ##########################################
2881 if test "$curl" != "no" ; then
2882 if $pkg_config libcurl
--exists; then
2883 curlconfig
="$pkg_config libcurl"
2885 curlconfig
=curl-config
2888 #include <curl/curl.h>
2889 int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
2891 curl_cflags
=$
($curlconfig --cflags 2>/dev
/null
)
2892 curl_libs
=$
($curlconfig --libs 2>/dev
/null
)
2893 if compile_prog
"$curl_cflags" "$curl_libs" ; then
2896 if test "$curl" = "yes" ; then
2897 feature_not_found
"curl" "Install libcurl devel"
2903 ##########################################
2904 # bluez support probe
2905 if test "$bluez" != "no" ; then
2907 #include <bluetooth/bluetooth.h>
2908 int main(void) { return bt_error(0); }
2910 bluez_cflags
=$
($pkg_config --cflags bluez
2>/dev
/null
)
2911 bluez_libs
=$
($pkg_config --libs bluez
2>/dev
/null
)
2912 if compile_prog
"$bluez_cflags" "$bluez_libs" ; then
2914 libs_softmmu
="$bluez_libs $libs_softmmu"
2916 if test "$bluez" = "yes" ; then
2917 feature_not_found
"bluez" "Install bluez-libs/libbluetooth devel"
2923 ##########################################
2924 # glib support probe
2927 glib_modules
=gthread-2.0
2928 if test "$modules" = yes; then
2929 glib_modules
="$glib_modules gmodule-2.0"
2932 for i
in $glib_modules; do
2933 if $pkg_config --atleast-version=$glib_req_ver $i; then
2934 glib_cflags
=$
($pkg_config --cflags $i)
2935 glib_libs
=$
($pkg_config --libs $i)
2936 CFLAGS
="$glib_cflags $CFLAGS"
2937 LIBS
="$glib_libs $LIBS"
2938 libs_qga
="$glib_libs $libs_qga"
2940 error_exit
"glib-$glib_req_ver $i is required to compile QEMU"
2944 # Sanity check that the current size_t matches the
2945 # size that glib thinks it should be. This catches
2946 # problems on multi-arch where people try to build
2947 # 32-bit QEMU while pointing at 64-bit glib headers
2952 #define QEMU_BUILD_BUG_ON(x) \
2953 typedef char qemu_build_bug_on[(x)?-1:1] __attribute__((unused));
2956 QEMU_BUILD_BUG_ON(sizeof(size_t) != GLIB_SIZEOF_SIZE_T);
2961 if ! compile_prog
"$CFLAGS" "$LIBS" ; then
2962 error_exit
"sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T."\
2963 "You probably need to set PKG_CONFIG_LIBDIR"\
2964 "to point to the right pkg-config files for your"\
2968 # g_test_trap_subprocess added in 2.38. Used by some tests.
2970 if test "$mingw32" = "yes" ||
! $pkg_config --atleast-version=2.38 glib-2.0
; then
2974 # Silence clang 3.5.0 warnings about glib attribute __alloc_size__ usage
2977 int main(void) { return 0; }
2979 if ! compile_prog
"$glib_cflags -Werror" "$glib_libs" ; then
2980 if cc_has_warning_flag
"-Wno-unknown-attributes"; then
2981 glib_cflags
="-Wno-unknown-attributes $glib_cflags"
2982 CFLAGS
="-Wno-unknown-attributes $CFLAGS"
2986 ##########################################
2987 # SHA command probe for modules
2988 if test "$modules" = yes; then
2989 shacmd_probe
="sha1sum sha1 shasum"
2990 for c
in $shacmd_probe; do
2996 if test "$shacmd" = ""; then
2997 error_exit
"one of the checksum commands is required to enable modules: $shacmd_probe"
3001 ##########################################
3002 # pixman support probe
3004 if test "$pixman" = ""; then
3005 if test "$want_tools" = "no" -a "$softmmu" = "no"; then
3007 elif $pkg_config --atleast-version=0.21.8 pixman-1
> /dev
/null
2>&1; then
3013 if test "$pixman" = "none"; then
3014 if test "$want_tools" != "no" -o "$softmmu" != "no"; then
3015 error_exit
"pixman disabled but system emulation or tools build" \
3016 "enabled. You can turn off pixman only if you also" \
3017 "disable all system emulation targets and the tools" \
3018 "build with '--disable-tools --disable-system'."
3022 elif test "$pixman" = "system"; then
3023 # pixman version has been checked above
3024 pixman_cflags
=$
($pkg_config --cflags pixman-1
)
3025 pixman_libs
=$
($pkg_config --libs pixman-1
)
3027 if test ! -d ${source_path}/pixman
/pixman
; then
3028 error_exit
"pixman >= 0.21.8 not present. Your options:" \
3029 " (1) Preferred: Install the pixman devel package (any recent" \
3030 " distro should have packages as Xorg needs pixman too)." \
3031 " (2) Fetch the pixman submodule, using:" \
3032 " git submodule update --init pixman"
3034 mkdir
-p pixman
/pixman
3035 pixman_cflags
="-I\$(SRC_PATH)/pixman/pixman -I\$(BUILD_DIR)/pixman/pixman"
3036 pixman_libs
="-L\$(BUILD_DIR)/pixman/pixman/.libs -lpixman-1"
3039 ##########################################
3042 if test "$cap" != "no" ; then
3045 #include <sys/capability.h>
3046 int main(void) { cap_t caps; caps = cap_init(); return caps != NULL; }
3048 if compile_prog
"" "-lcap" ; then
3055 ##########################################
3057 PTHREADLIBS_LIST
="-pthread -lpthread -lpthreadGC2"
3061 #include <pthread.h>
3062 static void *f(void *p) { return NULL; }
3065 pthread_create(&thread, 0, f, 0);
3069 if compile_prog
"" "" ; then
3072 for pthread_lib
in $PTHREADLIBS_LIST; do
3073 if compile_prog
"" "$pthread_lib" ; then
3076 for lib_entry
in $LIBS; do
3077 if test "$lib_entry" = "$pthread_lib"; then
3082 if test "$found" = "no"; then
3083 LIBS
="$pthread_lib $LIBS"
3085 PTHREAD_LIB
="$pthread_lib"
3091 if test "$mingw32" != yes -a "$pthread" = no
; then
3092 error_exit
"pthread check failed" \
3093 "Make sure to have the pthread libs and headers installed."
3096 # check for pthread_setname_np
3097 pthread_setname_np
=no
3099 #include <pthread.h>
3101 static void *f(void *p) { return NULL; }
3105 pthread_create(&thread, 0, f, 0);
3106 pthread_setname_np(thread, "QEMU");
3110 if compile_prog
"" "$pthread_lib" ; then
3111 pthread_setname_np
=yes
3114 ##########################################
3116 if test "$rbd" != "no" ; then
3119 #include <rbd/librbd.h>
3122 rados_create(&cluster, NULL);
3126 rbd_libs
="-lrbd -lrados"
3127 if compile_prog
"" "$rbd_libs" ; then
3130 if test "$rbd" = "yes" ; then
3131 feature_not_found
"rados block device" "Install librbd/ceph devel"
3137 ##########################################
3139 min_libssh2_version
=1.2.8
3140 if test "$libssh2" != "no" ; then
3141 if $pkg_config --atleast-version=$min_libssh2_version libssh2
; then
3142 libssh2_cflags
=$
($pkg_config libssh2
--cflags)
3143 libssh2_libs
=$
($pkg_config libssh2
--libs)
3146 if test "$libssh2" = "yes" ; then
3147 error_exit
"libssh2 >= $min_libssh2_version required for --enable-libssh2"
3153 ##########################################
3154 # libssh2_sftp_fsync probe
3156 if test "$libssh2" = "yes"; then
3159 #include <libssh2.h>
3160 #include <libssh2_sftp.h>
3162 LIBSSH2_SESSION *session;
3164 LIBSSH2_SFTP_HANDLE *sftp_handle;
3165 session = libssh2_session_init ();
3166 sftp = libssh2_sftp_init (session);
3167 sftp_handle = libssh2_sftp_open (sftp, "/", 0, 0);
3168 libssh2_sftp_fsync (sftp_handle);
3172 # libssh2_cflags/libssh2_libs defined in previous test.
3173 if compile_prog
"$libssh2_cflags" "$libssh2_libs" ; then
3174 QEMU_CFLAGS
="-DHAS_LIBSSH2_SFTP_FSYNC $QEMU_CFLAGS"
3178 ##########################################
3181 if test "$linux_aio" != "no" ; then
3184 #include <sys/eventfd.h>
3186 int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
3188 if compile_prog
"" "-laio" ; then
3191 if test "$linux_aio" = "yes" ; then
3192 feature_not_found
"linux AIO" "Install libaio devel"
3198 ##########################################
3199 # TPM passthrough is only on x86 Linux
3201 if test "$targetos" = Linux
&& test "$cpu" = i386
-o "$cpu" = x86_64
; then
3202 tpm_passthrough
=$tpm
3207 ##########################################
3210 if test "$attr" != "no" ; then
3213 #include <sys/types.h>
3214 #ifdef CONFIG_LIBATTR
3215 #include <attr/xattr.h>
3217 #include <sys/xattr.h>
3219 int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
3221 if compile_prog
"" "" ; then
3223 # Older distros have <attr/xattr.h>, and need -lattr:
3224 elif compile_prog
"-DCONFIG_LIBATTR" "-lattr" ; then
3229 if test "$attr" = "yes" ; then
3230 feature_not_found
"ATTR" "Install libc6 or libattr devel"
3236 ##########################################
3239 #include <sys/types.h>
3240 #include <sys/uio.h>
3242 int main(void) { return sizeof(struct iovec); }
3245 if compile_prog
"" "" ; then
3249 ##########################################
3252 #include <sys/types.h>
3253 #include <sys/uio.h>
3255 int main(void) { return preadv(0, 0, 0, 0); }
3258 if compile_prog
"" "" ; then
3262 ##########################################
3264 # fdt support is mandatory for at least some target architectures,
3265 # so insist on it if we're building those system emulators.
3267 for target
in $target_list; do
3269 aarch64
*-softmmu|arm
*-softmmu|ppc
*-softmmu|microblaze
*-softmmu)
3275 if test "$fdt_required" = "yes"; then
3276 if test "$fdt" = "no"; then
3277 error_exit
"fdt disabled but some requested targets require it." \
3278 "You can turn off fdt only if you also disable all the system emulation" \
3279 "targets which need it (by specifying a cut down --target-list)."
3284 if test "$fdt" != "no" ; then
3286 # explicitly check for libfdt_env.h as it is missing in some stable installs
3287 # and test for required functions to make sure we are on a version >= 1.4.0
3290 #include <libfdt_env.h>
3291 int main(void) { fdt_get_property_by_offset(0, 0, 0); return 0; }
3293 if compile_prog
"" "$fdt_libs" ; then
3294 # system DTC is good - use it
3296 elif test -d ${source_path}/dtc
/libfdt
; then
3297 # have submodule DTC - use it
3301 if [ "$pwd_is_source_path" != "y" ] ; then
3302 symlink
"$source_path/dtc/Makefile" "dtc/Makefile"
3303 symlink
"$source_path/dtc/scripts" "dtc/scripts"
3305 fdt_cflags
="-I\$(SRC_PATH)/dtc/libfdt"
3306 fdt_libs
="-L\$(BUILD_DIR)/dtc/libfdt $fdt_libs"
3307 elif test "$fdt" = "yes" ; then
3308 # have neither and want - prompt for system/submodule install
3309 error_exit
"DTC (libfdt) version >= 1.4.0 not present. Your options:" \
3310 " (1) Preferred: Install the DTC (libfdt) devel package" \
3311 " (2) Fetch the DTC submodule, using:" \
3312 " git submodule update --init dtc"
3314 # don't have and don't want
3320 libs_softmmu
="$libs_softmmu $fdt_libs"
3322 ##########################################
3323 # opengl probe (for sdl2, gtk, milkymist-tmu2)
3325 if test "$opengl" != "no" ; then
3326 opengl_pkgs
="epoxy libdrm gbm"
3327 if $pkg_config $opengl_pkgs x11
; then
3328 opengl_cflags
="$($pkg_config --cflags $opengl_pkgs) $x11_cflags"
3329 opengl_libs
="$($pkg_config --libs $opengl_pkgs) $x11_libs"
3331 if test "$gtk" = "yes" && $pkg_config --exists "$gtkpackage >= 3.16"; then
3335 if test "$opengl" = "yes" ; then
3336 feature_not_found
"opengl" "Please install opengl (mesa) devel pkgs: $opengl_pkgs"
3344 if test "$opengl" = "yes"; then
3346 #include <epoxy/egl.h>
3347 #ifndef EGL_MESA_image_dma_buf_export
3348 # error mesa/epoxy lacks support for dmabufs (mesa 10.6+)
3350 int main(void) { return 0; }
3352 if compile_prog
"" "" ; then
3357 ##########################################
3359 if test "$archipelago" != "no" ; then
3362 #include <xseg/xseg.h>
3363 #include <xseg/protocol.h>
3369 archipelago_libs
=-lxseg
3370 if compile_prog
"" "$archipelago_libs"; then
3372 libs_tools
="$archipelago_libs $libs_tools"
3373 libs_softmmu
="$archipelago_libs $libs_softmmu"
3375 echo "WARNING: Please check the licenses of QEMU and libxseg carefully."
3376 echo "GPLv3 versions of libxseg may not be compatible with QEMU's"
3377 echo "license and therefore prevent redistribution."
3379 echo "To disable Archipelago, use --disable-archipelago"
3381 if test "$archipelago" = "yes" ; then
3382 feature_not_found
"Archipelago backend support" "Install libxseg devel"
3389 ##########################################
3391 if test "$glusterfs" != "no" ; then
3392 if $pkg_config --atleast-version=3 glusterfs-api
; then
3394 glusterfs_cflags
=$
($pkg_config --cflags glusterfs-api
)
3395 glusterfs_libs
=$
($pkg_config --libs glusterfs-api
)
3396 if $pkg_config --atleast-version=4 glusterfs-api
; then
3397 glusterfs_xlator_opt
="yes"
3399 if $pkg_config --atleast-version=5 glusterfs-api
; then
3400 glusterfs_discard
="yes"
3402 if $pkg_config --atleast-version=6 glusterfs-api
; then
3403 glusterfs_zerofill
="yes"
3406 if test "$glusterfs" = "yes" ; then
3407 feature_not_found
"GlusterFS backend support" \
3408 "Install glusterfs-api devel >= 3"
3414 # Check for inotify functions when we are building linux-user
3415 # emulator. This is done because older glibc versions don't
3416 # have syscall stubs for these implemented. In that case we
3417 # don't provide them even if kernel supports them.
3421 #include <sys/inotify.h>
3426 /* try to start inotify */
3427 return inotify_init();
3430 if compile_prog
"" "" ; then
3436 #include <sys/inotify.h>
3441 /* try to start inotify */
3442 return inotify_init1(0);
3445 if compile_prog
"" "" ; then
3449 # check if utimensat and futimens are supported
3452 #define _ATFILE_SOURCE
3455 #include <sys/stat.h>
3459 utimensat(AT_FDCWD, "foo", NULL, 0);
3464 if compile_prog
"" "" ; then
3468 # check if pipe2 is there
3477 return pipe2(pipefd, O_CLOEXEC);
3480 if compile_prog
"" "" ; then
3484 # check if accept4 is there
3487 #include <sys/socket.h>
3492 accept4(0, NULL, NULL, SOCK_CLOEXEC);
3496 if compile_prog
"" "" ; then
3500 # check if tee/splice is there. vmsplice was added same time.
3510 len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
3511 splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
3515 if compile_prog
"" "" ; then
3519 ##########################################
3522 if test "$numa" != "no" ; then
3525 int main(void) { return numa_available(); }
3528 if compile_prog
"" "-lnuma" ; then
3530 libs_softmmu
="-lnuma $libs_softmmu"
3532 if test "$numa" = "yes" ; then
3533 feature_not_found
"numa" "install numactl devel"
3539 if test "$tcmalloc" = "yes" && test "$jemalloc" = "yes" ; then
3540 echo "ERROR: tcmalloc && jemalloc can't be used at the same time"
3544 ##########################################
3547 if test "$tcmalloc" = "yes" ; then
3550 int main(void) { malloc(1); return 0; }
3553 if compile_prog
"" "-ltcmalloc" ; then
3554 LIBS
="-ltcmalloc $LIBS"
3556 feature_not_found
"tcmalloc" "install gperftools devel"
3560 ##########################################
3563 if test "$jemalloc" = "yes" ; then
3566 int main(void) { malloc(1); return 0; }
3569 if compile_prog
"" "-ljemalloc" ; then
3570 LIBS
="-ljemalloc $LIBS"
3572 feature_not_found
"jemalloc" "install jemalloc devel"
3576 ##########################################
3581 #include <sys/syscall.h>
3583 int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
3586 if compile_prog
"" "" ; then
3590 # check if eventfd is supported
3593 #include <sys/eventfd.h>
3597 return eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
3600 if compile_prog
"" "" ; then
3604 # check if memfd is supported
3607 #include <sys/memfd.h>
3611 return memfd_create("foo", MFD_ALLOW_SEALING);
3614 if compile_prog
"" "" ; then
3620 # check for fallocate
3627 fallocate(0, 0, 0, 0);
3631 if compile_prog
"" "" ; then
3635 # check for fallocate hole punching
3636 fallocate_punch_hole
=no
3639 #include <linux/falloc.h>
3643 fallocate(0, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 0);
3647 if compile_prog
"" "" ; then
3648 fallocate_punch_hole
=yes
3651 # check that fallocate supports range zeroing inside the file
3652 fallocate_zero_range
=no
3655 #include <linux/falloc.h>
3659 fallocate(0, FALLOC_FL_ZERO_RANGE, 0, 0);
3663 if compile_prog
"" "" ; then
3664 fallocate_zero_range
=yes
3667 # check for posix_fallocate
3674 posix_fallocate(0, 0, 0);
3678 if compile_prog
"" "" ; then
3682 # check for sync_file_range
3689 sync_file_range(0, 0, 0, 0);
3693 if compile_prog
"" "" ; then
3697 # check for linux/fiemap.h and FS_IOC_FIEMAP
3700 #include <sys/ioctl.h>
3701 #include <linux/fs.h>
3702 #include <linux/fiemap.h>
3706 ioctl(0, FS_IOC_FIEMAP, 0);
3710 if compile_prog
"" "" ; then
3725 if compile_prog
"" "" ; then
3729 # check for ppoll support
3736 struct pollfd pfd = { .fd = 0, .events = 0, .revents = 0 };
3737 ppoll(&pfd, 1, 0, 0);
3741 if compile_prog
"" "" ; then
3745 # check for prctl(PR_SET_TIMERSLACK , ... ) support
3746 prctl_pr_set_timerslack
=no
3748 #include <sys/prctl.h>
3752 prctl(PR_SET_TIMERSLACK, 1, 0, 0, 0);
3756 if compile_prog
"" "" ; then
3757 prctl_pr_set_timerslack
=yes
3760 # check for epoll support
3763 #include <sys/epoll.h>
3771 if compile_prog
"" "" ; then
3775 # epoll_create1 is a later addition
3776 # so we must check separately for its presence
3779 #include <sys/epoll.h>
3783 /* Note that we use epoll_create1 as a value, not as
3784 * a function being called. This is necessary so that on
3785 * old SPARC glibc versions where the function was present in
3786 * the library but not declared in the header file we will
3787 * fail the configure check. (Otherwise we will get a compiler
3788 * warning but not an error, and will proceed to fail the
3789 * qemu compile where we compile with -Werror.)
3791 return (int)(uintptr_t)&epoll_create1;
3794 if compile_prog
"" "" ; then
3798 # check for sendfile support
3801 #include <sys/sendfile.h>
3805 return sendfile(0, 0, 0, 0);
3808 if compile_prog
"" "" ; then
3812 # check for timerfd support (glibc 2.8 and newer)
3815 #include <sys/timerfd.h>
3819 return(timerfd_create(CLOCK_REALTIME, 0));
3822 if compile_prog
"" "" ; then
3826 # check for setns and unshare support
3839 if compile_prog
"" "" ; then
3843 # Check if tools are available to build documentation.
3844 if test "$docs" != "no" ; then
3845 if has makeinfo
&& has pod2man
; then
3848 if test "$docs" = "yes" ; then
3849 feature_not_found
"docs" "Install texinfo and Perl/perl-podlators"
3855 # Search for bswap_32 function
3858 #include <byteswap.h>
3859 int main(void) { return bswap_32(0); }
3861 if compile_prog
"" "" ; then
3865 # Search for bswap32 function
3868 #include <sys/endian.h>
3869 #include <sys/types.h>
3870 #include <machine/bswap.h>
3871 int main(void) { return bswap32(0); }
3873 if compile_prog
"" "" ; then
3877 ##########################################
3878 # Do we have libiscsi >= 1.9.0
3879 if test "$libiscsi" != "no" ; then
3880 if $pkg_config --atleast-version=1.9.0 libiscsi
; then
3882 libiscsi_cflags
=$
($pkg_config --cflags libiscsi
)
3883 libiscsi_libs
=$
($pkg_config --libs libiscsi
)
3885 if test "$libiscsi" = "yes" ; then
3886 feature_not_found
"libiscsi" "Install libiscsi >= 1.9.0"
3892 ##########################################
3896 int main(int argc, char **argv) { return isnan(sin((double)argc)); }
3898 if compile_prog
"" "" ; then
3900 elif compile_prog
"" "-lm" ; then
3902 libs_qga
="-lm $libs_qga"
3904 error_exit
"libm check failed"
3907 ##########################################
3909 # uClibc provides 2 versions of clock_gettime(), one with realtime
3910 # support and one without. This means that the clock_gettime() don't
3911 # need -lrt. We still need it for timer_create() so we check for this
3912 # function in addition.
3917 timer_create(CLOCK_REALTIME, NULL, NULL);
3918 return clock_gettime(CLOCK_REALTIME, NULL);
3922 if compile_prog
"" "" ; then
3924 # we need pthread for static linking. use previous pthread test result
3925 elif compile_prog
"" "$pthread_lib -lrt" ; then
3927 libs_qga
="$libs_qga -lrt"
3930 if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
3931 "$aix" != "yes" -a "$haiku" != "yes" ; then
3932 libs_softmmu
="-lutil $libs_softmmu"
3935 ##########################################
3937 if test "$spice" != "no" ; then
3940 int main(void) { spice_server_new(); return 0; }
3942 spice_cflags
=$
($pkg_config --cflags spice-protocol spice-server
2>/dev
/null
)
3943 spice_libs
=$
($pkg_config --libs spice-protocol spice-server
2>/dev
/null
)
3944 if $pkg_config --atleast-version=0.12.0 spice-server
&& \
3945 $pkg_config --atleast-version=0.12.3 spice-protocol
&& \
3946 compile_prog
"$spice_cflags" "$spice_libs" ; then
3948 libs_softmmu
="$libs_softmmu $spice_libs"
3949 QEMU_CFLAGS
="$QEMU_CFLAGS $spice_cflags"
3950 spice_protocol_version
=$
($pkg_config --modversion spice-protocol
)
3951 spice_server_version
=$
($pkg_config --modversion spice-server
)
3953 if test "$spice" = "yes" ; then
3954 feature_not_found
"spice" \
3955 "Install spice-server(>=0.12.0) and spice-protocol(>=0.12.3) devel"
3961 # check for smartcard support
3963 if test "$smartcard" != "no"; then
3964 if $pkg_config libcacard
; then
3965 libcacard_cflags
=$
($pkg_config --cflags libcacard
)
3966 libcacard_libs
=$
($pkg_config --libs libcacard
)
3967 QEMU_CFLAGS
="$QEMU_CFLAGS $libcacard_cflags"
3968 libs_softmmu
="$libs_softmmu $libcacard_libs"
3971 if test "$smartcard" = "yes"; then
3972 feature_not_found
"smartcard" "Install libcacard devel"
3979 if test "$libusb" != "no" ; then
3980 if $pkg_config --atleast-version=1.0.13 libusb-1.0
; then
3982 libusb_cflags
=$
($pkg_config --cflags libusb-1.0
)
3983 libusb_libs
=$
($pkg_config --libs libusb-1.0
)
3984 QEMU_CFLAGS
="$QEMU_CFLAGS $libusb_cflags"
3985 libs_softmmu
="$libs_softmmu $libusb_libs"
3987 if test "$libusb" = "yes"; then
3988 feature_not_found
"libusb" "Install libusb devel >= 1.0.13"
3994 # check for usbredirparser for usb network redirection support
3995 if test "$usb_redir" != "no" ; then
3996 if $pkg_config --atleast-version=0.6 libusbredirparser-0.5
; then
3998 usb_redir_cflags
=$
($pkg_config --cflags libusbredirparser-0.5
)
3999 usb_redir_libs
=$
($pkg_config --libs libusbredirparser-0.5
)
4000 QEMU_CFLAGS
="$QEMU_CFLAGS $usb_redir_cflags"
4001 libs_softmmu
="$libs_softmmu $usb_redir_libs"
4003 if test "$usb_redir" = "yes"; then
4004 feature_not_found
"usb-redir" "Install usbredir devel"
4010 ##########################################
4011 # check if we have VSS SDK headers for win
4013 if test "$mingw32" = "yes" -a "$guest_agent" != "no" -a "$vss_win32_sdk" != "no" ; then
4014 case "$vss_win32_sdk" in
4015 "") vss_win32_include
="-isystem $source_path" ;;
4016 *\
*) # The SDK is installed in "Program Files" by default, but we cannot
4017 # handle path with spaces. So we symlink the headers into ".sdk/vss".
4018 vss_win32_include
="-isystem $source_path/.sdk/vss"
4019 symlink
"$vss_win32_sdk/inc" "$source_path/.sdk/vss/inc"
4021 *) vss_win32_include
="-isystem $vss_win32_sdk"
4024 #define __MIDL_user_allocate_free_DEFINED__
4025 #include <inc/win2003/vss.h>
4026 int main(void) { return VSS_CTX_BACKUP; }
4028 if compile_prog
"$vss_win32_include" "" ; then
4029 guest_agent_with_vss
="yes"
4030 QEMU_CFLAGS
="$QEMU_CFLAGS $vss_win32_include"
4031 libs_qga
="-lole32 -loleaut32 -lshlwapi -lstdc++ -Wl,--enable-stdcall-fixup $libs_qga"
4032 qga_vss_provider
="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb"
4034 if test "$vss_win32_sdk" != "" ; then
4035 echo "ERROR: Please download and install Microsoft VSS SDK:"
4036 echo "ERROR: http://www.microsoft.com/en-us/download/details.aspx?id=23490"
4037 echo "ERROR: On POSIX-systems, you can extract the SDK headers by:"
4038 echo "ERROR: scripts/extract-vsssdk-headers setup.exe"
4039 echo "ERROR: The headers are extracted in the directory \`inc'."
4040 feature_not_found
"VSS support"
4042 guest_agent_with_vss
="no"
4046 ##########################################
4047 # lookup Windows platform SDK (if not specified)
4048 # The SDK is needed only to build .tlb (type library) file of guest agent
4049 # VSS provider from the source. It is usually unnecessary because the
4050 # pre-compiled .tlb file is included.
4052 if test "$mingw32" = "yes" -a "$guest_agent" != "no" -a "$guest_agent_with_vss" = "yes" ; then
4053 if test -z "$win_sdk"; then
4054 programfiles
="$PROGRAMFILES"
4055 test -n "$PROGRAMW6432" && programfiles
="$PROGRAMW6432"
4056 if test -n "$programfiles"; then
4057 win_sdk
=$
(ls -d "$programfiles/Microsoft SDKs/Windows/v"* |
tail -1) 2>/dev
/null
4059 feature_not_found
"Windows SDK"
4061 elif test "$win_sdk" = "no"; then
4066 ##########################################
4067 # check if mingw environment provides a recent ntddscsi.h
4068 if test "$mingw32" = "yes" -a "$guest_agent" != "no"; then
4070 #include <windows.h>
4071 #include <ntddscsi.h>
4073 #if !defined(IOCTL_SCSI_GET_ADDRESS)
4074 #error Missing required ioctl definitions
4076 SCSI_ADDRESS addr = { .Lun = 0, .TargetId = 0, .PathId = 0 };
4080 if compile_prog
"" "" ; then
4081 guest_agent_ntddscsi
=yes
4082 libs_qga
="-lsetupapi $libs_qga"
4086 ##########################################
4087 # virgl renderer probe
4089 if test "$virglrenderer" != "no" ; then
4091 #include <virglrenderer.h>
4092 int main(void) { virgl_renderer_poll(); return 0; }
4094 virgl_cflags
=$
($pkg_config --cflags virglrenderer
2>/dev
/null
)
4095 virgl_libs
=$
($pkg_config --libs virglrenderer
2>/dev
/null
)
4096 if $pkg_config virglrenderer
>/dev
/null
2>&1 && \
4097 compile_prog
"$virgl_cflags" "$virgl_libs" ; then
4100 if test "$virglrenderer" = "yes" ; then
4101 feature_not_found
"virglrenderer"
4107 ##########################################
4108 # check if we have fdatasync
4114 #if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
4115 return fdatasync(0);
4117 #error Not supported
4121 if compile_prog
"" "" ; then
4125 ##########################################
4126 # check if we have madvise
4130 #include <sys/types.h>
4131 #include <sys/mman.h>
4133 int main(void) { return madvise(NULL, 0, MADV_DONTNEED); }
4135 if compile_prog
"" "" ; then
4139 ##########################################
4140 # check if we have posix_madvise
4144 #include <sys/mman.h>
4146 int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }
4148 if compile_prog
"" "" ; then
4152 ##########################################
4153 # check if we have posix_syslog
4158 int main(void) { openlog("qemu", LOG_PID, LOG_DAEMON); syslog(LOG_INFO, "configure"); return 0; }
4160 if compile_prog
"" "" ; then
4164 ##########################################
4165 # check if trace backend exists
4167 $python "$source_path/scripts/tracetool.py" "--backends=$trace_backends" --check-backends > /dev
/null
2> /dev
/null
4168 if test "$?" -ne 0 ; then
4169 error_exit
"invalid trace backends" \
4170 "Please choose supported trace backends."
4173 ##########################################
4174 # For 'ust' backend, test if ust headers are present
4175 if have_backend
"ust"; then
4177 #include <lttng/tracepoint.h>
4178 int main(void) { return 0; }
4180 if compile_prog
"" "" ; then
4181 if $pkg_config lttng-ust
--exists; then
4182 lttng_ust_libs
=$
($pkg_config --libs lttng-ust
)
4184 lttng_ust_libs
="-llttng-ust"
4186 if $pkg_config liburcu-bp
--exists; then
4187 urcu_bp_libs
=$
($pkg_config --libs liburcu-bp
)
4189 urcu_bp_libs
="-lurcu-bp"
4192 LIBS
="$lttng_ust_libs $urcu_bp_libs $LIBS"
4193 libs_qga
="$lttng_ust_libs $urcu_bp_libs $libs_qga"
4195 error_exit
"Trace backend 'ust' missing lttng-ust header files"
4199 ##########################################
4200 # For 'dtrace' backend, test if 'dtrace' command is present
4201 if have_backend
"dtrace"; then
4202 if ! has
'dtrace' ; then
4203 error_exit
"dtrace command is not found in PATH $PATH"
4205 trace_backend_stap
="no"
4206 if has
'stap' ; then
4207 trace_backend_stap
="yes"
4211 ##########################################
4212 # check and set a backend for coroutine
4214 # We prefer ucontext, but it's not always possible. The fallback
4215 # is sigcontext. gthread is not selectable except explicitly, because
4216 # it is not functional enough to run QEMU proper. (It is occasionally
4217 # useful for debugging purposes.) On Windows the only valid backend
4218 # is the Windows-specific one.
4221 if test "$darwin" != "yes"; then
4223 #include <ucontext.h>
4224 #ifdef __stub_makecontext
4225 #error Ignoring glibc stub makecontext which will always fail
4227 int main(void) { makecontext(0, 0, 0); return 0; }
4229 if compile_prog
"" "" ; then
4234 if test "$coroutine" = ""; then
4235 if test "$mingw32" = "yes"; then
4237 elif test "$ucontext_works" = "yes"; then
4240 coroutine
=sigaltstack
4245 if test "$mingw32" != "yes"; then
4246 error_exit
"'windows' coroutine backend only valid for Windows"
4248 # Unfortunately the user visible backend name doesn't match the
4249 # coroutine-*.c filename for this case, so we have to adjust it here.
4253 if test "$ucontext_works" != "yes"; then
4254 feature_not_found
"ucontext"
4257 gthread|sigaltstack
)
4258 if test "$mingw32" = "yes"; then
4259 error_exit
"only the 'windows' coroutine backend is valid for Windows"
4263 error_exit
"unknown coroutine backend $coroutine"
4268 if test "$coroutine_pool" = ""; then
4269 if test "$coroutine" = "gthread"; then
4275 if test "$coroutine" = "gthread" -a "$coroutine_pool" = "yes"; then
4276 error_exit
"'gthread' coroutine backend does not support pool (use --disable-coroutine-pool)"
4279 ##########################################
4280 # check if we have open_by_handle_at
4282 open_by_handle_at
=no
4285 #if !defined(AT_EMPTY_PATH)
4286 # error missing definition
4288 int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
4291 if compile_prog
"" "" ; then
4292 open_by_handle_at
=yes
4295 ########################################
4296 # check if we have linux/magic.h
4300 #include <linux/magic.h>
4305 if compile_prog
"" "" ; then
4309 ########################################
4310 # check whether we can disable warning option with a pragma (this is needed
4311 # to silence warnings in the headers of some versions of external libraries).
4312 # This test has to be compiled with -Werror as otherwise an unknown pragma is
4315 # If we can't selectively disable warning in the code, disable -Werror so that
4316 # the build doesn't fail anyway.
4318 pragma_disable_unused_but_set
=no
4320 #pragma GCC diagnostic push
4321 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
4322 #pragma GCC diagnostic ignored "-Wstrict-prototypes"
4323 #pragma GCC diagnostic pop
4329 if compile_prog
"-Werror" "" ; then
4330 pragma_diagnostic_available
=yes
4335 ########################################
4336 # check if we have valgrind/valgrind.h
4340 #include <valgrind/valgrind.h>
4345 if compile_prog
"" "" ; then
4349 ########################################
4350 # check if environ is declared
4360 if compile_prog
"" "" ; then
4364 ########################################
4365 # check if cpuid.h is usable.
4371 unsigned a, b, c, d;
4372 int max = __get_cpuid_max(0, 0);
4375 __cpuid(1, a, b, c, d);
4379 __cpuid_count(7, 0, a, b, c, d);
4385 if compile_prog
"" "" ; then
4389 ########################################
4390 # check if __[u]int128_t is usable.
4394 #if defined(__clang_major__) && defined(__clang_minor__)
4395 # if ((__clang_major__ < 3) || (__clang_major__ == 3) && (__clang_minor__ < 2))
4396 # error __int128_t does not work in CLANG before 3.2
4408 if compile_prog
"" "" ; then
4412 ########################################
4413 # check if getauxval is available.
4417 #include <sys/auxv.h>
4419 return getauxval(AT_HWCAP) == 0;
4422 if compile_prog
"" "" ; then
4426 ########################################
4427 # check if ccache is interfering with
4428 # semantic analysis of macros
4433 static const int Z = 1;
4434 #define fn() ({ Z; })
4435 #define TAUT(X) ((X) == Z)
4436 #define PAREN(X, Y) (X == Y)
4438 int main(int argc, char *argv[])
4444 if (PAREN(x, y)) return 0;
4445 if (TAUT(Z)) return 0;
4450 if ! compile_object
"-Werror"; then
4454 #################################################
4455 # clang does not support glibc + FORTIFY_SOURCE.
4457 if test "$fortify_source" != "no"; then
4458 if echo |
$cc -dM -E - |
grep __clang__
> /dev
/null
2>&1 ; then
4459 fortify_source
="no";
4460 elif test -n "$cxx" &&
4461 echo |
$cxx -dM -E - |
grep __clang__
>/dev
/null
2>&1 ; then
4462 fortify_source
="no";
4464 fortify_source
="yes"
4468 ##########################################
4469 # check if struct fsxattr is available via linux/fs.h
4473 #include <linux/fs.h>
4479 if compile_prog
"" "" ; then
4483 ##########################################
4484 # check if rtnetlink.h exists and is useful
4487 #include <linux/rtnetlink.h>
4489 return IFLA_PROTO_DOWN;
4492 if compile_prog
"" "" ; then
4496 #################################################
4497 # Sparc implicitly links with --relax, which is
4498 # incompatible with -r, so --no-relax should be
4499 # given. It does no harm to give it on other
4502 # Note: the prototype is needed since QEMU_CFLAGS
4503 # contains -Wmissing-prototypes
4505 extern int foo(void);
4506 int foo(void) { return 0; }
4508 if ! compile_object
""; then
4509 error_exit
"Failed to compile object file for LD_REL_FLAGS test"
4511 if do_cc
-nostdlib -Wl,-r -Wl,--no-relax -o $TMPMO $TMPO; then
4512 LD_REL_FLAGS
="-Wl,--no-relax"
4515 ##########################################
4517 # After here, no more $cc or $ld runs
4519 if test "$gcov" = "yes" ; then
4520 CFLAGS
="-fprofile-arcs -ftest-coverage -g $CFLAGS"
4521 LDFLAGS
="-fprofile-arcs -ftest-coverage $LDFLAGS"
4522 elif test "$fortify_source" = "yes" ; then
4523 CFLAGS
="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
4524 elif test "$debug" = "no"; then
4525 CFLAGS
="-O2 $CFLAGS"
4528 ##########################################
4530 if test "$libnfs" != "no" ; then
4531 if $pkg_config --atleast-version=1.9.3 libnfs
; then
4533 libnfs_libs
=$
($pkg_config --libs libnfs
)
4535 if test "$libnfs" = "yes" ; then
4536 feature_not_found
"libnfs" "Install libnfs devel >= 1.9.3"
4542 # Now we've finished running tests it's OK to add -Werror to the compiler flags
4543 if test "$werror" = "yes"; then
4544 QEMU_CFLAGS
="-Werror $QEMU_CFLAGS"
4547 if test "$solaris" = "no" ; then
4548 if $ld --version 2>/dev
/null |
grep "GNU ld" >/dev
/null
2>/dev
/null
; then
4549 LDFLAGS
="-Wl,--warn-common $LDFLAGS"
4553 # test if pod2man has --utf8 option
4554 if pod2man
--help |
grep -q utf8
; then
4555 POD2MAN
="pod2man --utf8"
4560 # Use ASLR, no-SEH and DEP if available
4561 if test "$mingw32" = "yes" ; then
4562 for flag
in --dynamicbase --no-seh --nxcompat; do
4563 if $ld --help 2>/dev
/null |
grep ".$flag" >/dev
/null
2>/dev
/null
; then
4564 LDFLAGS
="-Wl,$flag $LDFLAGS"
4569 qemu_confdir
=$sysconfdir$confsuffix
4570 qemu_moddir
=$libdir$confsuffix
4571 qemu_datadir
=$datadir$confsuffix
4572 qemu_localedir
="$datadir/locale"
4575 if test "$want_tools" = "yes" ; then
4576 tools
="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
4577 if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
4578 tools
="qemu-nbd\$(EXESUF) $tools"
4579 tools
="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
4582 if test "$softmmu" = yes ; then
4583 if test "$virtfs" != no
; then
4584 if test "$cap" = yes && test "$linux" = yes && test "$attr" = yes ; then
4586 tools
="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
4588 if test "$virtfs" = yes; then
4589 error_exit
"VirtFS is supported only on Linux and requires libcap devel and libattr devel"
4596 # Probe for guest agent support/options
4598 if [ "$guest_agent" != "no" ]; then
4599 if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
4600 tools
="qemu-ga $tools"
4602 elif [ "$guest_agent" != yes ]; then
4605 error_exit
"Guest agent is not supported on this platform"
4609 # Guest agent Window MSI package
4611 if test "$guest_agent" != yes; then
4612 if test "$guest_agent_msi" = yes; then
4613 error_exit
"MSI guest agent package requires guest agent enabled"
4616 elif test "$mingw32" != "yes"; then
4617 if test "$guest_agent_msi" = "yes"; then
4618 error_exit
"MSI guest agent package is available only for MinGW Windows cross-compilation"
4621 elif ! has wixl
; then
4622 if test "$guest_agent_msi" = "yes"; then
4623 error_exit
"MSI guest agent package requires wixl tool installed ( usually from msitools package )"
4627 # we support qemu-ga, mingw32, and wixl: default to MSI enabled if it wasn't
4628 # disabled explicitly
4629 if test "$guest_agent_msi" != "no"; then
4634 if test "$guest_agent_msi" = "yes"; then
4635 if test "$guest_agent_with_vss" = "yes"; then
4636 QEMU_GA_MSI_WITH_VSS
="-D InstallVss"
4639 if test "$QEMU_GA_MANUFACTURER" = ""; then
4640 QEMU_GA_MANUFACTURER
=QEMU
4643 if test "$QEMU_GA_DISTRO" = ""; then
4644 QEMU_GA_DISTRO
=Linux
4647 if test "$QEMU_GA_VERSION" = ""; then
4648 QEMU_GA_VERSION
=$
(cat $source_path/VERSION
)
4651 QEMU_GA_MSI_MINGW_DLL_PATH
="-D Mingw_dlls=$($pkg_config --variable=prefix glib-2.0)/bin"
4655 QEMU_GA_MSI_ARCH
="-a x64 -D Arch=64"
4658 QEMU_GA_MSI_ARCH
="-D Arch=32"
4661 error_exit
"CPU $cpu not supported for building installation package"
4666 # Mac OS X ships with a broken assembler
4668 if test \
( "$cpu" = "i386" -o "$cpu" = "x86_64" \
) -a \
4669 "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
4670 "$softmmu" = yes ; then
4671 # Different host OS linkers have different ideas about the name of the ELF
4672 # emulation. Linux and OpenBSD use 'elf_i386'; FreeBSD uses the _fbsd
4673 # variant; and Windows uses i386pe.
4674 for emu
in elf_i386 elf_i386_fbsd i386pe
; do
4675 if "$ld" -verbose 2>&1 |
grep -q "^[[:space:]]*$emu[[:space:]]*$"; then
4676 ld_i386_emulation
="$emu"
4682 if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
4683 roms
="$roms spapr-rtas"
4686 if test "$cpu" = "s390x" ; then
4687 roms
="$roms s390-ccw"
4690 # Probe for the need for relocating the user-only binary.
4691 if ( [ "$linux_user" = yes ] ||
[ "$bsd_user" = yes ] ) && [ "$pie" = no
]; then
4694 arm | i386 | ppc
* | s390
* | sparc
* | x86_64 | x32
)
4695 # ??? Rationale for choosing this address
4696 textseg_addr
=0x60000000
4699 # A 256M aligned address, high in the address space, with enough
4700 # room for the code_gen_buffer above it before the stack.
4701 textseg_addr
=0x60000000
4704 if [ -n "$textseg_addr" ]; then
4706 int main(void) { return 0; }
4708 textseg_ldflags
="-Wl,-Ttext-segment=$textseg_addr"
4709 if ! compile_prog
"" "$textseg_ldflags"; then
4710 # In case ld does not support -Ttext-segment, edit the default linker
4711 # script via sed to set the .text start addr. This is needed on FreeBSD
4713 if ! $ld --verbose >/dev
/null
2>&1; then
4715 "We need to link the QEMU user mode binaries at a" \
4716 "specific text address. Unfortunately your linker" \
4717 "doesn't support either the -Ttext-segment option or" \
4718 "printing the default linker script with --verbose." \
4719 "If you don't want the user mode binaries, pass the" \
4720 "--disable-user option to configure."
4723 $ld --verbose |
sed \
4724 -e '1,/==================================================/d' \
4725 -e '/==================================================/,$d' \
4726 -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \
4727 -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld
4728 textseg_ldflags
="-Wl,-T../config-host.ld"
4734 if test "$1" = "yes" ; then
4739 # prepend pixman and ftd flags after all config tests are done
4740 QEMU_CFLAGS
="$pixman_cflags $fdt_cflags $QEMU_CFLAGS"
4741 libs_softmmu
="$pixman_libs $libs_softmmu"
4743 echo "Install prefix $prefix"
4744 echo "BIOS directory $(eval echo $qemu_datadir)"
4745 echo "binary directory $(eval echo $bindir)"
4746 echo "library directory $(eval echo $libdir)"
4747 echo "module directory $(eval echo $qemu_moddir)"
4748 echo "libexec directory $(eval echo $libexecdir)"
4749 echo "include directory $(eval echo $includedir)"
4750 echo "config directory $(eval echo $sysconfdir)"
4751 if test "$mingw32" = "no" ; then
4752 echo "local state directory $(eval echo $local_statedir)"
4753 echo "Manual directory $(eval echo $mandir)"
4754 echo "ELF interp prefix $interp_prefix"
4756 echo "local state directory queried at runtime"
4757 echo "Windows SDK $win_sdk"
4759 echo "Source path $source_path"
4760 echo "C compiler $cc"
4761 echo "Host C compiler $host_cc"
4762 echo "C++ compiler $cxx"
4763 echo "Objective-C compiler $objcc"
4764 echo "ARFLAGS $ARFLAGS"
4765 echo "CFLAGS $CFLAGS"
4766 echo "QEMU_CFLAGS $QEMU_CFLAGS"
4767 echo "LDFLAGS $LDFLAGS"
4769 echo "install $install"
4770 echo "python $python"
4771 if test "$slirp" = "yes" ; then
4774 echo "module support $modules"
4775 echo "host CPU $cpu"
4776 echo "host big endian $bigendian"
4777 echo "target list $target_list"
4778 echo "tcg debug enabled $debug_tcg"
4779 echo "gprof enabled $gprof"
4780 echo "sparse enabled $sparse"
4781 echo "strip binaries $strip_opt"
4782 echo "profiler $profiler"
4783 echo "static build $static"
4784 if test "$darwin" = "yes" ; then
4785 echo "Cocoa support $cocoa"
4787 echo "pixman $pixman"
4788 echo "SDL support $sdl $(echo_version $sdl $sdlversion)"
4789 echo "GTK support $gtk $(echo_version $gtk $gtk_version)"
4790 echo "GTK GL support $gtk_gl"
4791 echo "VTE support $vte $(echo_version $vte $vteversion)"
4792 echo "TLS priority $tls_priority"
4793 echo "GNUTLS support $gnutls"
4794 echo "GNUTLS rnd $gnutls_rnd"
4795 echo "libgcrypt $gcrypt"
4796 echo "libgcrypt kdf $gcrypt_kdf"
4797 echo "nettle $nettle $(echo_version $nettle $nettle_version)"
4798 echo "nettle kdf $nettle_kdf"
4799 echo "libtasn1 $tasn1"
4800 echo "curses support $curses"
4801 echo "virgl support $virglrenderer"
4802 echo "curl support $curl"
4803 echo "mingw32 support $mingw32"
4804 echo "Audio drivers $audio_drv_list"
4805 echo "Block whitelist (rw) $block_drv_rw_whitelist"
4806 echo "Block whitelist (ro) $block_drv_ro_whitelist"
4807 echo "VirtFS support $virtfs"
4808 echo "VNC support $vnc"
4809 if test "$vnc" = "yes" ; then
4810 echo "VNC SASL support $vnc_sasl"
4811 echo "VNC JPEG support $vnc_jpeg"
4812 echo "VNC PNG support $vnc_png"
4814 if test -n "$sparc_cpu"; then
4815 echo "Target Sparc Arch $sparc_cpu"
4817 echo "xen support $xen"
4818 if test "$xen" = "yes" ; then
4819 echo "xen ctrl version $xen_ctrl_version"
4820 echo "pv dom build $xen_pv_domain_build"
4822 echo "brlapi support $brlapi"
4823 echo "bluez support $bluez"
4824 echo "Documentation $docs"
4826 echo "vde support $vde"
4827 echo "netmap support $netmap"
4828 echo "Linux AIO support $linux_aio"
4829 echo "ATTR/XATTR support $attr"
4830 echo "Install blobs $blobs"
4831 echo "KVM support $kvm"
4832 echo "RDMA support $rdma"
4833 echo "TCG interpreter $tcg_interpreter"
4834 echo "fdt support $fdt"
4835 echo "preadv support $preadv"
4836 echo "fdatasync $fdatasync"
4837 echo "madvise $madvise"
4838 echo "posix_madvise $posix_madvise"
4839 echo "libcap-ng support $cap_ng"
4840 echo "vhost-net support $vhost_net"
4841 echo "vhost-scsi support $vhost_scsi"
4842 echo "vhost-vsock support $vhost_vsock"
4843 echo "Trace backends $trace_backends"
4844 if have_backend
"simple"; then
4845 echo "Trace output file $trace_file-<pid>"
4847 echo "spice support $spice $(echo_version $spice $spice_protocol_version/$spice_server_version)"
4848 echo "rbd support $rbd"
4849 echo "xfsctl support $xfs"
4850 echo "smartcard support $smartcard"
4851 echo "libusb $libusb"
4852 echo "usb net redir $usb_redir"
4853 echo "OpenGL support $opengl"
4854 echo "OpenGL dmabufs $opengl_dmabuf"
4855 echo "libiscsi support $libiscsi"
4856 echo "libnfs support $libnfs"
4857 echo "build guest agent $guest_agent"
4858 echo "QGA VSS support $guest_agent_with_vss"
4859 echo "QGA w32 disk info $guest_agent_ntddscsi"
4860 echo "QGA MSI support $guest_agent_msi"
4861 echo "seccomp support $seccomp"
4862 echo "coroutine backend $coroutine"
4863 echo "coroutine pool $coroutine_pool"
4864 echo "GlusterFS support $glusterfs"
4865 echo "Archipelago support $archipelago"
4866 echo "gcov $gcov_tool"
4867 echo "gcov enabled $gcov"
4868 echo "TPM support $tpm"
4869 echo "libssh2 support $libssh2"
4870 echo "TPM passthrough $tpm_passthrough"
4871 echo "QOM debugging $qom_cast_debug"
4872 echo "lzo support $lzo"
4873 echo "snappy support $snappy"
4874 echo "bzip2 support $bzip2"
4875 echo "NUMA host support $numa"
4876 echo "tcmalloc support $tcmalloc"
4877 echo "jemalloc support $jemalloc"
4878 echo "avx2 optimization $avx2_opt"
4879 echo "replication support $replication"
4881 if test "$sdl_too_old" = "yes"; then
4882 echo "-> Your SDL version is too old - please upgrade to have SDL support"
4885 config_host_mak
="config-host.mak"
4887 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
4889 echo "# Automatically generated by configure - do not modify" > $config_host_mak
4890 echo >> $config_host_mak
4892 echo all
: >> $config_host_mak
4893 echo "prefix=$prefix" >> $config_host_mak
4894 echo "bindir=$bindir" >> $config_host_mak
4895 echo "libdir=$libdir" >> $config_host_mak
4896 echo "libexecdir=$libexecdir" >> $config_host_mak
4897 echo "includedir=$includedir" >> $config_host_mak
4898 echo "mandir=$mandir" >> $config_host_mak
4899 echo "sysconfdir=$sysconfdir" >> $config_host_mak
4900 echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
4901 echo "qemu_datadir=$qemu_datadir" >> $config_host_mak
4902 echo "qemu_docdir=$qemu_docdir" >> $config_host_mak
4903 echo "qemu_moddir=$qemu_moddir" >> $config_host_mak
4904 if test "$mingw32" = "no" ; then
4905 echo "qemu_localstatedir=$local_statedir" >> $config_host_mak
4907 echo "qemu_helperdir=$libexecdir" >> $config_host_mak
4908 echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
4909 echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
4910 echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
4911 echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
4913 echo "ARCH=$ARCH" >> $config_host_mak
4915 if test "$debug_tcg" = "yes" ; then
4916 echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
4918 if test "$strip_opt" = "yes" ; then
4919 echo "STRIP=${strip}" >> $config_host_mak
4921 if test "$bigendian" = "yes" ; then
4922 echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
4924 if test "$mingw32" = "yes" ; then
4925 echo "CONFIG_WIN32=y" >> $config_host_mak
4926 rc_version
=$
(cat $source_path/VERSION
)
4927 version_major
=${rc_version%%.*}
4928 rc_version
=${rc_version#*.}
4929 version_minor
=${rc_version%%.*}
4930 rc_version
=${rc_version#*.}
4931 version_subminor
=${rc_version%%.*}
4933 echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
4934 echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
4935 if test "$guest_agent_with_vss" = "yes" ; then
4936 echo "CONFIG_QGA_VSS=y" >> $config_host_mak
4937 echo "QGA_VSS_PROVIDER=$qga_vss_provider" >> $config_host_mak
4938 echo "WIN_SDK=\"$win_sdk\"" >> $config_host_mak
4940 if test "$guest_agent_ntddscsi" = "yes" ; then
4941 echo "CONFIG_QGA_NTDDDISK=y" >> $config_host_mak
4943 if test "$guest_agent_msi" = "yes"; then
4944 echo "QEMU_GA_MSI_ENABLED=yes" >> $config_host_mak
4945 echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak
4946 echo "QEMU_GA_MSI_WITH_VSS=${QEMU_GA_MSI_WITH_VSS}" >> $config_host_mak
4947 echo "QEMU_GA_MSI_ARCH=${QEMU_GA_MSI_ARCH}" >> $config_host_mak
4948 echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak
4949 echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak
4950 echo "QEMU_GA_VERSION=${QEMU_GA_VERSION}" >> $config_host_mak
4953 echo "CONFIG_POSIX=y" >> $config_host_mak
4956 if test "$linux" = "yes" ; then
4957 echo "CONFIG_LINUX=y" >> $config_host_mak
4960 if test "$darwin" = "yes" ; then
4961 echo "CONFIG_DARWIN=y" >> $config_host_mak
4964 if test "$aix" = "yes" ; then
4965 echo "CONFIG_AIX=y" >> $config_host_mak
4968 if test "$solaris" = "yes" ; then
4969 echo "CONFIG_SOLARIS=y" >> $config_host_mak
4970 echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
4971 if test "$needs_libsunmath" = "yes" ; then
4972 echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
4975 if test "$haiku" = "yes" ; then
4976 echo "CONFIG_HAIKU=y" >> $config_host_mak
4978 if test "$static" = "yes" ; then
4979 echo "CONFIG_STATIC=y" >> $config_host_mak
4981 if test "$profiler" = "yes" ; then
4982 echo "CONFIG_PROFILER=y" >> $config_host_mak
4984 if test "$slirp" = "yes" ; then
4985 echo "CONFIG_SLIRP=y" >> $config_host_mak
4986 echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
4988 if test "$vde" = "yes" ; then
4989 echo "CONFIG_VDE=y" >> $config_host_mak
4991 if test "$netmap" = "yes" ; then
4992 echo "CONFIG_NETMAP=y" >> $config_host_mak
4994 if test "$l2tpv3" = "yes" ; then
4995 echo "CONFIG_L2TPV3=y" >> $config_host_mak
4997 if test "$cap_ng" = "yes" ; then
4998 echo "CONFIG_LIBCAP=y" >> $config_host_mak
5000 echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
5001 for drv
in $audio_drv_list; do
5002 def
=CONFIG_$
(echo $drv | LC_ALL
=C
tr '[a-z]' '[A-Z]')
5003 echo "$def=y" >> $config_host_mak
5005 if test "$audio_pt_int" = "yes" ; then
5006 echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
5008 if test "$audio_win_int" = "yes" ; then
5009 echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
5011 echo "CONFIG_BDRV_RW_WHITELIST=$block_drv_rw_whitelist" >> $config_host_mak
5012 echo "CONFIG_BDRV_RO_WHITELIST=$block_drv_ro_whitelist" >> $config_host_mak
5013 if test "$vnc" = "yes" ; then
5014 echo "CONFIG_VNC=y" >> $config_host_mak
5016 if test "$vnc_sasl" = "yes" ; then
5017 echo "CONFIG_VNC_SASL=y" >> $config_host_mak
5019 if test "$vnc_jpeg" = "yes" ; then
5020 echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
5022 if test "$vnc_png" = "yes" ; then
5023 echo "CONFIG_VNC_PNG=y" >> $config_host_mak
5025 if test "$fnmatch" = "yes" ; then
5026 echo "CONFIG_FNMATCH=y" >> $config_host_mak
5028 if test "$xfs" = "yes" ; then
5029 echo "CONFIG_XFS=y" >> $config_host_mak
5031 qemu_version
=$
(head $source_path/VERSION
)
5032 echo "VERSION=$qemu_version" >>$config_host_mak
5033 echo "PKGVERSION=$pkgversion" >>$config_host_mak
5034 echo "SRC_PATH=$source_path" >> $config_host_mak
5035 echo "TARGET_DIRS=$target_list" >> $config_host_mak
5036 if [ "$docs" = "yes" ] ; then
5037 echo "BUILD_DOCS=yes" >> $config_host_mak
5039 if test "$modules" = "yes"; then
5040 # $shacmd can generate a hash started with digit, which the compiler doesn't
5041 # like as an symbol. So prefix it with an underscore
5042 echo "CONFIG_STAMP=_$( (echo $qemu_version; echo $pkgversion; cat $0) | $shacmd - | cut -f1 -d\ )" >> $config_host_mak
5043 echo "CONFIG_MODULES=y" >> $config_host_mak
5045 if test "$sdl" = "yes" ; then
5046 echo "CONFIG_SDL=y" >> $config_host_mak
5047 echo "CONFIG_SDLABI=$sdlabi" >> $config_host_mak
5048 echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
5050 if test "$cocoa" = "yes" ; then
5051 echo "CONFIG_COCOA=y" >> $config_host_mak
5053 if test "$curses" = "yes" ; then
5054 echo "CONFIG_CURSES=y" >> $config_host_mak
5056 if test "$utimens" = "yes" ; then
5057 echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
5059 if test "$pipe2" = "yes" ; then
5060 echo "CONFIG_PIPE2=y" >> $config_host_mak
5062 if test "$accept4" = "yes" ; then
5063 echo "CONFIG_ACCEPT4=y" >> $config_host_mak
5065 if test "$splice" = "yes" ; then
5066 echo "CONFIG_SPLICE=y" >> $config_host_mak
5068 if test "$eventfd" = "yes" ; then
5069 echo "CONFIG_EVENTFD=y" >> $config_host_mak
5071 if test "$memfd" = "yes" ; then
5072 echo "CONFIG_MEMFD=y" >> $config_host_mak
5074 if test "$fallocate" = "yes" ; then
5075 echo "CONFIG_FALLOCATE=y" >> $config_host_mak
5077 if test "$fallocate_punch_hole" = "yes" ; then
5078 echo "CONFIG_FALLOCATE_PUNCH_HOLE=y" >> $config_host_mak
5080 if test "$fallocate_zero_range" = "yes" ; then
5081 echo "CONFIG_FALLOCATE_ZERO_RANGE=y" >> $config_host_mak
5083 if test "$posix_fallocate" = "yes" ; then
5084 echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
5086 if test "$sync_file_range" = "yes" ; then
5087 echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
5089 if test "$fiemap" = "yes" ; then
5090 echo "CONFIG_FIEMAP=y" >> $config_host_mak
5092 if test "$dup3" = "yes" ; then
5093 echo "CONFIG_DUP3=y" >> $config_host_mak
5095 if test "$ppoll" = "yes" ; then
5096 echo "CONFIG_PPOLL=y" >> $config_host_mak
5098 if test "$prctl_pr_set_timerslack" = "yes" ; then
5099 echo "CONFIG_PRCTL_PR_SET_TIMERSLACK=y" >> $config_host_mak
5101 if test "$epoll" = "yes" ; then
5102 echo "CONFIG_EPOLL=y" >> $config_host_mak
5104 if test "$epoll_create1" = "yes" ; then
5105 echo "CONFIG_EPOLL_CREATE1=y" >> $config_host_mak
5107 if test "$sendfile" = "yes" ; then
5108 echo "CONFIG_SENDFILE=y" >> $config_host_mak
5110 if test "$timerfd" = "yes" ; then
5111 echo "CONFIG_TIMERFD=y" >> $config_host_mak
5113 if test "$setns" = "yes" ; then
5114 echo "CONFIG_SETNS=y" >> $config_host_mak
5116 if test "$inotify" = "yes" ; then
5117 echo "CONFIG_INOTIFY=y" >> $config_host_mak
5119 if test "$inotify1" = "yes" ; then
5120 echo "CONFIG_INOTIFY1=y" >> $config_host_mak
5122 if test "$byteswap_h" = "yes" ; then
5123 echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
5125 if test "$bswap_h" = "yes" ; then
5126 echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
5128 if test "$curl" = "yes" ; then
5129 echo "CONFIG_CURL=m" >> $config_host_mak
5130 echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
5131 echo "CURL_LIBS=$curl_libs" >> $config_host_mak
5133 if test "$brlapi" = "yes" ; then
5134 echo "CONFIG_BRLAPI=y" >> $config_host_mak
5136 if test "$bluez" = "yes" ; then
5137 echo "CONFIG_BLUEZ=y" >> $config_host_mak
5138 echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
5140 if test "$glib_subprocess" = "yes" ; then
5141 echo "CONFIG_HAS_GLIB_SUBPROCESS_TESTS=y" >> $config_host_mak
5143 echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
5144 if test "$gtk" = "yes" ; then
5145 echo "CONFIG_GTK=y" >> $config_host_mak
5146 echo "CONFIG_GTKABI=$gtkabi" >> $config_host_mak
5147 echo "GTK_CFLAGS=$gtk_cflags" >> $config_host_mak
5148 echo "GTK_LIBS=$gtk_libs" >> $config_host_mak
5149 if test "$gtk_gl" = "yes" ; then
5150 echo "CONFIG_GTK_GL=y" >> $config_host_mak
5153 echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
5154 if test "$gnutls" = "yes" ; then
5155 echo "CONFIG_GNUTLS=y" >> $config_host_mak
5157 if test "$gnutls_rnd" = "yes" ; then
5158 echo "CONFIG_GNUTLS_RND=y" >> $config_host_mak
5160 if test "$gcrypt" = "yes" ; then
5161 echo "CONFIG_GCRYPT=y" >> $config_host_mak
5162 if test "$gcrypt_kdf" = "yes" ; then
5163 echo "CONFIG_GCRYPT_KDF=y" >> $config_host_mak
5166 if test "$nettle" = "yes" ; then
5167 echo "CONFIG_NETTLE=y" >> $config_host_mak
5168 echo "CONFIG_NETTLE_VERSION_MAJOR=${nettle_version%%.*}" >> $config_host_mak
5169 if test "$nettle_kdf" = "yes" ; then
5170 echo "CONFIG_NETTLE_KDF=y" >> $config_host_mak
5173 if test "$tasn1" = "yes" ; then
5174 echo "CONFIG_TASN1=y" >> $config_host_mak
5176 if test "$have_ifaddrs_h" = "yes" ; then
5177 echo "HAVE_IFADDRS_H=y" >> $config_host_mak
5180 # Work around a system header bug with some kernel/XFS header
5181 # versions where they both try to define 'struct fsxattr':
5182 # xfs headers will not try to redefine structs from linux headers
5183 # if this macro is set.
5184 if test "$have_fsxattr" = "yes" ; then
5185 echo "HAVE_FSXATTR=y" >> $config_host_mak
5187 if test "$vte" = "yes" ; then
5188 echo "CONFIG_VTE=y" >> $config_host_mak
5189 echo "VTE_CFLAGS=$vte_cflags" >> $config_host_mak
5191 if test "$virglrenderer" = "yes" ; then
5192 echo "CONFIG_VIRGL=y" >> $config_host_mak
5193 echo "VIRGL_CFLAGS=$virgl_cflags" >> $config_host_mak
5194 echo "VIRGL_LIBS=$virgl_libs" >> $config_host_mak
5196 if test "$xen" = "yes" ; then
5197 echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
5198 echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak
5199 if test "$xen_pv_domain_build" = "yes" ; then
5200 echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak
5203 if test "$linux_aio" = "yes" ; then
5204 echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
5206 if test "$attr" = "yes" ; then
5207 echo "CONFIG_ATTR=y" >> $config_host_mak
5209 if test "$libattr" = "yes" ; then
5210 echo "CONFIG_LIBATTR=y" >> $config_host_mak
5212 if test "$virtfs" = "yes" ; then
5213 echo "CONFIG_VIRTFS=y" >> $config_host_mak
5215 if test "$vhost_scsi" = "yes" ; then
5216 echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
5218 if test "$vhost_net" = "yes" ; then
5219 echo "CONFIG_VHOST_NET_USED=y" >> $config_host_mak
5221 if test "$vhost_vsock" = "yes" ; then
5222 echo "CONFIG_VHOST_VSOCK=y" >> $config_host_mak
5224 if test "$blobs" = "yes" ; then
5225 echo "INSTALL_BLOBS=yes" >> $config_host_mak
5227 if test "$iovec" = "yes" ; then
5228 echo "CONFIG_IOVEC=y" >> $config_host_mak
5230 if test "$preadv" = "yes" ; then
5231 echo "CONFIG_PREADV=y" >> $config_host_mak
5233 if test "$fdt" = "yes" ; then
5234 echo "CONFIG_FDT=y" >> $config_host_mak
5236 if test "$signalfd" = "yes" ; then
5237 echo "CONFIG_SIGNALFD=y" >> $config_host_mak
5239 if test "$tcg_interpreter" = "yes" ; then
5240 echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
5242 if test "$fdatasync" = "yes" ; then
5243 echo "CONFIG_FDATASYNC=y" >> $config_host_mak
5245 if test "$madvise" = "yes" ; then
5246 echo "CONFIG_MADVISE=y" >> $config_host_mak
5248 if test "$posix_madvise" = "yes" ; then
5249 echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
5252 if test "$spice" = "yes" ; then
5253 echo "CONFIG_SPICE=y" >> $config_host_mak
5256 if test "$smartcard" = "yes" ; then
5257 echo "CONFIG_SMARTCARD=y" >> $config_host_mak
5260 if test "$libusb" = "yes" ; then
5261 echo "CONFIG_USB_LIBUSB=y" >> $config_host_mak
5264 if test "$usb_redir" = "yes" ; then
5265 echo "CONFIG_USB_REDIR=y" >> $config_host_mak
5268 if test "$opengl" = "yes" ; then
5269 echo "CONFIG_OPENGL=y" >> $config_host_mak
5270 echo "OPENGL_CFLAGS=$opengl_cflags" >> $config_host_mak
5271 echo "OPENGL_LIBS=$opengl_libs" >> $config_host_mak
5272 if test "$opengl_dmabuf" = "yes" ; then
5273 echo "CONFIG_OPENGL_DMABUF=y" >> $config_host_mak
5277 if test "$avx2_opt" = "yes" ; then
5278 echo "CONFIG_AVX2_OPT=y" >> $config_host_mak
5281 if test "$lzo" = "yes" ; then
5282 echo "CONFIG_LZO=y" >> $config_host_mak
5285 if test "$snappy" = "yes" ; then
5286 echo "CONFIG_SNAPPY=y" >> $config_host_mak
5289 if test "$bzip2" = "yes" ; then
5290 echo "CONFIG_BZIP2=y" >> $config_host_mak
5291 echo "BZIP2_LIBS=-lbz2" >> $config_host_mak
5294 if test "$libiscsi" = "yes" ; then
5295 echo "CONFIG_LIBISCSI=m" >> $config_host_mak
5296 echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
5297 echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
5300 if test "$libnfs" = "yes" ; then
5301 echo "CONFIG_LIBNFS=m" >> $config_host_mak
5302 echo "LIBNFS_LIBS=$libnfs_libs" >> $config_host_mak
5305 if test "$seccomp" = "yes"; then
5306 echo "CONFIG_SECCOMP=y" >> $config_host_mak
5309 # XXX: suppress that
5310 if [ "$bsd" = "yes" ] ; then
5311 echo "CONFIG_BSD=y" >> $config_host_mak
5314 if test "$localtime_r" = "yes" ; then
5315 echo "CONFIG_LOCALTIME_R=y" >> $config_host_mak
5317 if test "$qom_cast_debug" = "yes" ; then
5318 echo "CONFIG_QOM_CAST_DEBUG=y" >> $config_host_mak
5320 if test "$rbd" = "yes" ; then
5321 echo "CONFIG_RBD=m" >> $config_host_mak
5322 echo "RBD_CFLAGS=$rbd_cflags" >> $config_host_mak
5323 echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
5326 echo "CONFIG_COROUTINE_BACKEND=$coroutine" >> $config_host_mak
5327 if test "$coroutine_pool" = "yes" ; then
5328 echo "CONFIG_COROUTINE_POOL=1" >> $config_host_mak
5330 echo "CONFIG_COROUTINE_POOL=0" >> $config_host_mak
5333 if test "$open_by_handle_at" = "yes" ; then
5334 echo "CONFIG_OPEN_BY_HANDLE=y" >> $config_host_mak
5337 if test "$linux_magic_h" = "yes" ; then
5338 echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak
5341 if test "$pragma_diagnostic_available" = "yes" ; then
5342 echo "CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE=y" >> $config_host_mak
5345 if test "$valgrind_h" = "yes" ; then
5346 echo "CONFIG_VALGRIND_H=y" >> $config_host_mak
5349 if test "$has_environ" = "yes" ; then
5350 echo "CONFIG_HAS_ENVIRON=y" >> $config_host_mak
5353 if test "$cpuid_h" = "yes" ; then
5354 echo "CONFIG_CPUID_H=y" >> $config_host_mak
5357 if test "$int128" = "yes" ; then
5358 echo "CONFIG_INT128=y" >> $config_host_mak
5361 if test "$getauxval" = "yes" ; then
5362 echo "CONFIG_GETAUXVAL=y" >> $config_host_mak
5365 if test "$glusterfs" = "yes" ; then
5366 echo "CONFIG_GLUSTERFS=m" >> $config_host_mak
5367 echo "GLUSTERFS_CFLAGS=$glusterfs_cflags" >> $config_host_mak
5368 echo "GLUSTERFS_LIBS=$glusterfs_libs" >> $config_host_mak
5371 if test "$glusterfs_xlator_opt" = "yes" ; then
5372 echo "CONFIG_GLUSTERFS_XLATOR_OPT=y" >> $config_host_mak
5375 if test "$glusterfs_discard" = "yes" ; then
5376 echo "CONFIG_GLUSTERFS_DISCARD=y" >> $config_host_mak
5379 if test "$glusterfs_zerofill" = "yes" ; then
5380 echo "CONFIG_GLUSTERFS_ZEROFILL=y" >> $config_host_mak
5383 if test "$archipelago" = "yes" ; then
5384 echo "CONFIG_ARCHIPELAGO=m" >> $config_host_mak
5385 echo "ARCHIPELAGO_LIBS=$archipelago_libs" >> $config_host_mak
5388 if test "$libssh2" = "yes" ; then
5389 echo "CONFIG_LIBSSH2=m" >> $config_host_mak
5390 echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak
5391 echo "LIBSSH2_LIBS=$libssh2_libs" >> $config_host_mak
5395 if test "$libusb" = "yes"; then
5396 echo "HOST_USB=libusb legacy" >> $config_host_mak
5398 echo "HOST_USB=stub" >> $config_host_mak
5401 # TPM passthrough support?
5402 if test "$tpm" = "yes"; then
5403 echo 'CONFIG_TPM=$(CONFIG_SOFTMMU)' >> $config_host_mak
5404 if test "$tpm_passthrough" = "yes"; then
5405 echo "CONFIG_TPM_PASSTHROUGH=y" >> $config_host_mak
5409 echo "TRACE_BACKENDS=$trace_backends" >> $config_host_mak
5410 if have_backend
"nop"; then
5411 echo "CONFIG_TRACE_NOP=y" >> $config_host_mak
5413 if have_backend
"simple"; then
5414 echo "CONFIG_TRACE_SIMPLE=y" >> $config_host_mak
5415 # Set the appropriate trace file.
5416 trace_file
="\"$trace_file-\" FMT_pid"
5418 if have_backend
"log"; then
5419 echo "CONFIG_TRACE_LOG=y" >> $config_host_mak
5421 if have_backend
"ust"; then
5422 echo "CONFIG_TRACE_UST=y" >> $config_host_mak
5424 if have_backend
"dtrace"; then
5425 echo "CONFIG_TRACE_DTRACE=y" >> $config_host_mak
5426 if test "$trace_backend_stap" = "yes" ; then
5427 echo "CONFIG_TRACE_SYSTEMTAP=y" >> $config_host_mak
5430 if have_backend
"ftrace"; then
5431 if test "$linux" = "yes" ; then
5432 echo "CONFIG_TRACE_FTRACE=y" >> $config_host_mak
5434 feature_not_found
"ftrace(trace backend)" "ftrace requires Linux"
5437 if have_backend
"syslog"; then
5438 if test "$posix_syslog" = "yes" ; then
5439 echo "CONFIG_TRACE_SYSLOG=y" >> $config_host_mak
5441 feature_not_found
"syslog(trace backend)" "syslog not available"
5444 echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
5446 if test "$rdma" = "yes" ; then
5447 echo "CONFIG_RDMA=y" >> $config_host_mak
5450 if test "$have_rtnetlink" = "yes" ; then
5451 echo "CONFIG_RTNETLINK=y" >> $config_host_mak
5454 if test "$replication" = "yes" ; then
5455 echo "CONFIG_REPLICATION=y" >> $config_host_mak
5458 # Hold two types of flag:
5459 # CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on
5460 # a thread we have a handle to
5461 # CONFIG_PTHREAD_SETNAME_NP - A way of doing it on a particular
5463 if test "$pthread_setname_np" = "yes" ; then
5464 echo "CONFIG_THREAD_SETNAME_BYTHREAD=y" >> $config_host_mak
5465 echo "CONFIG_PTHREAD_SETNAME_NP=y" >> $config_host_mak
5468 if test "$tcg_interpreter" = "yes"; then
5469 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/tci $QEMU_INCLUDES"
5470 elif test "$ARCH" = "sparc64" ; then
5471 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/sparc $QEMU_INCLUDES"
5472 elif test "$ARCH" = "s390x" ; then
5473 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/s390 $QEMU_INCLUDES"
5474 elif test "$ARCH" = "x86_64" -o "$ARCH" = "x32" ; then
5475 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/i386 $QEMU_INCLUDES"
5476 elif test "$ARCH" = "ppc64" ; then
5477 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/ppc $QEMU_INCLUDES"
5479 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/\$(ARCH) $QEMU_INCLUDES"
5481 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg $QEMU_INCLUDES"
5483 echo "TOOLS=$tools" >> $config_host_mak
5484 echo "ROMS=$roms" >> $config_host_mak
5485 echo "MAKE=$make" >> $config_host_mak
5486 echo "INSTALL=$install" >> $config_host_mak
5487 echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak
5488 echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
5489 echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
5490 echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
5491 echo "PYTHON=$python" >> $config_host_mak
5492 echo "CC=$cc" >> $config_host_mak
5493 if $iasl -h > /dev
/null
2>&1; then
5494 echo "IASL=$iasl" >> $config_host_mak
5496 echo "CC_I386=$cc_i386" >> $config_host_mak
5497 echo "HOST_CC=$host_cc" >> $config_host_mak
5498 echo "CXX=$cxx" >> $config_host_mak
5499 echo "OBJCC=$objcc" >> $config_host_mak
5500 echo "AR=$ar" >> $config_host_mak
5501 echo "ARFLAGS=$ARFLAGS" >> $config_host_mak
5502 echo "AS=$as" >> $config_host_mak
5503 echo "CCAS=$ccas" >> $config_host_mak
5504 echo "CPP=$cpp" >> $config_host_mak
5505 echo "OBJCOPY=$objcopy" >> $config_host_mak
5506 echo "LD=$ld" >> $config_host_mak
5507 echo "NM=$nm" >> $config_host_mak
5508 echo "WINDRES=$windres" >> $config_host_mak
5509 echo "CFLAGS=$CFLAGS" >> $config_host_mak
5510 echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
5511 echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
5512 echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
5513 if test "$sparse" = "yes" ; then
5514 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak
5515 echo "CPP := REAL_CC=\"\$(CPP)\" cgcc" >> $config_host_mak
5516 echo "CXX := REAL_CC=\"\$(CXX)\" cgcc" >> $config_host_mak
5517 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak
5518 echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
5520 if test "$cross_prefix" != ""; then
5521 echo "AUTOCONF_HOST := --host=${cross_prefix%-}" >> $config_host_mak
5523 echo "AUTOCONF_HOST := " >> $config_host_mak
5525 echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
5526 echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
5527 echo "LD_REL_FLAGS=$LD_REL_FLAGS" >> $config_host_mak
5528 echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
5529 echo "LIBS+=$LIBS" >> $config_host_mak
5530 echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
5531 echo "PTHREAD_LIB=$PTHREAD_LIB" >> $config_host_mak
5532 echo "EXESUF=$EXESUF" >> $config_host_mak
5533 echo "DSOSUF=$DSOSUF" >> $config_host_mak
5534 echo "LDFLAGS_SHARED=$LDFLAGS_SHARED" >> $config_host_mak
5535 echo "LIBS_QGA+=$libs_qga" >> $config_host_mak
5536 echo "TASN1_LIBS=$tasn1_libs" >> $config_host_mak
5537 echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
5538 echo "POD2MAN=$POD2MAN" >> $config_host_mak
5539 echo "TRANSLATE_OPT_CFLAGS=$TRANSLATE_OPT_CFLAGS" >> $config_host_mak
5540 if test "$gcov" = "yes" ; then
5541 echo "CONFIG_GCOV=y" >> $config_host_mak
5542 echo "GCOV=$gcov_tool" >> $config_host_mak
5545 # use included Linux headers
5546 if test "$linux" = "yes" ; then
5547 mkdir
-p linux-headers
5565 # For most CPUs the kernel architecture name and QEMU CPU name match.
5569 # For non-KVM architectures we will not have asm headers
5570 if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
5571 symlink
"$source_path/linux-headers/asm-$linux_arch" linux-headers
/asm
5575 for target
in $target_list; do
5576 target_dir
="$target"
5577 config_target_mak
=$target_dir/config-target.mak
5578 target_name
=$
(echo $target | cut
-d '-' -f 1)
5579 target_bigendian
="no"
5581 case "$target_name" in
5582 armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|moxie|or32|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb
)
5583 target_bigendian
=yes
5587 target_user_only
="no"
5588 target_linux_user
="no"
5589 target_bsd_user
="no"
5591 ${target_name}-softmmu)
5592 target_softmmu
="yes"
5594 ${target_name}-linux-user)
5595 if test "$linux" != "yes" ; then
5596 error_exit
"Target '$target' is only available on a Linux host"
5598 target_user_only
="yes"
5599 target_linux_user
="yes"
5601 ${target_name}-bsd-user)
5602 if test "$bsd" != "yes" ; then
5603 error_exit
"Target '$target' is only available on a BSD host"
5605 target_user_only
="yes"
5606 target_bsd_user
="yes"
5609 error_exit
"Target '$target' not recognised"
5614 mkdir
-p $target_dir
5615 echo "# Automatically generated by configure - do not modify" > $config_target_mak
5618 interp_prefix1
=$
(echo "$interp_prefix" |
sed "s/%M/$target_name/g")
5621 TARGET_ARCH
="$target_name"
5625 case "$target_name" in
5629 TARGET_BASE_ARCH
=i386
5636 gdb_xml_files
="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
5639 TARGET_BASE_ARCH
=arm
5641 gdb_xml_files
="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
5649 gdb_xml_files
="cf-core.xml cf-fp.xml"
5651 microblaze|microblazeel
)
5652 TARGET_ARCH
=microblaze
5657 echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
5661 TARGET_BASE_ARCH
=mips
5662 echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
5663 echo "TARGET_ABI32=y" >> $config_target_mak
5667 TARGET_BASE_ARCH
=mips
5668 echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
5673 TARGET_ARCH
=openrisc
5674 TARGET_BASE_ARCH
=openrisc
5677 gdb_xml_files
="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
5680 TARGET_BASE_ARCH
=ppc
5682 gdb_xml_files
="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
5685 TARGET_BASE_ARCH
=ppc
5687 gdb_xml_files
="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
5691 TARGET_BASE_ARCH
=ppc
5693 gdb_xml_files
="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
5697 TARGET_BASE_ARCH
=ppc
5699 echo "TARGET_ABI32=y" >> $config_target_mak
5700 gdb_xml_files
="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
5709 TARGET_BASE_ARCH
=sparc
5713 TARGET_BASE_ARCH
=sparc
5714 TARGET_ABI_DIR
=sparc
5715 echo "TARGET_ABI32=y" >> $config_target_mak
5718 gdb_xml_files
="s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml"
5730 error_exit
"Unsupported target CPU"
5733 # TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
5734 if [ "$TARGET_BASE_ARCH" = "" ]; then
5735 TARGET_BASE_ARCH
=$TARGET_ARCH
5738 symlink
"$source_path/Makefile.target" "$target_dir/Makefile"
5741 echo "$@"| LC_ALL
=C
tr '[a-z]' '[A-Z]'
5744 target_arch_name
="$(upper $TARGET_ARCH)"
5745 echo "TARGET_$target_arch_name=y" >> $config_target_mak
5746 echo "TARGET_NAME=$target_name" >> $config_target_mak
5747 echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
5748 if [ "$TARGET_ABI_DIR" = "" ]; then
5749 TARGET_ABI_DIR
=$TARGET_ARCH
5751 echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
5752 if [ "$HOST_VARIANT_DIR" != "" ]; then
5753 echo "HOST_VARIANT_DIR=$HOST_VARIANT_DIR" >> $config_target_mak
5755 case "$target_name" in
5757 if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
5758 echo "CONFIG_XEN=y" >> $config_target_mak
5759 if test "$xen_pci_passthrough" = yes; then
5760 echo "CONFIG_XEN_PCI_PASSTHROUGH=y" >> "$config_target_mak"
5766 case "$target_name" in
5767 aarch64|arm|i386|x86_64|ppcemb|ppc|ppc64|s390x|mipsel|mips
)
5768 # Make sure the target and host cpus are compatible
5769 if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
5770 \
( "$target_name" = "$cpu" -o \
5771 \
( "$target_name" = "ppcemb" -a "$cpu" = "ppc" \
) -o \
5772 \
( "$target_name" = "ppc64" -a "$cpu" = "ppc" \
) -o \
5773 \
( "$target_name" = "ppc" -a "$cpu" = "ppc64" \
) -o \
5774 \
( "$target_name" = "ppcemb" -a "$cpu" = "ppc64" \
) -o \
5775 \
( "$target_name" = "mipsel" -a "$cpu" = "mips" \
) -o \
5776 \
( "$target_name" = "x86_64" -a "$cpu" = "i386" \
) -o \
5777 \
( "$target_name" = "i386" -a "$cpu" = "x86_64" \
) -o \
5778 \
( "$target_name" = "x86_64" -a "$cpu" = "x32" \
) -o \
5779 \
( "$target_name" = "i386" -a "$cpu" = "x32" \
) \
) ; then
5780 echo "CONFIG_KVM=y" >> $config_target_mak
5781 if test "$vhost_net" = "yes" ; then
5782 echo "CONFIG_VHOST_NET=y" >> $config_target_mak
5783 echo "CONFIG_VHOST_NET_TEST_$target_name=y" >> $config_host_mak
5787 if test "$target_bigendian" = "yes" ; then
5788 echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
5790 if test "$target_softmmu" = "yes" ; then
5791 echo "CONFIG_SOFTMMU=y" >> $config_target_mak
5793 if test "$target_user_only" = "yes" ; then
5794 echo "CONFIG_USER_ONLY=y" >> $config_target_mak
5795 echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
5797 if test "$target_linux_user" = "yes" ; then
5798 echo "CONFIG_LINUX_USER=y" >> $config_target_mak
5801 if test ! -z "$gdb_xml_files" ; then
5802 for x
in $gdb_xml_files; do
5803 list
="$list $source_path/gdb-xml/$x"
5805 echo "TARGET_XML_FILES=$list" >> $config_target_mak
5808 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
5809 echo "TARGET_HAS_BFLT=y" >> $config_target_mak
5811 if test "$target_bsd_user" = "yes" ; then
5812 echo "CONFIG_BSD_USER=y" >> $config_target_mak
5815 # generate QEMU_CFLAGS/LDFLAGS for targets
5821 echo "CONFIG_${1}_DIS=y" >> $config_target_mak
5822 echo "CONFIG_${1}_DIS=y" >> config-all-disas.mak
5825 for i
in $ARCH $TARGET_BASE_ARCH ; do
5828 disas_config
"ALPHA"
5831 if test -n "${cxx}"; then
5832 disas_config
"ARM_A64"
5837 if test -n "${cxx}"; then
5838 disas_config
"ARM_A64"
5857 disas_config
"MICROBLAZE"
5863 disas_config
"MOXIE"
5866 disas_config
"OPENRISC"
5878 disas_config
"SPARC"
5881 disas_config
"XTENSA"
5885 if test "$tcg_interpreter" = "yes" ; then
5891 # Ensure there's only a single GP
5892 cflags
="-msmall-data $cflags"
5896 if test "$gprof" = "yes" ; then
5897 echo "TARGET_GPROF=yes" >> $config_target_mak
5898 if test "$target_linux_user" = "yes" ; then
5900 ldflags
="-p $ldflags"
5902 if test "$target_softmmu" = "yes" ; then
5903 ldflags
="-p $ldflags"
5904 echo "GPROF_CFLAGS=-p" >> $config_target_mak
5908 if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
5909 ldflags
="$ldflags $textseg_ldflags"
5912 echo "LDFLAGS+=$ldflags" >> $config_target_mak
5913 echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
5915 done # for target in $targets
5917 if [ "$pixman" = "internal" ]; then
5918 echo "config-host.h: subdir-pixman" >> $config_host_mak
5921 if [ "$dtc_internal" = "yes" ]; then
5922 echo "config-host.h: subdir-dtc" >> $config_host_mak
5925 if test "$numa" = "yes"; then
5926 echo "CONFIG_NUMA=y" >> $config_host_mak
5929 if test "$ccache_cpp2" = "yes"; then
5930 echo "export CCACHE_CPP2=y" >> $config_host_mak
5933 # build tree in object directory in case the source is not in the current directory
5934 DIRS
="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests"
5936 DIRS
="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw"
5937 DIRS
="$DIRS roms/seabios roms/vgabios"
5938 DIRS
="$DIRS qapi-generated"
5939 FILES
="Makefile tests/tcg/Makefile qdict-test-data.txt"
5940 FILES
="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
5941 FILES
="$FILES tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile"
5942 FILES
="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
5943 FILES
="$FILES pc-bios/spapr-rtas/Makefile"
5944 FILES
="$FILES pc-bios/s390-ccw/Makefile"
5945 FILES
="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
5946 FILES
="$FILES pc-bios/qemu-icon.bmp"
5948 $source_path/pc-bios
/*.bin \
5949 $source_path/pc-bios
/*.aml \
5950 $source_path/pc-bios
/*.rom \
5951 $source_path/pc-bios
/*.dtb \
5952 $source_path/pc-bios
/*.img \
5953 $source_path/pc-bios
/openbios-
* \
5954 $source_path/pc-bios
/u-boot.
* \
5955 $source_path/pc-bios
/palcode-
*
5957 FILES
="$FILES pc-bios/$(basename $bios_file)"
5959 for test_file
in $
(find $source_path/tests
/acpi-test-data
-type f
)
5961 FILES
="$FILES tests/acpi-test-data$(echo $test_file | sed -e 's/.*acpi-test-data//')"
5964 for f
in $FILES ; do
5965 if [ -e "$source_path/$f" ] && [ "$pwd_is_source_path" != "y" ]; then
5966 symlink
"$source_path/$f" "$f"
5970 # temporary config to build submodules
5971 for rom
in seabios vgabios
; do
5972 config_mak
=roms
/$rom/config.mak
5973 echo "# Automatically generated by configure - do not modify" > $config_mak
5974 echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
5975 echo "AS=$as" >> $config_mak
5976 echo "CCAS=$ccas" >> $config_mak
5977 echo "CC=$cc" >> $config_mak
5978 echo "BCC=bcc" >> $config_mak
5979 echo "CPP=$cpp" >> $config_mak
5980 echo "OBJCOPY=objcopy" >> $config_mak
5981 echo "IASL=$iasl" >> $config_mak
5982 echo "LD=$ld" >> $config_mak
5985 # set up tests data directory
5986 if [ ! -e tests
/data
]; then
5987 symlink
"$source_path/tests/data" tests
/data
5990 # set up qemu-iotests in this build directory
5991 iotests_common_env
="tests/qemu-iotests/common.env"
5992 iotests_check
="tests/qemu-iotests/check"
5994 echo "# Automatically generated by configure - do not modify" > "$iotests_common_env"
5995 echo >> "$iotests_common_env"
5996 echo "export PYTHON='$python'" >> "$iotests_common_env"
5998 if [ ! -e "$iotests_check" ]; then
5999 symlink
"$source_path/$iotests_check" "$iotests_check"
6002 # Save the configure command line for later reuse.
6003 cat <<EOD >config.status
6005 # Generated by configure.
6006 # Run this file to recreate the current configuration.
6007 # Compiler output produced by configure, useful for debugging
6008 # configure, is in config.log if it exists.
6010 printf "exec" >>config.status
6011 printf " '%s'" "$0" "$@" >>config.status
6012 echo ' "$@"' >>config.status
6013 chmod +x config.status