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.
222 xen_pv_domain_build
="no"
223 xen_pci_passthrough
=""
247 LDFLAGS_SHARED
="-shared"
250 mandir
="\${prefix}/share/man"
251 datadir
="\${prefix}/share"
252 qemu_docdir
="\${prefix}/share/doc/qemu"
253 bindir
="\${prefix}/bin"
254 libdir
="\${prefix}/lib"
255 libexecdir
="\${prefix}/libexec"
256 includedir
="\${prefix}/include"
257 sysconfdir
="\${prefix}/etc"
258 local_statedir
="\${prefix}/var"
290 guest_agent_with_vss
="no"
291 guest_agent_ntddscsi
="no"
302 glusterfs_xlator_opt
="no"
303 glusterfs_discard
="no"
304 glusterfs_zerofill
="no"
309 tls_priority
="NORMAL"
326 # parse CC options first
328 optarg
=$
(expr "x$opt" : 'x[^=]*=\(.*\)')
330 --cross-prefix=*) cross_prefix
="$optarg"
334 --cxx=*) CXX
="$optarg"
336 --source-path=*) source_path
="$optarg"
338 --cpu=*) cpu
="$optarg"
340 --extra-cflags=*) QEMU_CFLAGS
="$QEMU_CFLAGS $optarg"
341 EXTRA_CFLAGS
="$optarg"
343 --extra-ldflags=*) LDFLAGS
="$LDFLAGS $optarg"
344 EXTRA_LDFLAGS
="$optarg"
346 --enable-debug-info) debug_info
="yes"
348 --disable-debug-info) debug_info
="no"
353 # Using uname is really, really broken. Once we have the right set of checks
354 # we can eliminate its usage altogether.
356 # Preferred compiler:
358 # ${cross_prefix}gcc (if cross-prefix specified)
360 if test -z "${CC}${cross_prefix}"; then
363 cc
="${CC-${cross_prefix}gcc}"
366 if test -z "${CXX}${cross_prefix}"; then
369 cxx
="${CXX-${cross_prefix}g++}"
372 ar="${AR-${cross_prefix}ar}"
373 as
="${AS-${cross_prefix}as}"
376 objcopy
="${OBJCOPY-${cross_prefix}objcopy}"
377 ld
="${LD-${cross_prefix}ld}"
378 nm
="${NM-${cross_prefix}nm}"
379 strip
="${STRIP-${cross_prefix}strip}"
380 windres
="${WINDRES-${cross_prefix}windres}"
381 pkg_config_exe
="${PKG_CONFIG-${cross_prefix}pkg-config}"
383 "${pkg_config_exe}" ${QEMU_PKG_CONFIG_FLAGS} "$@"
385 pkg_config
=query_pkg_config
386 sdl_config
="${SDL_CONFIG-${cross_prefix}sdl-config}"
387 sdl2_config
="${SDL2_CONFIG-${cross_prefix}sdl2-config}"
389 # If the user hasn't specified ARFLAGS, default to 'rv', just as make does.
390 ARFLAGS
="${ARFLAGS-rv}"
392 # default flags for all hosts
393 # We use -fwrapv to tell the compiler that we require a C dialect where
394 # left shift of signed integers is well defined and has the expected
395 # 2s-complement style results. (Both clang and gcc agree that it
396 # provides these semantics.)
397 QEMU_CFLAGS
="-fno-strict-aliasing -fno-common -fwrapv $QEMU_CFLAGS"
398 QEMU_CFLAGS
="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
399 QEMU_CFLAGS
="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
400 QEMU_CFLAGS
="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
401 QEMU_INCLUDES
="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/include"
402 if test "$debug_info" = "yes"; then
404 LDFLAGS
="-g $LDFLAGS"
407 # make source path absolute
408 source_path
=$
(cd "$source_path"; pwd)
410 # running configure in the source tree?
411 # we know that's the case if configure is there.
412 if test -f "./configure"; then
413 pwd_is_source_path
="y"
415 pwd_is_source_path
="n"
421 #error $1 not defined
423 int main(void) { return 0; }
431 int main(void) { return 0; }
438 int main(void) { return 0; }
442 if check_define __linux__
; then
444 elif check_define _WIN32
; then
446 elif check_define __OpenBSD__
; then
448 elif check_define __sun__
; then
450 elif check_define __HAIKU__
; then
456 # Some host OSes need non-standard checks for which CPU to use.
457 # Note that these checks are broken for cross-compilation: if you're
458 # cross-compiling to one of these OSes then you'll need to specify
459 # the correct CPU with the --cpu option.
462 # on Leopard most of the system is 32-bit, so we have to ask the kernel if we can
463 # run 64-bit userspace code.
464 # If the user didn't specify a CPU explicitly and the kernel says this is
465 # 64 bit hw, then assume x86_64. Otherwise fall through to the usual detection code.
466 if test -z "$cpu" && test "$(sysctl -n hw.optional.x86_64)" = "1"; then
471 # $(uname -m) returns i86pc even on an x86_64 box, so default based on isainfo
472 if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then
477 if test ! -z "$cpu" ; then
478 # command line argument
480 elif check_define __i386__
; then
482 elif check_define __x86_64__
; then
483 if check_define __ILP32__
; then
488 elif check_define __sparc__
; then
489 if check_define __arch64__
; then
494 elif check_define _ARCH_PPC
; then
495 if check_define _ARCH_PPC64
; then
500 elif check_define __mips__
; then
502 elif check_define __ia64__
; then
504 elif check_define __s390__
; then
505 if check_define __s390x__
; then
510 elif check_define __arm__
; then
512 elif check_define __aarch64__
; then
514 elif check_define __hppa__
; then
521 # Normalise host CPU name and set ARCH.
522 # Note that this case should only have supported host CPUs, not guests.
524 ia64|ppc|ppc64|s390|s390x|sparc64|x32
)
527 i386|i486|i586|i686|i86pc|BePC
)
546 # This will result in either an error or falling back to TCI later
550 if test -z "$ARCH"; then
556 # host *BSD for user mode
562 QEMU_CFLAGS
="-mno-cygwin $QEMU_CFLAGS"
563 audio_possible_drivers
="sdl"
568 audio_possible_drivers
="dsound sdl"
569 if check_include dsound.h
; then
570 audio_drv_list
="dsound"
578 audio_possible_drivers
="oss sdl pa"
584 audio_possible_drivers
="oss sdl pa"
585 # needed for kinfo_getvmmap(3) in libutil.h
587 netmap
="" # enable netmap autodetect
588 HOST_VARIANT_DIR
="freebsd"
594 audio_possible_drivers
="oss sdl pa"
595 HOST_VARIANT_DIR
="dragonfly"
601 audio_possible_drivers
="oss sdl"
603 HOST_VARIANT_DIR
="netbsd"
609 audio_possible_drivers
="sdl"
610 HOST_VARIANT_DIR
="openbsd"
615 LDFLAGS_SHARED
="-bundle -undefined dynamic_lookup"
616 if [ "$cpu" = "x86_64" ] ; then
617 QEMU_CFLAGS
="-arch x86_64 $QEMU_CFLAGS"
618 LDFLAGS
="-arch x86_64 $LDFLAGS"
621 audio_drv_list
="coreaudio"
622 audio_possible_drivers
="coreaudio sdl"
623 LDFLAGS
="-framework CoreFoundation -framework IOKit $LDFLAGS"
624 libs_softmmu
="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
625 # Disable attempts to use ObjectiveC features in os/object.h since they
626 # won't work when we're compiling with gcc as a C compiler.
627 QEMU_CFLAGS
="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
628 HOST_VARIANT_DIR
="darwin"
633 install="${INSTALL-ginstall}"
635 smbd
="${SMBD-/usr/sfw/sbin/smbd}"
636 needs_libsunmath
="no"
637 solarisrev
=$
(uname
-r | cut
-f2 -d.
)
638 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
639 if test "$solarisrev" -le 9 ; then
640 if test -f /opt
/SUNWspro
/prod
/lib
/libsunmath.so
.1; then
641 needs_libsunmath
="yes"
642 QEMU_CFLAGS
="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
643 LDFLAGS
="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
644 LIBS
="-lsunmath $LIBS"
646 error_exit
"QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" \
647 "libsunmath from the Sun Studio compilers tools, due to a lack of" \
648 "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" \
649 "Studio 11 can be downloaded from www.sun.com."
653 if test -f /usr
/include
/sys
/soundcard.h
; then
656 audio_possible_drivers
="oss sdl"
657 # needed for CMSG_ macros in sys/socket.h
658 QEMU_CFLAGS
="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
659 # needed for TIOCWIN* defines in termios.h
660 QEMU_CFLAGS
="-D__EXTENSIONS__ $QEMU_CFLAGS"
661 QEMU_CFLAGS
="-std=gnu99 $QEMU_CFLAGS"
662 solarisnetlibs
="-lsocket -lnsl -lresolv"
663 LIBS
="$solarisnetlibs $LIBS"
664 libs_qga
="$solarisnetlibs $libs_qga"
672 QEMU_CFLAGS
="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
673 LIBS
="-lposix_error_mapper -lnetwork $LIBS"
677 audio_possible_drivers
="oss alsa sdl pa"
684 QEMU_INCLUDES
="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES"
688 if [ "$bsd" = "yes" ] ; then
689 if [ "$darwin" != "yes" ] ; then
694 : ${make=${MAKE-make}}
695 : ${install=${INSTALL-install}}
696 : ${python=${PYTHON-python}}
697 : ${smbd=${SMBD-/usr/sbin/smbd}}
699 # Default objcc to clang if available, otherwise use CC
706 if test "$mingw32" = "yes" ; then
709 QEMU_CFLAGS
="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
710 # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
711 QEMU_CFLAGS
="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
712 # MinGW needs -mthreads for TLS and macro _MT.
713 QEMU_CFLAGS
="-mthreads $QEMU_CFLAGS"
714 LIBS
="-lwinmm -lws2_32 -liphlpapi $LIBS"
716 if compile_prog
"" "-liberty" ; then
717 LIBS
="-liberty $LIBS"
719 prefix
="c:/Program Files/QEMU"
722 qemu_docdir
="\${prefix}"
724 sysconfdir
="\${prefix}"
727 libs_qga
="-lws2_32 -lwinmm -lpowrprof -liphlpapi -lnetapi32 $libs_qga"
733 optarg
=$
(expr "x$opt" : 'x[^=]*=\(.*\)')
735 --help|
-h) show_help
=yes
737 --version|
-V) exec cat $source_path/VERSION
739 --prefix=*) prefix
="$optarg"
741 --interp-prefix=*) interp_prefix
="$optarg"
749 --host-cc=*) host_cc
="$optarg"
753 --iasl=*) iasl
="$optarg"
755 --objcc=*) objcc
="$optarg"
757 --make=*) make="$optarg"
759 --install=*) install="$optarg"
761 --python=*) python
="$optarg"
763 --gcov=*) gcov_tool
="$optarg"
765 --smbd=*) smbd
="$optarg"
773 --disable-debug-info)
783 --target-list=*) target_list
="$optarg"
785 --enable-trace-backends=*) trace_backends
="$optarg"
787 # XXX: backwards compatibility
788 --enable-trace-backend=*) trace_backends
="$optarg"
790 --with-trace-file=*) trace_file
="$optarg"
792 --enable-gprof) gprof
="yes"
794 --enable-gcov) gcov
="yes"
798 LDFLAGS
="-static $LDFLAGS"
799 QEMU_PKG_CONFIG_FLAGS
="--static $QEMU_PKG_CONFIG_FLAGS"
801 --mandir=*) mandir
="$optarg"
803 --bindir=*) bindir
="$optarg"
805 --libdir=*) libdir
="$optarg"
807 --libexecdir=*) libexecdir
="$optarg"
809 --includedir=*) includedir
="$optarg"
811 --datadir=*) datadir
="$optarg"
813 --with-confsuffix=*) confsuffix
="$optarg"
815 --docdir=*) qemu_docdir
="$optarg"
817 --sysconfdir=*) sysconfdir
="$optarg"
819 --localstatedir=*) local_statedir
="$optarg"
821 --sbindir=*|
--sharedstatedir=*|\
822 --oldincludedir=*|
--datarootdir=*|
--infodir=*|
--localedir=*|\
823 --htmldir=*|
--dvidir=*|
--pdfdir=*|
--psdir=*)
824 # These switches are silently ignored, for compatibility with
825 # autoconf-generated configure scripts. This allows QEMU's
826 # configure to be used by RPM and similar macros that set
827 # lots of directory switches by default.
829 --with-system-pixman) pixman
="system"
831 --without-system-pixman) pixman
="internal"
833 --without-pixman) pixman
="none"
835 --disable-sdl) sdl
="no"
837 --enable-sdl) sdl
="yes"
839 --with-sdlabi=*) sdlabi
="$optarg"
841 --disable-qom-cast-debug) qom_cast_debug
="no"
843 --enable-qom-cast-debug) qom_cast_debug
="yes"
845 --disable-virtfs) virtfs
="no"
847 --enable-virtfs) virtfs
="yes"
849 --disable-vnc) vnc
="no"
851 --enable-vnc) vnc
="yes"
853 --oss-lib=*) oss_lib
="$optarg"
855 --audio-drv-list=*) audio_drv_list
="$optarg"
857 --block-drv-rw-whitelist=*|
--block-drv-whitelist=*) block_drv_rw_whitelist
=$
(echo "$optarg" |
sed -e 's/,/ /g')
859 --block-drv-ro-whitelist=*) block_drv_ro_whitelist
=$
(echo "$optarg" |
sed -e 's/,/ /g')
861 --enable-debug-tcg) debug_tcg
="yes"
863 --disable-debug-tcg) debug_tcg
="no"
866 # Enable debugging options that aren't excessively noisy
872 --enable-sparse) sparse
="yes"
874 --disable-sparse) sparse
="no"
876 --disable-strip) strip_opt
="no"
878 --disable-vnc-sasl) vnc_sasl
="no"
880 --enable-vnc-sasl) vnc_sasl
="yes"
882 --disable-vnc-jpeg) vnc_jpeg
="no"
884 --enable-vnc-jpeg) vnc_jpeg
="yes"
886 --disable-vnc-png) vnc_png
="no"
888 --enable-vnc-png) vnc_png
="yes"
890 --disable-slirp) slirp
="no"
892 --disable-uuid) uuid
="no"
894 --enable-uuid) uuid
="yes"
896 --disable-vde) vde
="no"
898 --enable-vde) vde
="yes"
900 --disable-netmap) netmap
="no"
902 --enable-netmap) netmap
="yes"
904 --disable-xen) xen
="no"
906 --enable-xen) xen
="yes"
908 --disable-xen-pci-passthrough) xen_pci_passthrough
="no"
910 --enable-xen-pci-passthrough) xen_pci_passthrough
="yes"
912 --disable-xen-pv-domain-build) xen_pv_domain_build
="no"
914 --enable-xen-pv-domain-build) xen_pv_domain_build
="yes"
916 --disable-brlapi) brlapi
="no"
918 --enable-brlapi) brlapi
="yes"
920 --disable-bluez) bluez
="no"
922 --enable-bluez) bluez
="yes"
924 --disable-kvm) kvm
="no"
926 --enable-kvm) kvm
="yes"
928 --disable-tcg-interpreter) tcg_interpreter
="no"
930 --enable-tcg-interpreter) tcg_interpreter
="yes"
932 --disable-cap-ng) cap_ng
="no"
934 --enable-cap-ng) cap_ng
="yes"
936 --disable-spice) spice
="no"
938 --enable-spice) spice
="yes"
940 --disable-libiscsi) libiscsi
="no"
942 --enable-libiscsi) libiscsi
="yes"
944 --disable-libnfs) libnfs
="no"
946 --enable-libnfs) libnfs
="yes"
948 --enable-profiler) profiler
="yes"
950 --disable-cocoa) cocoa
="no"
954 audio_drv_list
="coreaudio $(echo $audio_drv_list | sed s,coreaudio,,g)"
956 --disable-system) softmmu
="no"
958 --enable-system) softmmu
="yes"
965 --disable-linux-user) linux_user
="no"
967 --enable-linux-user) linux_user
="yes"
969 --disable-bsd-user) bsd_user
="no"
971 --enable-bsd-user) bsd_user
="yes"
973 --enable-pie) pie
="yes"
975 --disable-pie) pie
="no"
977 --enable-werror) werror
="yes"
979 --disable-werror) werror
="no"
981 --enable-stack-protector) stack_protector
="yes"
983 --disable-stack-protector) stack_protector
="no"
985 --disable-curses) curses
="no"
987 --enable-curses) curses
="yes"
989 --disable-curl) curl
="no"
991 --enable-curl) curl
="yes"
993 --disable-fdt) fdt
="no"
995 --enable-fdt) fdt
="yes"
997 --disable-linux-aio) linux_aio
="no"
999 --enable-linux-aio) linux_aio
="yes"
1001 --disable-attr) attr
="no"
1003 --enable-attr) attr
="yes"
1005 --disable-blobs) blobs
="no"
1007 --with-pkgversion=*) pkgversion
=" ($optarg)"
1009 --with-coroutine=*) coroutine
="$optarg"
1011 --disable-coroutine-pool) coroutine_pool
="no"
1013 --enable-coroutine-pool) coroutine_pool
="yes"
1015 --disable-docs) docs
="no"
1017 --enable-docs) docs
="yes"
1019 --disable-vhost-net) vhost_net
="no"
1021 --enable-vhost-net) vhost_net
="yes"
1023 --disable-vhost-scsi) vhost_scsi
="no"
1025 --enable-vhost-scsi) vhost_scsi
="yes"
1027 --disable-vhost-vsock) vhost_vsock
="no"
1029 --enable-vhost-vsock) vhost_vsock
="yes"
1031 --disable-opengl) opengl
="no"
1033 --enable-opengl) opengl
="yes"
1035 --disable-rbd) rbd
="no"
1037 --enable-rbd) rbd
="yes"
1039 --disable-xfsctl) xfs
="no"
1041 --enable-xfsctl) xfs
="yes"
1043 --disable-smartcard) smartcard
="no"
1045 --enable-smartcard) smartcard
="yes"
1047 --disable-libusb) libusb
="no"
1049 --enable-libusb) libusb
="yes"
1051 --disable-usb-redir) usb_redir
="no"
1053 --enable-usb-redir) usb_redir
="yes"
1055 --disable-zlib-test) zlib
="no"
1057 --disable-lzo) lzo
="no"
1059 --enable-lzo) lzo
="yes"
1061 --disable-snappy) snappy
="no"
1063 --enable-snappy) snappy
="yes"
1065 --disable-bzip2) bzip2="no"
1067 --enable-bzip2) bzip2="yes"
1069 --enable-guest-agent) guest_agent
="yes"
1071 --disable-guest-agent) guest_agent
="no"
1073 --enable-guest-agent-msi) guest_agent_msi
="yes"
1075 --disable-guest-agent-msi) guest_agent_msi
="no"
1077 --with-vss-sdk) vss_win32_sdk
=""
1079 --with-vss-sdk=*) vss_win32_sdk
="$optarg"
1081 --without-vss-sdk) vss_win32_sdk
="no"
1083 --with-win-sdk) win_sdk
=""
1085 --with-win-sdk=*) win_sdk
="$optarg"
1087 --without-win-sdk) win_sdk
="no"
1089 --enable-tools) want_tools
="yes"
1091 --disable-tools) want_tools
="no"
1093 --enable-seccomp) seccomp
="yes"
1095 --disable-seccomp) seccomp
="no"
1097 --disable-glusterfs) glusterfs
="no"
1099 --enable-glusterfs) glusterfs
="yes"
1101 --disable-archipelago) archipelago
="no"
1103 --enable-archipelago) archipelago
="yes"
1105 --disable-virtio-blk-data-plane|
--enable-virtio-blk-data-plane)
1106 echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2
1108 --disable-gtk) gtk
="no"
1110 --enable-gtk) gtk
="yes"
1112 --tls-priority=*) tls_priority
="$optarg"
1114 --disable-gnutls) gnutls
="no"
1116 --enable-gnutls) gnutls
="yes"
1118 --disable-nettle) nettle
="no"
1120 --enable-nettle) nettle
="yes"
1122 --disable-gcrypt) gcrypt
="no"
1124 --enable-gcrypt) gcrypt
="yes"
1126 --enable-rdma) rdma
="yes"
1128 --disable-rdma) rdma
="no"
1130 --with-gtkabi=*) gtkabi
="$optarg"
1132 --disable-vte) vte
="no"
1134 --enable-vte) vte
="yes"
1136 --disable-virglrenderer) virglrenderer
="no"
1138 --enable-virglrenderer) virglrenderer
="yes"
1140 --disable-tpm) tpm
="no"
1142 --enable-tpm) tpm
="yes"
1144 --disable-libssh2) libssh2
="no"
1146 --enable-libssh2) libssh2
="yes"
1148 --enable-vhdx) vhdx
="yes"
1150 --disable-vhdx) vhdx
="no"
1152 --disable-numa) numa
="no"
1154 --enable-numa) numa
="yes"
1156 --disable-tcmalloc) tcmalloc
="no"
1158 --enable-tcmalloc) tcmalloc
="yes"
1160 --disable-jemalloc) jemalloc
="no"
1162 --enable-jemalloc) jemalloc
="yes"
1164 --disable-replication) replication
="no"
1166 --enable-replication) replication
="yes"
1169 echo "ERROR: unknown option $opt"
1170 echo "Try '$0 --help' for more information"
1176 if ! has
$python; then
1177 error_exit
"Python not found. Use --python=/path/to/python"
1180 # Note that if the Python conditional here evaluates True we will exit
1181 # with status 1 which is a shell 'false' value.
1182 if ! $python -c 'import sys; sys.exit(sys.version_info < (2,6) or sys.version_info >= (3,))'; then
1183 error_exit
"Cannot use '$python', Python 2.6 or later is required." \
1184 "Note that Python 3 or later is not yet supported." \
1185 "Use --python=/path/to/python to specify a supported Python."
1188 # Suppress writing compiled files
1194 LDFLAGS
="-m32 $LDFLAGS"
1198 LDFLAGS
="-m64 $LDFLAGS"
1201 LDFLAGS
="-m32 $LDFLAGS"
1202 CPU_CFLAGS
="-m32 -mcpu=ultrasparc"
1205 LDFLAGS
="-m64 $LDFLAGS"
1206 CPU_CFLAGS
="-m64 -mcpu=ultrasparc"
1210 LDFLAGS
="-m31 $LDFLAGS"
1214 LDFLAGS
="-m64 $LDFLAGS"
1218 LDFLAGS
="-m32 $LDFLAGS"
1219 cc_i386
='$(CC) -m32'
1223 LDFLAGS
="-m64 $LDFLAGS"
1224 cc_i386
='$(CC) -m32'
1228 LDFLAGS
="-mx32 $LDFLAGS"
1229 cc_i386
='$(CC) -m32'
1231 # No special flags required for other host CPUs
1234 QEMU_CFLAGS
="$CPU_CFLAGS $QEMU_CFLAGS"
1235 EXTRA_CFLAGS
="$CPU_CFLAGS $EXTRA_CFLAGS"
1237 # For user-mode emulation the host arch has to be one we explicitly
1238 # support, even if we're using TCI.
1239 if [ "$ARCH" = "unknown" ]; then
1244 default_target_list
=""
1248 if [ "$softmmu" = "yes" ]; then
1249 mak_wilds
="${mak_wilds} $source_path/default-configs/*-softmmu.mak"
1251 if [ "$linux_user" = "yes" ]; then
1252 mak_wilds
="${mak_wilds} $source_path/default-configs/*-linux-user.mak"
1254 if [ "$bsd_user" = "yes" ]; then
1255 mak_wilds
="${mak_wilds} $source_path/default-configs/*-bsd-user.mak"
1258 for config
in $mak_wilds; do
1259 default_target_list
="${default_target_list} $(basename "$config" .mak)"
1262 if test x
"$show_help" = x
"yes" ; then
1265 Usage: configure [options]
1266 Options: [defaults in brackets after descriptions]
1269 --help print this message
1270 --prefix=PREFIX install in PREFIX [$prefix]
1271 --interp-prefix=PREFIX where to find shared libraries, etc.
1272 use %M for cpu name [$interp_prefix]
1273 --target-list=LIST set target list (default: build everything)
1274 $(echo Available targets: $default_target_list | \
1275 fold -s -w 53 | sed -e 's/^/ /')
1277 Advanced options (experts only):
1278 --source-path=PATH path of source code [$source_path]
1279 --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]
1280 --cc=CC use C compiler CC [$cc]
1281 --iasl=IASL use ACPI compiler IASL [$iasl]
1282 --host-cc=CC use C compiler CC [$host_cc] for code run at
1284 --cxx=CXX use C++ compiler CXX [$cxx]
1285 --objcc=OBJCC use Objective-C compiler OBJCC [$objcc]
1286 --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS
1287 --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS
1288 --make=MAKE use specified make [$make]
1289 --install=INSTALL use specified install [$install]
1290 --python=PYTHON use specified python [$python]
1291 --smbd=SMBD use specified smbd [$smbd]
1292 --static enable static build [$static]
1293 --mandir=PATH install man pages in PATH
1294 --datadir=PATH install firmware in PATH$confsuffix
1295 --docdir=PATH install documentation in PATH$confsuffix
1296 --bindir=PATH install binaries in PATH
1297 --libdir=PATH install libraries in PATH
1298 --sysconfdir=PATH install config in PATH$confsuffix
1299 --localstatedir=PATH install local state in PATH (set at runtime on win32)
1300 --with-confsuffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir [$confsuffix]
1301 --enable-debug enable common debug build options
1302 --disable-strip disable stripping binaries
1303 --disable-werror disable compilation abort on warning
1304 --disable-stack-protector disable compiler-provided stack protection
1305 --audio-drv-list=LIST set audio drivers list:
1306 Available drivers: $audio_possible_drivers
1307 --block-drv-whitelist=L Same as --block-drv-rw-whitelist=L
1308 --block-drv-rw-whitelist=L
1309 set block driver read-write whitelist
1310 (affects only QEMU, not qemu-img)
1311 --block-drv-ro-whitelist=L
1312 set block driver read-only whitelist
1313 (affects only QEMU, not qemu-img)
1314 --enable-trace-backends=B Set trace backend
1315 Available backends: $($python $source_path/scripts/tracetool.py --list-backends)
1316 --with-trace-file=NAME Full PATH,NAME of file to store traces
1318 --disable-slirp disable SLIRP userspace network connectivity
1319 --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)
1320 --oss-lib path to OSS library
1321 --cpu=CPU Build for host CPU [$cpu]
1322 --with-coroutine=BACKEND coroutine backend. Supported options:
1323 gthread, ucontext, sigaltstack, windows
1324 --enable-gcov enable test coverage analysis with gcov
1325 --gcov=GCOV use specified gcov [$gcov_tool]
1326 --disable-blobs disable installing provided firmware blobs
1327 --with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent
1328 --with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb)
1329 --tls-priority default TLS protocol/cipher priority string
1331 Optional features, enabled with --enable-FEATURE and
1332 disabled with --disable-FEATURE, default is enabled if available:
1334 system all system emulation targets
1335 user supported user emulation targets
1336 linux-user all linux usermode emulation targets
1337 bsd-user all BSD usermode emulation targets
1338 docs build documentation
1339 guest-agent build the QEMU Guest Agent
1340 guest-agent-msi build guest agent Windows MSI installation package
1341 pie Position Independent Executables
1342 modules modules support
1343 debug-tcg TCG debugging (default is disabled)
1344 debug-info debugging information
1345 sparse sparse checker
1347 gnutls GNUTLS cryptography support
1348 nettle nettle cryptography support
1349 gcrypt libgcrypt cryptography support
1351 --with-sdlabi select preferred SDL ABI 1.2 or 2.0
1353 --with-gtkabi select preferred GTK ABI 2.0 or 3.0
1354 vte vte support for the gtk UI
1357 vnc-sasl SASL encryption for VNC server
1358 vnc-jpeg JPEG lossy compression for VNC server
1359 vnc-png PNG compression for VNC server
1360 cocoa Cocoa UI (Mac OS X only)
1362 xen xen backend driver support
1364 brlapi BrlAPI (Braile)
1365 curl curl connectivity
1367 bluez bluez stack connectivity
1368 kvm KVM acceleration support
1369 rdma RDMA-based migration support
1371 vde support for vde network
1372 netmap support for netmap network
1373 linux-aio Linux AIO support
1374 cap-ng libcap-ng support
1375 attr attr and xattr support
1376 vhost-net vhost-net acceleration support
1378 rbd rados block device (rbd)
1379 libiscsi iscsi support
1381 smartcard smartcard support (libcacard)
1382 libusb libusb (for usb passthrough)
1383 usb-redir usb network redirection support
1384 lzo support of lzo compression library
1385 snappy support of snappy compression library
1386 bzip2 support of bzip2 compression library
1387 (for reading bzip2-compressed dmg images)
1388 seccomp seccomp support
1389 coroutine-pool coroutine freelist (better performance)
1390 glusterfs GlusterFS backend
1391 archipelago Archipelago backend
1393 libssh2 ssh block device support
1394 vhdx support for the Microsoft VHDX image format
1395 numa libnuma support
1396 tcmalloc tcmalloc support
1397 jemalloc jemalloc support
1398 replication replication support
1400 NOTE: The object files are built at the place where configure is launched
1405 # Now we have handled --enable-tcg-interpreter and know we're not just
1406 # printing the help message, bail out if the host CPU isn't supported.
1407 if test "$ARCH" = "unknown"; then
1408 if test "$tcg_interpreter" = "yes" ; then
1409 echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
1411 error_exit
"Unsupported CPU = $cpu, try --enable-tcg-interpreter"
1415 # Consult white-list to determine whether to enable werror
1416 # by default. Only enable by default for git builds
1417 if test -z "$werror" ; then
1418 if test -d "$source_path/.git" -a \
1419 \
( "$linux" = "yes" -o "$mingw32" = "yes" \
) ; then
1426 # check that the C compiler works.
1428 if compile_object
; then
1429 : C compiler works ok
1431 error_exit
"\"$cc\" either does not exist or does not work"
1433 if ! compile_prog
; then
1434 error_exit
"\"$cc\" cannot build an executable (is your linker broken?)"
1437 # Check that the C++ compiler exists and works with the C compiler
1440 int c_function(void);
1441 int main(void) { return c_function(); }
1448 int c_function(void);
1450 int c_function(void) { return 42; }
1455 if do_cxx
$QEMU_CXXFLAGS -o $TMPE $TMPCXX $TMPO $LDFLAGS; then
1456 # C++ compiler $cxx works ok with C compiler $cc
1459 echo "C++ compiler $cxx does not work with C compiler $cc"
1460 echo "Disabling C++ specific optional code"
1464 echo "No C++ compiler available; disabling C++ specific optional code"
1468 gcc_flags
="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
1469 gcc_flags
="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
1470 gcc_flags
="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
1471 gcc_flags
="-Wendif-labels -Wno-shift-negative-value $gcc_flags"
1472 gcc_flags
="-Wno-initializer-overrides $gcc_flags"
1473 gcc_flags
="-Wno-string-plus-int $gcc_flags"
1474 # Note that we do not add -Werror to gcc_flags here, because that would
1475 # enable it for all configure tests. If a configure test failed due
1476 # to -Werror this would just silently disable some features,
1477 # so it's too error prone.
1479 cc_has_warning_flag
() {
1482 # Use the positive sense of the flag when testing for -Wno-wombat
1483 # support (gcc will happily accept the -Wno- form of unknown
1485 optflag
="$(echo $1 | sed -e 's/^-Wno-/-W/')"
1486 compile_prog
"-Werror $optflag" ""
1489 for flag
in $gcc_flags; do
1490 if cc_has_warning_flag
$flag ; then
1491 QEMU_CFLAGS
="$QEMU_CFLAGS $flag"
1495 if test "$stack_protector" != "no"; then
1497 int main(int argc, char *argv[])
1499 char arr[64], *p = arr, *c = argv[0];
1506 gcc_flags
="-fstack-protector-strong -fstack-protector-all"
1508 for flag
in $gcc_flags; do
1509 # We need to check both a compile and a link, since some compiler
1510 # setups fail only on a .c->.o compile and some only at link time
1511 if do_cc
$QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC &&
1512 compile_prog
"-Werror $flag" ""; then
1513 QEMU_CFLAGS
="$QEMU_CFLAGS $flag"
1518 if test "$stack_protector" = yes; then
1519 if test $sp_on = 0; then
1520 error_exit
"Stack protector not supported"
1525 # Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
1526 # large functions that use global variables. The bug is in all releases of
1527 # GCC, but it became particularly acute in 4.6.x and 4.7.x. It is fixed in
1528 # 4.7.3 and 4.8.0. We should be able to delete this at the end of 2013.
1530 #if __GNUC__ == 4 && (__GNUC_MINOR__ == 6 || (__GNUC_MINOR__ == 7 && __GNUC_PATCHLEVEL__ <= 2))
1531 int main(void) { return 0; }
1533 #error No bug in this compiler.
1536 if compile_prog
"-Werror -fno-gcse" "" ; then
1537 TRANSLATE_OPT_CFLAGS
=-fno-gcse
1540 if test "$static" = "yes" ; then
1541 if test "$modules" = "yes" ; then
1542 error_exit
"static and modules are mutually incompatible"
1544 if test "$pie" = "yes" ; then
1545 error_exit
"static and pie are mutually incompatible"
1551 # Unconditional check for compiler __thread support
1553 static __thread int tls_var;
1554 int main(void) { return tls_var; }
1557 if ! compile_prog
"-Werror" "" ; then
1558 error_exit
"Your compiler does not support the __thread specifier for " \
1559 "Thread-Local Storage (TLS). Please upgrade to a version that does."
1562 if test "$pie" = ""; then
1563 case "$cpu-$targetos" in
1564 i386-Linux|x86_64-Linux|x32-Linux|i386-OpenBSD|x86_64-OpenBSD
)
1572 if test "$pie" != "no" ; then
1576 # define THREAD __thread
1581 static THREAD int tls_var;
1583 int main(void) { return tls_var; }
1586 if compile_prog
"-fPIE -DPIE" "-pie"; then
1587 QEMU_CFLAGS
="-fPIE -DPIE $QEMU_CFLAGS"
1588 LDFLAGS
="-pie $LDFLAGS"
1590 if compile_prog
"" "-Wl,-z,relro -Wl,-z,now" ; then
1591 LDFLAGS
="-Wl,-z,relro -Wl,-z,now $LDFLAGS"
1594 if test "$pie" = "yes"; then
1595 error_exit
"PIE not available due to missing toolchain support"
1597 echo "Disabling PIE due to missing toolchain support"
1602 if compile_prog
"-Werror -fno-pie" "-nopie"; then
1603 CFLAGS_NOPIE
="-fno-pie"
1604 LDFLAGS_NOPIE
="-nopie"
1608 ##########################################
1609 # __sync_fetch_and_and requires at least -march=i486. Many toolchains
1610 # use i686 as default anyway, but for those that don't, an explicit
1611 # specification is necessary
1613 if test "$cpu" = "i386"; then
1615 static int sfaa(int *ptr)
1617 return __sync_fetch_and_and(ptr, 0);
1623 val = __sync_val_compare_and_swap(&val, 0, 1);
1628 if ! compile_prog
"" "" ; then
1629 QEMU_CFLAGS
="-march=i486 $QEMU_CFLAGS"
1633 #########################################
1634 # Solaris specific configure tool chain decisions
1636 if test "$solaris" = "yes" ; then
1637 if has
$install; then
1640 error_exit
"Solaris install program not found. Use --install=/usr/ucb/install or" \
1641 "install fileutils from www.blastwave.org using pkg-get -i fileutils" \
1642 "to get ginstall which is used by default (which lives in /opt/csw/bin)"
1644 if test "$(path_of $install)" = "/usr/sbin/install" ; then
1645 error_exit
"Solaris /usr/sbin/install is not an appropriate install program." \
1646 "try ginstall from the GNU fileutils available from www.blastwave.org" \
1647 "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
1652 if test -f /usr
/ccs
/bin
/ar ; then
1653 error_exit
"No path includes ar" \
1654 "Add /usr/ccs/bin to your path and rerun configure"
1656 error_exit
"No path includes ar"
1660 if test -z "${target_list+xxx}" ; then
1661 target_list
="$default_target_list"
1663 target_list
=$
(echo "$target_list" |
sed -e 's/,/ /g')
1666 # Check that we recognised the target name; this allows a more
1667 # friendly error message than if we let it fall through.
1668 for target
in $target_list; do
1669 case " $default_target_list " in
1673 error_exit
"Unknown target name '$target'"
1678 # see if system emulation was really requested
1679 case " $target_list " in
1680 *"-softmmu "*) softmmu
=yes
1686 feature_not_found
() {
1690 error_exit
"User requested feature $feature" \
1691 "configure was not able to find it." \
1696 # big/little endian test
1698 short big_endian[] = { 0x4269, 0x4765, 0x4e64, 0x4961, 0x4e00, 0, };
1699 short little_endian[] = { 0x694c, 0x7454, 0x654c, 0x6e45, 0x6944, 0x6e41, 0, };
1700 extern int foo(short *, short *);
1701 int main(int argc, char *argv[]) {
1702 return foo(big_endian, little_endian);
1706 if compile_object
; then
1707 if grep -q BiGeNdIaN
$TMPO ; then
1709 elif grep -q LiTtLeEnDiAn
$TMPO ; then
1712 echo big
/little
test failed
1715 echo big
/little
test failed
1718 ##########################################
1719 # cocoa implies not SDL or GTK
1720 # (the cocoa UI code currently assumes it is always the active UI
1721 # and doesn't interact well with other UI frontend code)
1722 if test "$cocoa" = "yes"; then
1723 if test "$sdl" = "yes"; then
1724 error_exit
"Cocoa and SDL UIs cannot both be enabled at once"
1726 if test "$gtk" = "yes"; then
1727 error_exit
"Cocoa and GTK UIs cannot both be enabled at once"
1733 ##########################################
1737 #include <sys/socket.h>
1738 #include <linux/ip.h>
1739 int main(void) { return sizeof(struct mmsghdr); }
1741 if compile_prog
"" "" ; then
1747 ##########################################
1748 # MinGW / Mingw-w64 localtime_r/gmtime_r check
1750 if test "$mingw32" = "yes"; then
1751 # Some versions of MinGW / Mingw-w64 lack localtime_r
1752 # and gmtime_r entirely.
1754 # Some versions of Mingw-w64 define a macro for
1755 # localtime_r/gmtime_r.
1757 # Some versions of Mingw-w64 will define functions
1758 # for localtime_r/gmtime_r, but only if you have
1759 # _POSIX_THREAD_SAFE_FUNCTIONS defined. For fun
1760 # though, unistd.h and pthread.h both define
1763 # So this #undef localtime_r and #include <unistd.h>
1764 # are not in fact redundant.
1769 int main(void) { localtime_r(NULL, NULL); return 0; }
1771 if compile_prog
"" "" ; then
1778 ##########################################
1781 if ! has
"$pkg_config_exe"; then
1782 error_exit
"pkg-config binary '$pkg_config_exe' not found"
1785 ##########################################
1788 if test "$linux_user" = "yes"; then
1791 #include <linux/futex.h>
1793 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
1799 if ! compile_object
; then
1800 feature_not_found
"nptl" "Install glibc and linux kernel headers."
1804 ##########################################
1805 # avx2 optimization requirement check
1808 if test "$static" = "no" ; then
1810 #pragma GCC push_options
1811 #pragma GCC target("avx2")
1813 #include <immintrin.h>
1815 static int bar(void *a) {
1816 return _mm256_movemask_epi8(_mm256_cmpeq_epi8(*(__m256i *)a, (__m256i){0}));
1818 static void *bar_ifunc(void) {return (void*) bar;}
1819 int foo(void *a) __attribute__((ifunc("bar_ifunc")));
1820 int main(int argc, char *argv[]) { return foo(argv[0]);}
1822 if compile_object
"" ; then
1823 if has readelf
; then
1824 if readelf
--syms $TMPO 2>/dev
/null |
grep -q "IFUNC.*foo"; then
1831 #########################################
1834 if test "$zlib" != "no" ; then
1837 int main(void) { zlibVersion(); return 0; }
1839 if compile_prog
"" "-lz" ; then
1842 error_exit
"zlib check failed" \
1843 "Make sure to have the zlib libs and headers installed."
1848 ##########################################
1851 if test "$lzo" != "no" ; then
1853 #include <lzo/lzo1x.h>
1854 int main(void) { lzo_version(); return 0; }
1856 if compile_prog
"" "-llzo2" ; then
1857 libs_softmmu
="$libs_softmmu -llzo2"
1860 if test "$lzo" = "yes"; then
1861 feature_not_found
"liblzo2" "Install liblzo2 devel"
1867 ##########################################
1870 if test "$snappy" != "no" ; then
1872 #include <snappy-c.h>
1873 int main(void) { snappy_max_compressed_length(4096); return 0; }
1875 if compile_prog
"" "-lsnappy" ; then
1876 libs_softmmu
="$libs_softmmu -lsnappy"
1879 if test "$snappy" = "yes"; then
1880 feature_not_found
"libsnappy" "Install libsnappy devel"
1886 ##########################################
1889 if test "$bzip2" != "no" ; then
1892 int main(void) { BZ2_bzlibVersion(); return 0; }
1894 if compile_prog
"" "-lbz2" ; then
1897 if test "$bzip2" = "yes"; then
1898 feature_not_found
"libbzip2" "Install libbzip2 devel"
1904 ##########################################
1907 if test "$seccomp" != "no" ; then
1910 libseccomp_minver
="2.1.0"
1913 libseccomp_minver
="2.2.0"
1916 libseccomp_minver
="2.2.3"
1919 libseccomp_minver
="2.3.0"
1922 libseccomp_minver
=""
1926 if test "$libseccomp_minver" != "" &&
1927 $pkg_config --atleast-version=$libseccomp_minver libseccomp
; then
1928 libs_softmmu
="$libs_softmmu $($pkg_config --libs libseccomp)"
1929 QEMU_CFLAGS
="$QEMU_CFLAGS $($pkg_config --cflags libseccomp)"
1932 if test "$seccomp" = "yes" ; then
1933 if test "$libseccomp_minver" != "" ; then
1934 feature_not_found
"libseccomp" \
1935 "Install libseccomp devel >= $libseccomp_minver"
1937 feature_not_found
"libseccomp" \
1938 "libseccomp is not supported for host cpu $cpu"
1944 ##########################################
1947 if test "$xen" != "no" ; then
1948 xen_libs
="-lxenstore -lxenctrl -lxenguest"
1949 xen_stable_libs
="-lxenforeignmemory -lxengnttab -lxenevtchn"
1951 # First we test whether Xen headers and libraries are available.
1952 # If no, we are done and there is no Xen support.
1953 # If yes, more tests are run to detect the Xen version.
1957 #include <xenctrl.h>
1962 if ! compile_prog
"" "$xen_libs" ; then
1964 if test "$xen" = "yes" ; then
1965 feature_not_found
"xen" "Install xen devel"
1971 cat > $TMPC <<EOF &&
1973 * If we have stable libs the we don't want the libxc compat
1974 * layers, regardless of what CFLAGS we may have been given.
1976 #undef XC_WANT_COMPAT_EVTCHN_API
1977 #undef XC_WANT_COMPAT_GNTTAB_API
1978 #undef XC_WANT_COMPAT_MAP_FOREIGN_API
1979 #include <xenctrl.h>
1980 #include <xenstore.h>
1981 #include <xenevtchn.h>
1982 #include <xengnttab.h>
1983 #include <xenforeignmemory.h>
1985 #include <xen/hvm/hvm_info_table.h>
1986 #if !defined(HVM_MAX_VCPUS)
1987 # error HVM_MAX_VCPUS not defined
1990 xc_interface *xc = NULL;
1991 xenforeignmemory_handle *xfmem;
1992 xenevtchn_handle *xe;
1993 xengnttab_handle *xg;
1994 xen_domain_handle_t handle;
1998 xc = xc_interface_open(0, 0, 0);
1999 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2000 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2001 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2002 xc_hvm_create_ioreq_server(xc, 0, HVM_IOREQSRV_BUFIOREQ_ATOMIC, NULL);
2003 xc_domain_create(xc, 0, handle, 0, NULL, NULL);
2005 xfmem = xenforeignmemory_open(0, 0);
2006 xenforeignmemory_map(xfmem, 0, 0, 0, 0, 0);
2008 xe = xenevtchn_open(0, 0);
2011 xg = xengnttab_open(0, 0);
2012 xengnttab_map_grant_ref(xg, 0, 0, 0);
2017 compile_prog
"" "$xen_libs $xen_stable_libs"
2019 xen_ctrl_version
=471
2022 cat > $TMPC <<EOF &&
2023 #include <xenctrl.h>
2026 xc_interface *xc = NULL;
2027 xen_domain_handle_t handle;
2028 xc_domain_create(xc, 0, handle, 0, NULL, NULL);
2032 compile_prog
"" "$xen_libs"
2034 xen_ctrl_version
=470
2039 cat > $TMPC <<EOF &&
2040 #include <xenctrl.h>
2041 #include <xenstore.h>
2043 #include <xen/hvm/hvm_info_table.h>
2044 #if !defined(HVM_MAX_VCPUS)
2045 # error HVM_MAX_VCPUS not defined
2050 xc = xc_interface_open(0, 0, 0);
2051 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2052 xc_gnttab_open(NULL, 0);
2053 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2054 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2055 xc_hvm_create_ioreq_server(xc, 0, HVM_IOREQSRV_BUFIOREQ_ATOMIC, NULL);
2056 xc_reserved_device_memory_map(xc, 0, 0, 0, 0, NULL, 0);
2060 compile_prog
"" "$xen_libs"
2062 xen_ctrl_version
=460
2067 cat > $TMPC <<EOF &&
2068 #include <xenctrl.h>
2069 #include <xenstore.h>
2071 #include <xen/hvm/hvm_info_table.h>
2072 #if !defined(HVM_MAX_VCPUS)
2073 # error HVM_MAX_VCPUS not defined
2078 xc = xc_interface_open(0, 0, 0);
2079 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2080 xc_gnttab_open(NULL, 0);
2081 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2082 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2083 xc_hvm_create_ioreq_server(xc, 0, 0, NULL);
2087 compile_prog
"" "$xen_libs"
2089 xen_ctrl_version
=450
2093 cat > $TMPC <<EOF &&
2094 #include <xenctrl.h>
2095 #include <xenstore.h>
2097 #include <xen/hvm/hvm_info_table.h>
2098 #if !defined(HVM_MAX_VCPUS)
2099 # error HVM_MAX_VCPUS not defined
2104 xc = xc_interface_open(0, 0, 0);
2105 xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
2106 xc_gnttab_open(NULL, 0);
2107 xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
2108 xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
2112 compile_prog
"" "$xen_libs"
2114 xen_ctrl_version
=420
2118 if test "$xen" = "yes" ; then
2119 feature_not_found
"xen (unsupported version)" \
2120 "Install a supported xen (xen 4.2 or newer)"
2125 if test "$xen" = yes; then
2126 if test $xen_ctrl_version -ge 471 ; then
2127 libs_softmmu
="$xen_stable_libs $libs_softmmu"
2129 libs_softmmu
="$xen_libs $libs_softmmu"
2133 if test "$xen_pci_passthrough" != "no"; then
2134 if test "$xen" = "yes" && test "$linux" = "yes"; then
2135 xen_pci_passthrough
=yes
2137 if test "$xen_pci_passthrough" = "yes"; then
2138 error_exit
"User requested feature Xen PCI Passthrough" \
2139 " but this feature requires /sys from Linux"
2141 xen_pci_passthrough
=no
2145 if test "$xen_pv_domain_build" = "yes" &&
2146 test "$xen" != "yes"; then
2147 error_exit
"User requested Xen PV domain builder support" \
2148 "which requires Xen support."
2151 ##########################################
2153 if test "$sparse" != "no" ; then
2157 if test "$sparse" = "yes" ; then
2158 feature_not_found
"sparse" "Install sparse binary"
2164 ##########################################
2168 if $pkg_config --exists "x11"; then
2169 x11_cflags
=$
($pkg_config --cflags x11
)
2170 x11_libs
=$
($pkg_config --libs x11
)
2173 ##########################################
2176 if test "$gtkabi" = ""; then
2177 # The GTK ABI was not specified explicitly, so try whether 2.0 is available.
2178 # Use 3.0 as a fallback if that is available.
2179 if $pkg_config --exists "gtk+-2.0 >= 2.18.0"; then
2181 elif $pkg_config --exists "gtk+-3.0 >= 3.0.0"; then
2188 if test "$gtk" != "no"; then
2189 gtkpackage
="gtk+-$gtkabi"
2190 gtkx11package
="gtk+-x11-$gtkabi"
2191 if test "$gtkabi" = "3.0" ; then
2196 if $pkg_config --exists "$gtkpackage >= $gtkversion"; then
2197 gtk_cflags
=$
($pkg_config --cflags $gtkpackage)
2198 gtk_libs
=$
($pkg_config --libs $gtkpackage)
2199 gtk_version
=$
($pkg_config --modversion $gtkpackage)
2200 if $pkg_config --exists "$gtkx11package >= $gtkversion"; then
2201 gtk_cflags
="$gtk_cflags $x11_cflags"
2202 gtk_libs
="$gtk_libs $x11_libs"
2204 libs_softmmu
="$gtk_libs $libs_softmmu"
2206 elif test "$gtk" = "yes"; then
2207 feature_not_found
"gtk" "Install gtk2 or gtk3 devel"
2214 ##########################################
2218 # Unfortunately some distros have bad pkg-config information for gnutls
2219 # such that it claims to exist but you get a compiler error if you try
2220 # to use the options returned by --libs. Specifically, Ubuntu for --static
2221 # builds doesn't work:
2222 # https://bugs.launchpad.net/ubuntu/+source/gnutls26/+bug/1478035
2224 # So sanity check the cflags/libs before assuming gnutls can be used.
2225 if ! $pkg_config --exists "gnutls"; then
2230 compile_prog
"$($pkg_config --cflags gnutls)" "$($pkg_config --libs gnutls)"
2235 if test "$gnutls" != "no"; then
2236 if gnutls_works
; then
2237 gnutls_cflags
=$
($pkg_config --cflags gnutls
)
2238 gnutls_libs
=$
($pkg_config --libs gnutls
)
2239 libs_softmmu
="$gnutls_libs $libs_softmmu"
2240 libs_tools
="$gnutls_libs $libs_tools"
2241 QEMU_CFLAGS
="$QEMU_CFLAGS $gnutls_cflags"
2244 # gnutls_rnd requires >= 2.11.0
2245 if $pkg_config --exists "gnutls >= 2.11.0"; then
2251 if $pkg_config --exists 'gnutls >= 3.0'; then
2254 elif $pkg_config --exists 'gnutls >= 2.12'; then
2255 case $
($pkg_config --libs --static gnutls
) in
2273 elif test "$gnutls" = "yes"; then
2274 feature_not_found
"gnutls" "Install gnutls devel"
2284 # If user didn't give a --disable/enable-gcrypt flag,
2285 # then mark as disabled if user requested nettle
2286 # explicitly, or if gnutls links to nettle
2287 if test -z "$gcrypt"
2289 if test "$nettle" = "yes" ||
test "$gnutls_nettle" = "yes"
2295 # If user didn't give a --disable/enable-nettle flag,
2296 # then mark as disabled if user requested gcrypt
2297 # explicitly, or if gnutls links to gcrypt
2298 if test -z "$nettle"
2300 if test "$gcrypt" = "yes" ||
test "$gnutls_gcrypt" = "yes"
2306 has_libgcrypt_config
() {
2307 if ! has
"libgcrypt-config"
2312 if test -n "$cross_prefix"
2314 host=$
(libgcrypt-config
--host)
2315 if test "$host-" != $cross_prefix
2324 if test "$gcrypt" != "no"; then
2325 if has_libgcrypt_config
; then
2326 gcrypt_cflags
=$
(libgcrypt-config
--cflags)
2327 gcrypt_libs
=$
(libgcrypt-config
--libs)
2328 # Debian has remove -lgpg-error from libgcrypt-config
2329 # as it "spreads unnecessary dependencies" which in
2330 # turn breaks static builds...
2331 if test "$static" = "yes"
2333 gcrypt_libs
="$gcrypt_libs -lgpg-error"
2335 libs_softmmu
="$gcrypt_libs $libs_softmmu"
2336 libs_tools
="$gcrypt_libs $libs_tools"
2337 QEMU_CFLAGS
="$QEMU_CFLAGS $gcrypt_cflags"
2339 if test -z "$nettle"; then
2346 gcry_kdf_derive(NULL, 0, GCRY_KDF_PBKDF2,
2348 NULL, 0, 0, 0, NULL);
2352 if compile_prog
"$gcrypt_cflags" "$gcrypt_libs" ; then
2356 if test "$gcrypt" = "yes"; then
2357 feature_not_found
"gcrypt" "Install gcrypt devel"
2365 if test "$nettle" != "no"; then
2366 if $pkg_config --exists "nettle"; then
2367 nettle_cflags
=$
($pkg_config --cflags nettle
)
2368 nettle_libs
=$
($pkg_config --libs nettle
)
2369 nettle_version
=$
($pkg_config --modversion nettle
)
2370 libs_softmmu
="$nettle_libs $libs_softmmu"
2371 libs_tools
="$nettle_libs $libs_tools"
2372 QEMU_CFLAGS
="$QEMU_CFLAGS $nettle_cflags"
2377 #include <nettle/pbkdf2.h>
2379 pbkdf2_hmac_sha256(8, NULL, 1000, 8, NULL, 8, NULL);
2383 if compile_prog
"$nettle_cflags" "$nettle_libs" ; then
2387 if test "$nettle" = "yes"; then
2388 feature_not_found
"nettle" "Install nettle devel"
2395 if test "$gcrypt" = "yes" && test "$nettle" = "yes"
2397 error_exit
"Only one of gcrypt & nettle can be enabled"
2400 ##########################################
2401 # libtasn1 - only for the TLS creds/session test suite
2406 if $pkg_config --exists "libtasn1"; then
2407 tasn1_cflags
=$
($pkg_config --cflags libtasn1
)
2408 tasn1_libs
=$
($pkg_config --libs libtasn1
)
2414 ##########################################
2415 # getifaddrs (for tests/test-io-channel-socket )
2418 if ! check_include
"ifaddrs.h" ; then
2422 ##########################################
2425 if test "$vte" != "no"; then
2426 if test "$gtkabi" = "3.0"; then
2427 vteminversion
="0.32.0"
2428 if $pkg_config --exists "vte-2.91"; then
2429 vtepackage
="vte-2.91"
2431 vtepackage
="vte-2.90"
2435 vteminversion
="0.24.0"
2437 if $pkg_config --exists "$vtepackage >= $vteminversion"; then
2438 vte_cflags
=$
($pkg_config --cflags $vtepackage)
2439 vte_libs
=$
($pkg_config --libs $vtepackage)
2440 vteversion
=$
($pkg_config --modversion $vtepackage)
2441 libs_softmmu
="$vte_libs $libs_softmmu"
2443 elif test "$vte" = "yes"; then
2444 if test "$gtkabi" = "3.0"; then
2445 feature_not_found
"vte" "Install libvte-2.90/2.91 devel"
2447 feature_not_found
"vte" "Install libvte devel"
2454 ##########################################
2457 # Look for sdl configuration program (pkg-config or sdl-config). Try
2458 # sdl-config even without cross prefix, and favour pkg-config over sdl-config.
2460 if test "$sdlabi" = ""; then
2461 if $pkg_config --exists "sdl"; then
2463 elif $pkg_config --exists "sdl2"; then
2470 if test $sdlabi = "2.0"; then
2471 sdl_config
=$sdl2_config
2473 sdlconfigname
=sdl2_config
2474 elif test $sdlabi = "1.2"; then
2476 sdlconfigname
=sdl_config
2478 error_exit
"Unknown sdlabi $sdlabi, must be 1.2 or 2.0"
2481 if test "$(basename $sdl_config)" != $sdlconfigname && ! has
${sdl_config}; then
2482 sdl_config
=$sdlconfigname
2485 if $pkg_config $sdlname --exists; then
2486 sdlconfig
="$pkg_config $sdlname"
2487 sdlversion
=$
($sdlconfig --modversion 2>/dev
/null
)
2488 elif has
${sdl_config}; then
2489 sdlconfig
="$sdl_config"
2490 sdlversion
=$
($sdlconfig --version)
2492 if test "$sdl" = "yes" ; then
2493 feature_not_found
"sdl" "Install SDL devel"
2497 if test -n "$cross_prefix" && test "$(basename "$sdlconfig")" = sdl-config
; then
2498 echo warning
: using
"\"$sdlconfig\"" to detect cross-compiled sdl
>&2
2502 if test "$sdl" != "no" ; then
2505 #undef main /* We don't want SDL to override our main() */
2506 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
2508 sdl_cflags
=$
($sdlconfig --cflags 2>/dev
/null
)
2509 if test "$static" = "yes" ; then
2510 sdl_libs
=$
($sdlconfig --static-libs 2>/dev
/null
)
2512 sdl_libs
=$
($sdlconfig --libs 2>/dev
/null
)
2514 if compile_prog
"$sdl_cflags" "$sdl_libs" ; then
2515 if test $
(echo $sdlversion |
sed 's/[^0-9]//g') -lt 121 ; then
2521 # static link with sdl ? (note: sdl.pc's --static --libs is broken)
2522 if test "$sdl" = "yes" -a "$static" = "yes" ; then
2523 if test $?
= 0 && echo $sdl_libs |
grep -- -laa > /dev
/null
; then
2524 sdl_libs
="$sdl_libs $(aalib-config --static-libs 2>/dev/null)"
2525 sdl_cflags
="$sdl_cflags $(aalib-config --cflags 2>/dev/null)"
2527 if compile_prog
"$sdl_cflags" "$sdl_libs" ; then
2533 else # sdl not found
2534 if test "$sdl" = "yes" ; then
2535 feature_not_found
"sdl" "Install SDL devel"
2538 fi # sdl compile test
2541 if test "$sdl" = "yes" ; then
2544 #if defined(SDL_VIDEO_DRIVER_X11)
2545 #include <X11/XKBlib.h>
2547 #error No x11 support
2549 int main(void) { return 0; }
2551 if compile_prog
"$sdl_cflags $x11_cflags" "$sdl_libs $x11_libs" ; then
2552 sdl_cflags
="$sdl_cflags $x11_cflags"
2553 sdl_libs
="$sdl_libs $x11_libs"
2555 libs_softmmu
="$sdl_libs $libs_softmmu"
2558 ##########################################
2559 # RDMA needs OpenFabrics libraries
2560 if test "$rdma" != "no" ; then
2562 #include <rdma/rdma_cma.h>
2563 int main(void) { return 0; }
2565 rdma_libs
="-lrdmacm -libverbs"
2566 if compile_prog
"" "$rdma_libs" ; then
2568 libs_softmmu
="$libs_softmmu $rdma_libs"
2570 if test "$rdma" = "yes" ; then
2572 " OpenFabrics librdmacm/libibverbs not present." \
2574 " (1) Fast: Install infiniband packages from your distro." \
2575 " (2) Cleanest: Install libraries from www.openfabrics.org" \
2576 " (3) Also: Install softiwarp if you don't have RDMA hardware"
2583 ##########################################
2584 # VNC SASL detection
2585 if test "$vnc" = "yes" -a "$vnc_sasl" != "no" ; then
2587 #include <sasl/sasl.h>
2589 int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
2591 # Assuming Cyrus-SASL installed in /usr prefix
2593 vnc_sasl_libs
="-lsasl2"
2594 if compile_prog
"$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
2596 libs_softmmu
="$vnc_sasl_libs $libs_softmmu"
2597 QEMU_CFLAGS
="$QEMU_CFLAGS $vnc_sasl_cflags"
2599 if test "$vnc_sasl" = "yes" ; then
2600 feature_not_found
"vnc-sasl" "Install Cyrus SASL devel"
2606 ##########################################
2607 # VNC JPEG detection
2608 if test "$vnc" = "yes" -a "$vnc_jpeg" != "no" ; then
2611 #include <jpeglib.h>
2612 int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
2615 vnc_jpeg_libs
="-ljpeg"
2616 if compile_prog
"$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
2618 libs_softmmu
="$vnc_jpeg_libs $libs_softmmu"
2619 QEMU_CFLAGS
="$QEMU_CFLAGS $vnc_jpeg_cflags"
2621 if test "$vnc_jpeg" = "yes" ; then
2622 feature_not_found
"vnc-jpeg" "Install libjpeg-turbo devel"
2628 ##########################################
2630 if test "$vnc" = "yes" -a "$vnc_png" != "no" ; then
2632 //#include <stdio.h>
2636 png_structp png_ptr;
2637 png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
2638 return png_ptr != 0;
2641 if $pkg_config libpng
--exists; then
2642 vnc_png_cflags
=$
($pkg_config libpng
--cflags)
2643 vnc_png_libs
=$
($pkg_config libpng
--libs)
2646 vnc_png_libs
="-lpng"
2648 if compile_prog
"$vnc_png_cflags" "$vnc_png_libs" ; then
2650 libs_softmmu
="$vnc_png_libs $libs_softmmu"
2651 QEMU_CFLAGS
="$QEMU_CFLAGS $vnc_png_cflags"
2653 if test "$vnc_png" = "yes" ; then
2654 feature_not_found
"vnc-png" "Install libpng devel"
2660 ##########################################
2661 # fnmatch() probe, used for ACL routines
2664 #include <fnmatch.h>
2667 fnmatch("foo", "foo", 0);
2671 if compile_prog
"" "" ; then
2675 ##########################################
2676 # uuid_generate() probe, used for vdi block driver
2677 # Note that on some systems (notably MacOSX) no extra library
2678 # need be linked to get the uuid functions.
2679 if test "$uuid" != "no" ; then
2682 #include <uuid/uuid.h>
2686 uuid_generate(my_uuid);
2690 if compile_prog
"" "" ; then
2692 elif compile_prog
"" "$uuid_libs" ; then
2694 libs_softmmu
="$uuid_libs $libs_softmmu"
2695 libs_tools
="$uuid_libs $libs_tools"
2697 if test "$uuid" = "yes" ; then
2698 feature_not_found
"uuid" "Install libuuid devel"
2704 if test "$vhdx" = "yes" ; then
2705 if test "$uuid" = "no" ; then
2706 error_exit
"uuid required for VHDX support"
2708 elif test "$vhdx" != "no" ; then
2709 if test "$uuid" = "yes" ; then
2716 ##########################################
2717 # xfsctl() probe, used for raw-posix
2718 if test "$xfs" != "no" ; then
2720 #include <stddef.h> /* NULL */
2721 #include <xfs/xfs.h>
2724 xfsctl(NULL, 0, 0, NULL);
2728 if compile_prog
"" "" ; then
2731 if test "$xfs" = "yes" ; then
2732 feature_not_found
"xfs" "Instal xfsprogs/xfslibs devel"
2738 ##########################################
2739 # vde libraries probe
2740 if test "$vde" != "no" ; then
2741 vde_libs
="-lvdeplug"
2743 #include <libvdeplug.h>
2746 struct vde_open_args a = {0, 0, 0};
2752 if compile_prog
"" "$vde_libs" ; then
2754 libs_softmmu
="$vde_libs $libs_softmmu"
2755 libs_tools
="$vde_libs $libs_tools"
2757 if test "$vde" = "yes" ; then
2758 feature_not_found
"vde" "Install vde (Virtual Distributed Ethernet) devel"
2764 ##########################################
2765 # netmap support probe
2766 # Apart from looking for netmap headers, we make sure that the host API version
2767 # supports the netmap backend (>=11). The upper bound (15) is meant to simulate
2768 # a minor/major version number. Minor new features will be marked with values up
2769 # to 15, and if something happens that requires a change to the backend we will
2770 # move above 15, submit the backend fixes and modify this two bounds.
2771 if test "$netmap" != "no" ; then
2773 #include <inttypes.h>
2775 #include <net/netmap.h>
2776 #include <net/netmap_user.h>
2777 #if (NETMAP_API < 11) || (NETMAP_API > 15)
2780 int main(void) { return 0; }
2782 if compile_prog
"" "" ; then
2785 if test "$netmap" = "yes" ; then
2786 feature_not_found
"netmap"
2792 ##########################################
2793 # libcap-ng library probe
2794 if test "$cap_ng" != "no" ; then
2800 capng_capability_to_name(CAPNG_EFFECTIVE);
2804 if compile_prog
"" "$cap_libs" ; then
2806 libs_tools
="$cap_libs $libs_tools"
2808 if test "$cap_ng" = "yes" ; then
2809 feature_not_found
"cap_ng" "Install libcap-ng devel"
2815 ##########################################
2816 # Sound support libraries probe
2827 int main(void) { $exp }
2829 if compile_prog
"$cfl" "$lib" ; then
2832 error_exit
"$drv check failed" \
2833 "Make sure to have the $drv libs and headers installed."
2837 audio_drv_list
=$
(echo "$audio_drv_list" |
sed -e 's/,/ /g')
2838 for drv
in $audio_drv_list; do
2841 audio_drv_probe
$drv alsa
/asoundlib.h
-lasound \
2842 "return snd_pcm_close((snd_pcm_t *)0);"
2843 libs_softmmu
="-lasound $libs_softmmu"
2847 audio_drv_probe
$drv pulse
/pulseaudio.h
"-lpulse" \
2848 "pa_context_set_source_output_volume(NULL, 0, NULL, NULL, NULL); return 0;"
2849 libs_softmmu
="-lpulse $libs_softmmu"
2854 libs_softmmu
="-framework CoreAudio $libs_softmmu"
2858 libs_softmmu
="-lole32 -ldxguid $libs_softmmu"
2863 libs_softmmu
="$oss_lib $libs_softmmu"
2867 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
2871 echo "$audio_possible_drivers" |
grep -q "\<$drv\>" ||
{
2872 error_exit
"Unknown driver '$drv' selected" \
2873 "Possible drivers are: $audio_possible_drivers"
2879 ##########################################
2882 if test "$brlapi" != "no" ; then
2883 brlapi_libs
="-lbrlapi"
2887 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
2889 if compile_prog
"" "$brlapi_libs" ; then
2891 libs_softmmu
="$brlapi_libs $libs_softmmu"
2893 if test "$brlapi" = "yes" ; then
2894 feature_not_found
"brlapi" "Install brlapi devel"
2900 ##########################################
2902 if test "$curses" != "no" ; then
2903 if test "$mingw32" = "yes" ; then
2904 curses_list
="$($pkg_config --libs ncurses 2>/dev/null):-lpdcurses"
2906 curses_list
="$($pkg_config --libs ncurses 2>/dev/null):-lncurses:-lcurses"
2912 const char *s = curses_version();
2918 for curses_lib
in $curses_list; do
2920 if compile_prog
"" "$curses_lib" ; then
2922 libs_softmmu
="$curses_lib $libs_softmmu"
2927 if test "$curses_found" = "yes" ; then
2930 if test "$curses" = "yes" ; then
2931 feature_not_found
"curses" "Install ncurses devel"
2937 ##########################################
2939 if test "$curl" != "no" ; then
2940 if $pkg_config libcurl
--exists; then
2941 curlconfig
="$pkg_config libcurl"
2943 curlconfig
=curl-config
2946 #include <curl/curl.h>
2947 int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
2949 curl_cflags
=$
($curlconfig --cflags 2>/dev
/null
)
2950 curl_libs
=$
($curlconfig --libs 2>/dev
/null
)
2951 if compile_prog
"$curl_cflags" "$curl_libs" ; then
2954 if test "$curl" = "yes" ; then
2955 feature_not_found
"curl" "Install libcurl devel"
2961 ##########################################
2962 # bluez support probe
2963 if test "$bluez" != "no" ; then
2965 #include <bluetooth/bluetooth.h>
2966 int main(void) { return bt_error(0); }
2968 bluez_cflags
=$
($pkg_config --cflags bluez
2>/dev
/null
)
2969 bluez_libs
=$
($pkg_config --libs bluez
2>/dev
/null
)
2970 if compile_prog
"$bluez_cflags" "$bluez_libs" ; then
2972 libs_softmmu
="$bluez_libs $libs_softmmu"
2974 if test "$bluez" = "yes" ; then
2975 feature_not_found
"bluez" "Install bluez-libs/libbluetooth devel"
2981 ##########################################
2982 # glib support probe
2985 glib_modules
=gthread-2.0
2986 if test "$modules" = yes; then
2987 glib_modules
="$glib_modules gmodule-2.0"
2990 for i
in $glib_modules; do
2991 if $pkg_config --atleast-version=$glib_req_ver $i; then
2992 glib_cflags
=$
($pkg_config --cflags $i)
2993 glib_libs
=$
($pkg_config --libs $i)
2994 CFLAGS
="$glib_cflags $CFLAGS"
2995 LIBS
="$glib_libs $LIBS"
2996 libs_qga
="$glib_libs $libs_qga"
2998 error_exit
"glib-$glib_req_ver $i is required to compile QEMU"
3002 # Sanity check that the current size_t matches the
3003 # size that glib thinks it should be. This catches
3004 # problems on multi-arch where people try to build
3005 # 32-bit QEMU while pointing at 64-bit glib headers
3010 #define QEMU_BUILD_BUG_ON(x) \
3011 typedef char qemu_build_bug_on[(x)?-1:1] __attribute__((unused));
3014 QEMU_BUILD_BUG_ON(sizeof(size_t) != GLIB_SIZEOF_SIZE_T);
3019 if ! compile_prog
"$CFLAGS" "$LIBS" ; then
3020 error_exit
"sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T."\
3021 "You probably need to set PKG_CONFIG_LIBDIR"\
3022 "to point to the right pkg-config files for your"\
3026 # g_test_trap_subprocess added in 2.38. Used by some tests.
3028 if ! $pkg_config --atleast-version=2.38 glib-2.0
; then
3032 # Silence clang 3.5.0 warnings about glib attribute __alloc_size__ usage
3035 int main(void) { return 0; }
3037 if ! compile_prog
"$glib_cflags -Werror" "$glib_libs" ; then
3038 if cc_has_warning_flag
"-Wno-unknown-attributes"; then
3039 glib_cflags
="-Wno-unknown-attributes $glib_cflags"
3040 CFLAGS
="-Wno-unknown-attributes $CFLAGS"
3044 ##########################################
3045 # SHA command probe for modules
3046 if test "$modules" = yes; then
3047 shacmd_probe
="sha1sum sha1 shasum"
3048 for c
in $shacmd_probe; do
3054 if test "$shacmd" = ""; then
3055 error_exit
"one of the checksum commands is required to enable modules: $shacmd_probe"
3059 ##########################################
3060 # pixman support probe
3062 if test "$pixman" = ""; then
3063 if test "$want_tools" = "no" -a "$softmmu" = "no"; then
3065 elif $pkg_config --atleast-version=0.21.8 pixman-1
> /dev
/null
2>&1; then
3071 if test "$pixman" = "none"; then
3072 if test "$want_tools" != "no" -o "$softmmu" != "no"; then
3073 error_exit
"pixman disabled but system emulation or tools build" \
3074 "enabled. You can turn off pixman only if you also" \
3075 "disable all system emulation targets and the tools" \
3076 "build with '--disable-tools --disable-system'."
3080 elif test "$pixman" = "system"; then
3081 # pixman version has been checked above
3082 pixman_cflags
=$
($pkg_config --cflags pixman-1
)
3083 pixman_libs
=$
($pkg_config --libs pixman-1
)
3085 if test ! -d ${source_path}/pixman
/pixman
; then
3086 error_exit
"pixman >= 0.21.8 not present. Your options:" \
3087 " (1) Preferred: Install the pixman devel package (any recent" \
3088 " distro should have packages as Xorg needs pixman too)." \
3089 " (2) Fetch the pixman submodule, using:" \
3090 " git submodule update --init pixman"
3092 mkdir
-p pixman
/pixman
3093 pixman_cflags
="-I\$(SRC_PATH)/pixman/pixman -I\$(BUILD_DIR)/pixman/pixman"
3094 pixman_libs
="-L\$(BUILD_DIR)/pixman/pixman/.libs -lpixman-1"
3097 ##########################################
3100 if test "$cap" != "no" ; then
3103 #include <sys/capability.h>
3104 int main(void) { cap_t caps; caps = cap_init(); return caps != NULL; }
3106 if compile_prog
"" "-lcap" ; then
3113 ##########################################
3115 PTHREADLIBS_LIST
="-pthread -lpthread -lpthreadGC2"
3119 #include <pthread.h>
3120 static void *f(void *p) { return NULL; }
3123 pthread_create(&thread, 0, f, 0);
3127 if compile_prog
"" "" ; then
3130 for pthread_lib
in $PTHREADLIBS_LIST; do
3131 if compile_prog
"" "$pthread_lib" ; then
3134 for lib_entry
in $LIBS; do
3135 if test "$lib_entry" = "$pthread_lib"; then
3140 if test "$found" = "no"; then
3141 LIBS
="$pthread_lib $LIBS"
3143 PTHREAD_LIB
="$pthread_lib"
3149 if test "$mingw32" != yes -a "$pthread" = no
; then
3150 error_exit
"pthread check failed" \
3151 "Make sure to have the pthread libs and headers installed."
3154 # check for pthread_setname_np
3155 pthread_setname_np
=no
3157 #include <pthread.h>
3159 static void *f(void *p) { return NULL; }
3163 pthread_create(&thread, 0, f, 0);
3164 pthread_setname_np(thread, "QEMU");
3168 if compile_prog
"" "$pthread_lib" ; then
3169 pthread_setname_np
=yes
3172 ##########################################
3174 if test "$rbd" != "no" ; then
3177 #include <rbd/librbd.h>
3180 rados_create(&cluster, NULL);
3184 rbd_libs
="-lrbd -lrados"
3185 if compile_prog
"" "$rbd_libs" ; then
3188 if test "$rbd" = "yes" ; then
3189 feature_not_found
"rados block device" "Install librbd/ceph devel"
3195 ##########################################
3197 min_libssh2_version
=1.2.8
3198 if test "$libssh2" != "no" ; then
3199 if $pkg_config --atleast-version=$min_libssh2_version libssh2
; then
3200 libssh2_cflags
=$
($pkg_config libssh2
--cflags)
3201 libssh2_libs
=$
($pkg_config libssh2
--libs)
3204 if test "$libssh2" = "yes" ; then
3205 error_exit
"libssh2 >= $min_libssh2_version required for --enable-libssh2"
3211 ##########################################
3212 # libssh2_sftp_fsync probe
3214 if test "$libssh2" = "yes"; then
3217 #include <libssh2.h>
3218 #include <libssh2_sftp.h>
3220 LIBSSH2_SESSION *session;
3222 LIBSSH2_SFTP_HANDLE *sftp_handle;
3223 session = libssh2_session_init ();
3224 sftp = libssh2_sftp_init (session);
3225 sftp_handle = libssh2_sftp_open (sftp, "/", 0, 0);
3226 libssh2_sftp_fsync (sftp_handle);
3230 # libssh2_cflags/libssh2_libs defined in previous test.
3231 if compile_prog
"$libssh2_cflags" "$libssh2_libs" ; then
3232 QEMU_CFLAGS
="-DHAS_LIBSSH2_SFTP_FSYNC $QEMU_CFLAGS"
3236 ##########################################
3239 if test "$linux_aio" != "no" ; then
3242 #include <sys/eventfd.h>
3244 int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
3246 if compile_prog
"" "-laio" ; then
3249 if test "$linux_aio" = "yes" ; then
3250 feature_not_found
"linux AIO" "Install libaio devel"
3256 ##########################################
3257 # TPM passthrough is only on x86 Linux
3259 if test "$targetos" = Linux
&& test "$cpu" = i386
-o "$cpu" = x86_64
; then
3260 tpm_passthrough
=$tpm
3265 ##########################################
3268 if test "$attr" != "no" ; then
3271 #include <sys/types.h>
3272 #ifdef CONFIG_LIBATTR
3273 #include <attr/xattr.h>
3275 #include <sys/xattr.h>
3277 int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
3279 if compile_prog
"" "" ; then
3281 # Older distros have <attr/xattr.h>, and need -lattr:
3282 elif compile_prog
"-DCONFIG_LIBATTR" "-lattr" ; then
3287 if test "$attr" = "yes" ; then
3288 feature_not_found
"ATTR" "Install libc6 or libattr devel"
3294 ##########################################
3297 #include <sys/types.h>
3298 #include <sys/uio.h>
3300 int main(void) { return sizeof(struct iovec); }
3303 if compile_prog
"" "" ; then
3307 ##########################################
3310 #include <sys/types.h>
3311 #include <sys/uio.h>
3313 int main(void) { return preadv(0, 0, 0, 0); }
3316 if compile_prog
"" "" ; then
3320 ##########################################
3322 # fdt support is mandatory for at least some target architectures,
3323 # so insist on it if we're building those system emulators.
3325 for target
in $target_list; do
3327 aarch64
*-softmmu|arm
*-softmmu|ppc
*-softmmu|microblaze
*-softmmu)
3333 if test "$fdt_required" = "yes"; then
3334 if test "$fdt" = "no"; then
3335 error_exit
"fdt disabled but some requested targets require it." \
3336 "You can turn off fdt only if you also disable all the system emulation" \
3337 "targets which need it (by specifying a cut down --target-list)."
3342 if test "$fdt" != "no" ; then
3344 # explicitly check for libfdt_env.h as it is missing in some stable installs
3345 # and test for required functions to make sure we are on a version >= 1.4.0
3348 #include <libfdt_env.h>
3349 int main(void) { fdt_get_property_by_offset(0, 0, 0); return 0; }
3351 if compile_prog
"" "$fdt_libs" ; then
3352 # system DTC is good - use it
3354 elif test -d ${source_path}/dtc
/libfdt
; then
3355 # have submodule DTC - use it
3359 if [ "$pwd_is_source_path" != "y" ] ; then
3360 symlink
"$source_path/dtc/Makefile" "dtc/Makefile"
3361 symlink
"$source_path/dtc/scripts" "dtc/scripts"
3363 fdt_cflags
="-I\$(SRC_PATH)/dtc/libfdt"
3364 fdt_libs
="-L\$(BUILD_DIR)/dtc/libfdt $fdt_libs"
3365 elif test "$fdt" = "yes" ; then
3366 # have neither and want - prompt for system/submodule install
3367 error_exit
"DTC (libfdt) version >= 1.4.0 not present. Your options:" \
3368 " (1) Preferred: Install the DTC (libfdt) devel package" \
3369 " (2) Fetch the DTC submodule, using:" \
3370 " git submodule update --init dtc"
3372 # don't have and don't want
3378 libs_softmmu
="$libs_softmmu $fdt_libs"
3380 ##########################################
3381 # opengl probe (for sdl2, gtk, milkymist-tmu2)
3383 if test "$opengl" != "no" ; then
3384 opengl_pkgs
="epoxy libdrm gbm"
3385 if $pkg_config $opengl_pkgs x11
; then
3386 opengl_cflags
="$($pkg_config --cflags $opengl_pkgs) $x11_cflags"
3387 opengl_libs
="$($pkg_config --libs $opengl_pkgs) $x11_libs"
3389 if test "$gtk" = "yes" && $pkg_config --exists "$gtkpackage >= 3.16"; then
3393 if test "$opengl" = "yes" ; then
3394 feature_not_found
"opengl" "Please install opengl (mesa) devel pkgs: $opengl_pkgs"
3402 if test "$opengl" = "yes"; then
3404 #include <epoxy/egl.h>
3405 #ifndef EGL_MESA_image_dma_buf_export
3406 # error mesa/epoxy lacks support for dmabufs (mesa 10.6+)
3408 int main(void) { return 0; }
3410 if compile_prog
"" "" ; then
3415 ##########################################
3417 if test "$archipelago" != "no" ; then
3420 #include <xseg/xseg.h>
3421 #include <xseg/protocol.h>
3427 archipelago_libs
=-lxseg
3428 if compile_prog
"" "$archipelago_libs"; then
3430 libs_tools
="$archipelago_libs $libs_tools"
3431 libs_softmmu
="$archipelago_libs $libs_softmmu"
3433 echo "WARNING: Please check the licenses of QEMU and libxseg carefully."
3434 echo "GPLv3 versions of libxseg may not be compatible with QEMU's"
3435 echo "license and therefore prevent redistribution."
3437 echo "To disable Archipelago, use --disable-archipelago"
3439 if test "$archipelago" = "yes" ; then
3440 feature_not_found
"Archipelago backend support" "Install libxseg devel"
3447 ##########################################
3449 if test "$glusterfs" != "no" ; then
3450 if $pkg_config --atleast-version=3 glusterfs-api
; then
3452 glusterfs_cflags
=$
($pkg_config --cflags glusterfs-api
)
3453 glusterfs_libs
=$
($pkg_config --libs glusterfs-api
)
3454 if $pkg_config --atleast-version=4 glusterfs-api
; then
3455 glusterfs_xlator_opt
="yes"
3457 if $pkg_config --atleast-version=5 glusterfs-api
; then
3458 glusterfs_discard
="yes"
3460 if $pkg_config --atleast-version=6 glusterfs-api
; then
3461 glusterfs_zerofill
="yes"
3464 if test "$glusterfs" = "yes" ; then
3465 feature_not_found
"GlusterFS backend support" \
3466 "Install glusterfs-api devel >= 3"
3472 # Check for inotify functions when we are building linux-user
3473 # emulator. This is done because older glibc versions don't
3474 # have syscall stubs for these implemented. In that case we
3475 # don't provide them even if kernel supports them.
3479 #include <sys/inotify.h>
3484 /* try to start inotify */
3485 return inotify_init();
3488 if compile_prog
"" "" ; then
3494 #include <sys/inotify.h>
3499 /* try to start inotify */
3500 return inotify_init1(0);
3503 if compile_prog
"" "" ; then
3507 # check if utimensat and futimens are supported
3510 #define _ATFILE_SOURCE
3513 #include <sys/stat.h>
3517 utimensat(AT_FDCWD, "foo", NULL, 0);
3522 if compile_prog
"" "" ; then
3526 # check if pipe2 is there
3535 return pipe2(pipefd, O_CLOEXEC);
3538 if compile_prog
"" "" ; then
3542 # check if accept4 is there
3545 #include <sys/socket.h>
3550 accept4(0, NULL, NULL, SOCK_CLOEXEC);
3554 if compile_prog
"" "" ; then
3558 # check if tee/splice is there. vmsplice was added same time.
3568 len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
3569 splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
3573 if compile_prog
"" "" ; then
3577 ##########################################
3580 if test "$numa" != "no" ; then
3583 int main(void) { return numa_available(); }
3586 if compile_prog
"" "-lnuma" ; then
3588 libs_softmmu
="-lnuma $libs_softmmu"
3590 if test "$numa" = "yes" ; then
3591 feature_not_found
"numa" "install numactl devel"
3597 if test "$tcmalloc" = "yes" && test "$jemalloc" = "yes" ; then
3598 echo "ERROR: tcmalloc && jemalloc can't be used at the same time"
3602 ##########################################
3605 if test "$tcmalloc" = "yes" ; then
3608 int main(void) { malloc(1); return 0; }
3611 if compile_prog
"" "-ltcmalloc" ; then
3612 LIBS
="-ltcmalloc $LIBS"
3614 feature_not_found
"tcmalloc" "install gperftools devel"
3618 ##########################################
3621 if test "$jemalloc" = "yes" ; then
3624 int main(void) { malloc(1); return 0; }
3627 if compile_prog
"" "-ljemalloc" ; then
3628 LIBS
="-ljemalloc $LIBS"
3630 feature_not_found
"jemalloc" "install jemalloc devel"
3634 ##########################################
3639 #include <sys/syscall.h>
3641 int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
3644 if compile_prog
"" "" ; then
3648 # check if eventfd is supported
3651 #include <sys/eventfd.h>
3655 return eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
3658 if compile_prog
"" "" ; then
3662 # check if memfd is supported
3665 #include <sys/memfd.h>
3669 return memfd_create("foo", MFD_ALLOW_SEALING);
3672 if compile_prog
"" "" ; then
3678 # check for fallocate
3685 fallocate(0, 0, 0, 0);
3689 if compile_prog
"" "" ; then
3693 # check for fallocate hole punching
3694 fallocate_punch_hole
=no
3697 #include <linux/falloc.h>
3701 fallocate(0, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 0);
3705 if compile_prog
"" "" ; then
3706 fallocate_punch_hole
=yes
3709 # check that fallocate supports range zeroing inside the file
3710 fallocate_zero_range
=no
3713 #include <linux/falloc.h>
3717 fallocate(0, FALLOC_FL_ZERO_RANGE, 0, 0);
3721 if compile_prog
"" "" ; then
3722 fallocate_zero_range
=yes
3725 # check for posix_fallocate
3732 posix_fallocate(0, 0, 0);
3736 if compile_prog
"" "" ; then
3740 # check for sync_file_range
3747 sync_file_range(0, 0, 0, 0);
3751 if compile_prog
"" "" ; then
3755 # check for linux/fiemap.h and FS_IOC_FIEMAP
3758 #include <sys/ioctl.h>
3759 #include <linux/fs.h>
3760 #include <linux/fiemap.h>
3764 ioctl(0, FS_IOC_FIEMAP, 0);
3768 if compile_prog
"" "" ; then
3783 if compile_prog
"" "" ; then
3787 # check for ppoll support
3794 struct pollfd pfd = { .fd = 0, .events = 0, .revents = 0 };
3795 ppoll(&pfd, 1, 0, 0);
3799 if compile_prog
"" "" ; then
3803 # check for prctl(PR_SET_TIMERSLACK , ... ) support
3804 prctl_pr_set_timerslack
=no
3806 #include <sys/prctl.h>
3810 prctl(PR_SET_TIMERSLACK, 1, 0, 0, 0);
3814 if compile_prog
"" "" ; then
3815 prctl_pr_set_timerslack
=yes
3818 # check for epoll support
3821 #include <sys/epoll.h>
3829 if compile_prog
"" "" ; then
3833 # epoll_create1 is a later addition
3834 # so we must check separately for its presence
3837 #include <sys/epoll.h>
3841 /* Note that we use epoll_create1 as a value, not as
3842 * a function being called. This is necessary so that on
3843 * old SPARC glibc versions where the function was present in
3844 * the library but not declared in the header file we will
3845 * fail the configure check. (Otherwise we will get a compiler
3846 * warning but not an error, and will proceed to fail the
3847 * qemu compile where we compile with -Werror.)
3849 return (int)(uintptr_t)&epoll_create1;
3852 if compile_prog
"" "" ; then
3856 # check for sendfile support
3859 #include <sys/sendfile.h>
3863 return sendfile(0, 0, 0, 0);
3866 if compile_prog
"" "" ; then
3870 # check for timerfd support (glibc 2.8 and newer)
3873 #include <sys/timerfd.h>
3877 return(timerfd_create(CLOCK_REALTIME, 0));
3880 if compile_prog
"" "" ; then
3884 # check for setns and unshare support
3897 if compile_prog
"" "" ; then
3901 # Check if tools are available to build documentation.
3902 if test "$docs" != "no" ; then
3903 if has makeinfo
&& has pod2man
; then
3906 if test "$docs" = "yes" ; then
3907 feature_not_found
"docs" "Install texinfo and Perl/perl-podlators"
3913 # Search for bswap_32 function
3916 #include <byteswap.h>
3917 int main(void) { return bswap_32(0); }
3919 if compile_prog
"" "" ; then
3923 # Search for bswap32 function
3926 #include <sys/endian.h>
3927 #include <sys/types.h>
3928 #include <machine/bswap.h>
3929 int main(void) { return bswap32(0); }
3931 if compile_prog
"" "" ; then
3935 ##########################################
3936 # Do we have libiscsi >= 1.9.0
3937 if test "$libiscsi" != "no" ; then
3938 if $pkg_config --atleast-version=1.9.0 libiscsi
; then
3940 libiscsi_cflags
=$
($pkg_config --cflags libiscsi
)
3941 libiscsi_libs
=$
($pkg_config --libs libiscsi
)
3943 if test "$libiscsi" = "yes" ; then
3944 feature_not_found
"libiscsi" "Install libiscsi >= 1.9.0"
3950 ##########################################
3954 int main(int argc, char **argv) { return isnan(sin((double)argc)); }
3956 if compile_prog
"" "" ; then
3958 elif compile_prog
"" "-lm" ; then
3960 libs_qga
="-lm $libs_qga"
3962 error_exit
"libm check failed"
3965 ##########################################
3967 # uClibc provides 2 versions of clock_gettime(), one with realtime
3968 # support and one without. This means that the clock_gettime() don't
3969 # need -lrt. We still need it for timer_create() so we check for this
3970 # function in addition.
3975 timer_create(CLOCK_REALTIME, NULL, NULL);
3976 return clock_gettime(CLOCK_REALTIME, NULL);
3980 if compile_prog
"" "" ; then
3982 # we need pthread for static linking. use previous pthread test result
3983 elif compile_prog
"" "$pthread_lib -lrt" ; then
3985 libs_qga
="$libs_qga -lrt"
3988 if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
3989 "$aix" != "yes" -a "$haiku" != "yes" ; then
3990 libs_softmmu
="-lutil $libs_softmmu"
3993 ##########################################
3995 if test "$spice" != "no" ; then
3998 int main(void) { spice_server_new(); return 0; }
4000 spice_cflags
=$
($pkg_config --cflags spice-protocol spice-server
2>/dev
/null
)
4001 spice_libs
=$
($pkg_config --libs spice-protocol spice-server
2>/dev
/null
)
4002 if $pkg_config --atleast-version=0.12.0 spice-server
&& \
4003 $pkg_config --atleast-version=0.12.3 spice-protocol
&& \
4004 compile_prog
"$spice_cflags" "$spice_libs" ; then
4006 libs_softmmu
="$libs_softmmu $spice_libs"
4007 QEMU_CFLAGS
="$QEMU_CFLAGS $spice_cflags"
4008 spice_protocol_version
=$
($pkg_config --modversion spice-protocol
)
4009 spice_server_version
=$
($pkg_config --modversion spice-server
)
4011 if test "$spice" = "yes" ; then
4012 feature_not_found
"spice" \
4013 "Install spice-server(>=0.12.0) and spice-protocol(>=0.12.3) devel"
4019 # check for smartcard support
4021 if test "$smartcard" != "no"; then
4022 if $pkg_config libcacard
; then
4023 libcacard_cflags
=$
($pkg_config --cflags libcacard
)
4024 libcacard_libs
=$
($pkg_config --libs libcacard
)
4025 QEMU_CFLAGS
="$QEMU_CFLAGS $libcacard_cflags"
4026 libs_softmmu
="$libs_softmmu $libcacard_libs"
4029 if test "$smartcard" = "yes"; then
4030 feature_not_found
"smartcard" "Install libcacard devel"
4037 if test "$libusb" != "no" ; then
4038 if $pkg_config --atleast-version=1.0.13 libusb-1.0
; then
4040 libusb_cflags
=$
($pkg_config --cflags libusb-1.0
)
4041 libusb_libs
=$
($pkg_config --libs libusb-1.0
)
4042 QEMU_CFLAGS
="$QEMU_CFLAGS $libusb_cflags"
4043 libs_softmmu
="$libs_softmmu $libusb_libs"
4045 if test "$libusb" = "yes"; then
4046 feature_not_found
"libusb" "Install libusb devel >= 1.0.13"
4052 # check for usbredirparser for usb network redirection support
4053 if test "$usb_redir" != "no" ; then
4054 if $pkg_config --atleast-version=0.6 libusbredirparser-0.5
; then
4056 usb_redir_cflags
=$
($pkg_config --cflags libusbredirparser-0.5
)
4057 usb_redir_libs
=$
($pkg_config --libs libusbredirparser-0.5
)
4058 QEMU_CFLAGS
="$QEMU_CFLAGS $usb_redir_cflags"
4059 libs_softmmu
="$libs_softmmu $usb_redir_libs"
4061 if test "$usb_redir" = "yes"; then
4062 feature_not_found
"usb-redir" "Install usbredir devel"
4068 ##########################################
4069 # check if we have VSS SDK headers for win
4071 if test "$mingw32" = "yes" -a "$guest_agent" != "no" -a "$vss_win32_sdk" != "no" ; then
4072 case "$vss_win32_sdk" in
4073 "") vss_win32_include
="-isystem $source_path" ;;
4074 *\
*) # The SDK is installed in "Program Files" by default, but we cannot
4075 # handle path with spaces. So we symlink the headers into ".sdk/vss".
4076 vss_win32_include
="-isystem $source_path/.sdk/vss"
4077 symlink
"$vss_win32_sdk/inc" "$source_path/.sdk/vss/inc"
4079 *) vss_win32_include
="-isystem $vss_win32_sdk"
4082 #define __MIDL_user_allocate_free_DEFINED__
4083 #include <inc/win2003/vss.h>
4084 int main(void) { return VSS_CTX_BACKUP; }
4086 if compile_prog
"$vss_win32_include" "" ; then
4087 guest_agent_with_vss
="yes"
4088 QEMU_CFLAGS
="$QEMU_CFLAGS $vss_win32_include"
4089 libs_qga
="-lole32 -loleaut32 -lshlwapi -luuid -lstdc++ -Wl,--enable-stdcall-fixup $libs_qga"
4090 qga_vss_provider
="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb"
4092 if test "$vss_win32_sdk" != "" ; then
4093 echo "ERROR: Please download and install Microsoft VSS SDK:"
4094 echo "ERROR: http://www.microsoft.com/en-us/download/details.aspx?id=23490"
4095 echo "ERROR: On POSIX-systems, you can extract the SDK headers by:"
4096 echo "ERROR: scripts/extract-vsssdk-headers setup.exe"
4097 echo "ERROR: The headers are extracted in the directory \`inc'."
4098 feature_not_found
"VSS support"
4100 guest_agent_with_vss
="no"
4104 ##########################################
4105 # lookup Windows platform SDK (if not specified)
4106 # The SDK is needed only to build .tlb (type library) file of guest agent
4107 # VSS provider from the source. It is usually unnecessary because the
4108 # pre-compiled .tlb file is included.
4110 if test "$mingw32" = "yes" -a "$guest_agent" != "no" -a "$guest_agent_with_vss" = "yes" ; then
4111 if test -z "$win_sdk"; then
4112 programfiles
="$PROGRAMFILES"
4113 test -n "$PROGRAMW6432" && programfiles
="$PROGRAMW6432"
4114 if test -n "$programfiles"; then
4115 win_sdk
=$
(ls -d "$programfiles/Microsoft SDKs/Windows/v"* |
tail -1) 2>/dev
/null
4117 feature_not_found
"Windows SDK"
4119 elif test "$win_sdk" = "no"; then
4124 ##########################################
4125 # check if mingw environment provides a recent ntddscsi.h
4126 if test "$mingw32" = "yes" -a "$guest_agent" != "no"; then
4128 #include <windows.h>
4129 #include <ntddscsi.h>
4131 #if !defined(IOCTL_SCSI_GET_ADDRESS)
4132 #error Missing required ioctl definitions
4134 SCSI_ADDRESS addr = { .Lun = 0, .TargetId = 0, .PathId = 0 };
4138 if compile_prog
"" "" ; then
4139 guest_agent_ntddscsi
=yes
4140 libs_qga
="-lsetupapi $libs_qga"
4144 ##########################################
4145 # virgl renderer probe
4147 if test "$virglrenderer" != "no" ; then
4149 #include <virglrenderer.h>
4150 int main(void) { virgl_renderer_poll(); return 0; }
4152 virgl_cflags
=$
($pkg_config --cflags virglrenderer
2>/dev
/null
)
4153 virgl_libs
=$
($pkg_config --libs virglrenderer
2>/dev
/null
)
4154 if $pkg_config virglrenderer
>/dev
/null
2>&1 && \
4155 compile_prog
"$virgl_cflags" "$virgl_libs" ; then
4158 if test "$virglrenderer" = "yes" ; then
4159 feature_not_found
"virglrenderer"
4165 ##########################################
4166 # check if we have fdatasync
4172 #if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
4173 return fdatasync(0);
4175 #error Not supported
4179 if compile_prog
"" "" ; then
4183 ##########################################
4184 # check if we have madvise
4188 #include <sys/types.h>
4189 #include <sys/mman.h>
4191 int main(void) { return madvise(NULL, 0, MADV_DONTNEED); }
4193 if compile_prog
"" "" ; then
4197 ##########################################
4198 # check if we have posix_madvise
4202 #include <sys/mman.h>
4204 int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }
4206 if compile_prog
"" "" ; then
4210 ##########################################
4211 # check if we have posix_syslog
4216 int main(void) { openlog("qemu", LOG_PID, LOG_DAEMON); syslog(LOG_INFO, "configure"); return 0; }
4218 if compile_prog
"" "" ; then
4222 ##########################################
4223 # check if trace backend exists
4225 $python "$source_path/scripts/tracetool.py" "--backends=$trace_backends" --check-backends > /dev
/null
2> /dev
/null
4226 if test "$?" -ne 0 ; then
4227 error_exit
"invalid trace backends" \
4228 "Please choose supported trace backends."
4231 ##########################################
4232 # For 'ust' backend, test if ust headers are present
4233 if have_backend
"ust"; then
4235 #include <lttng/tracepoint.h>
4236 int main(void) { return 0; }
4238 if compile_prog
"" "" ; then
4239 if $pkg_config lttng-ust
--exists; then
4240 lttng_ust_libs
=$
($pkg_config --libs lttng-ust
)
4242 lttng_ust_libs
="-llttng-ust"
4244 if $pkg_config liburcu-bp
--exists; then
4245 urcu_bp_libs
=$
($pkg_config --libs liburcu-bp
)
4247 urcu_bp_libs
="-lurcu-bp"
4250 LIBS
="$lttng_ust_libs $urcu_bp_libs $LIBS"
4251 libs_qga
="$lttng_ust_libs $urcu_bp_libs $libs_qga"
4253 error_exit
"Trace backend 'ust' missing lttng-ust header files"
4257 ##########################################
4258 # For 'dtrace' backend, test if 'dtrace' command is present
4259 if have_backend
"dtrace"; then
4260 if ! has
'dtrace' ; then
4261 error_exit
"dtrace command is not found in PATH $PATH"
4263 trace_backend_stap
="no"
4264 if has
'stap' ; then
4265 trace_backend_stap
="yes"
4269 ##########################################
4270 # check and set a backend for coroutine
4272 # We prefer ucontext, but it's not always possible. The fallback
4273 # is sigcontext. gthread is not selectable except explicitly, because
4274 # it is not functional enough to run QEMU proper. (It is occasionally
4275 # useful for debugging purposes.) On Windows the only valid backend
4276 # is the Windows-specific one.
4279 if test "$darwin" != "yes"; then
4281 #include <ucontext.h>
4282 #ifdef __stub_makecontext
4283 #error Ignoring glibc stub makecontext which will always fail
4285 int main(void) { makecontext(0, 0, 0); return 0; }
4287 if compile_prog
"" "" ; then
4292 if test "$coroutine" = ""; then
4293 if test "$mingw32" = "yes"; then
4295 elif test "$ucontext_works" = "yes"; then
4298 coroutine
=sigaltstack
4303 if test "$mingw32" != "yes"; then
4304 error_exit
"'windows' coroutine backend only valid for Windows"
4306 # Unfortunately the user visible backend name doesn't match the
4307 # coroutine-*.c filename for this case, so we have to adjust it here.
4311 if test "$ucontext_works" != "yes"; then
4312 feature_not_found
"ucontext"
4315 gthread|sigaltstack
)
4316 if test "$mingw32" = "yes"; then
4317 error_exit
"only the 'windows' coroutine backend is valid for Windows"
4321 error_exit
"unknown coroutine backend $coroutine"
4326 if test "$coroutine_pool" = ""; then
4327 if test "$coroutine" = "gthread"; then
4333 if test "$coroutine" = "gthread" -a "$coroutine_pool" = "yes"; then
4334 error_exit
"'gthread' coroutine backend does not support pool (use --disable-coroutine-pool)"
4337 ##########################################
4338 # check if we have open_by_handle_at
4340 open_by_handle_at
=no
4343 #if !defined(AT_EMPTY_PATH)
4344 # error missing definition
4346 int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
4349 if compile_prog
"" "" ; then
4350 open_by_handle_at
=yes
4353 ########################################
4354 # check if we have linux/magic.h
4358 #include <linux/magic.h>
4363 if compile_prog
"" "" ; then
4367 ########################################
4368 # check whether we can disable warning option with a pragma (this is needed
4369 # to silence warnings in the headers of some versions of external libraries).
4370 # This test has to be compiled with -Werror as otherwise an unknown pragma is
4373 # If we can't selectively disable warning in the code, disable -Werror so that
4374 # the build doesn't fail anyway.
4376 pragma_disable_unused_but_set
=no
4378 #pragma GCC diagnostic push
4379 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
4380 #pragma GCC diagnostic ignored "-Wstrict-prototypes"
4381 #pragma GCC diagnostic pop
4387 if compile_prog
"-Werror" "" ; then
4388 pragma_diagnostic_available
=yes
4393 ########################################
4394 # check if we have valgrind/valgrind.h
4398 #include <valgrind/valgrind.h>
4403 if compile_prog
"" "" ; then
4407 ########################################
4408 # check if environ is declared
4418 if compile_prog
"" "" ; then
4422 ########################################
4423 # check if cpuid.h is usable.
4429 unsigned a, b, c, d;
4430 int max = __get_cpuid_max(0, 0);
4433 __cpuid(1, a, b, c, d);
4437 __cpuid_count(7, 0, a, b, c, d);
4443 if compile_prog
"" "" ; then
4447 ########################################
4448 # check if __[u]int128_t is usable.
4452 #if defined(__clang_major__) && defined(__clang_minor__)
4453 # if ((__clang_major__ < 3) || (__clang_major__ == 3) && (__clang_minor__ < 2))
4454 # error __int128_t does not work in CLANG before 3.2
4466 if compile_prog
"" "" ; then
4470 ########################################
4471 # check if getauxval is available.
4475 #include <sys/auxv.h>
4477 return getauxval(AT_HWCAP) == 0;
4480 if compile_prog
"" "" ; then
4484 ########################################
4485 # check if ccache is interfering with
4486 # semantic analysis of macros
4491 static const int Z = 1;
4492 #define fn() ({ Z; })
4493 #define TAUT(X) ((X) == Z)
4494 #define PAREN(X, Y) (X == Y)
4496 int main(int argc, char *argv[])
4502 if (PAREN(x, y)) return 0;
4503 if (TAUT(Z)) return 0;
4508 if ! compile_object
"-Werror"; then
4512 #################################################
4513 # clang does not support glibc + FORTIFY_SOURCE.
4515 if test "$fortify_source" != "no"; then
4516 if echo |
$cc -dM -E - |
grep __clang__
> /dev
/null
2>&1 ; then
4517 fortify_source
="no";
4518 elif test -n "$cxx" &&
4519 echo |
$cxx -dM -E - |
grep __clang__
>/dev
/null
2>&1 ; then
4520 fortify_source
="no";
4522 fortify_source
="yes"
4526 ##########################################
4527 # check if struct fsxattr is available via linux/fs.h
4531 #include <linux/fs.h>
4537 if compile_prog
"" "" ; then
4541 ##########################################
4542 # check if rtnetlink.h exists and is useful
4545 #include <linux/rtnetlink.h>
4547 return IFLA_PROTO_DOWN;
4550 if compile_prog
"" "" ; then
4554 #################################################
4555 # Sparc implicitly links with --relax, which is
4556 # incompatible with -r, so --no-relax should be
4557 # given. It does no harm to give it on other
4560 # Note: the prototype is needed since QEMU_CFLAGS
4561 # contains -Wmissing-prototypes
4563 extern int foo(void);
4564 int foo(void) { return 0; }
4566 if ! compile_object
""; then
4567 error_exit
"Failed to compile object file for LD_REL_FLAGS test"
4569 if do_cc
-nostdlib -Wl,-r -Wl,--no-relax -o $TMPMO $TMPO; then
4570 LD_REL_FLAGS
="-Wl,--no-relax"
4573 ##########################################
4575 # After here, no more $cc or $ld runs
4577 if test "$gcov" = "yes" ; then
4578 CFLAGS
="-fprofile-arcs -ftest-coverage -g $CFLAGS"
4579 LDFLAGS
="-fprofile-arcs -ftest-coverage $LDFLAGS"
4580 elif test "$fortify_source" = "yes" ; then
4581 CFLAGS
="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
4582 elif test "$debug" = "no"; then
4583 CFLAGS
="-O2 $CFLAGS"
4586 ##########################################
4588 if test "$libnfs" != "no" ; then
4589 if $pkg_config --atleast-version=1.9.3 libnfs
; then
4591 libnfs_libs
=$
($pkg_config --libs libnfs
)
4592 LIBS
="$LIBS $libnfs_libs"
4594 if test "$libnfs" = "yes" ; then
4595 feature_not_found
"libnfs" "Install libnfs devel >= 1.9.3"
4601 # Now we've finished running tests it's OK to add -Werror to the compiler flags
4602 if test "$werror" = "yes"; then
4603 QEMU_CFLAGS
="-Werror $QEMU_CFLAGS"
4606 if test "$solaris" = "no" ; then
4607 if $ld --version 2>/dev
/null |
grep "GNU ld" >/dev
/null
2>/dev
/null
; then
4608 LDFLAGS
="-Wl,--warn-common $LDFLAGS"
4612 # test if pod2man has --utf8 option
4613 if pod2man
--help |
grep -q utf8
; then
4614 POD2MAN
="pod2man --utf8"
4619 # Use ASLR, no-SEH and DEP if available
4620 if test "$mingw32" = "yes" ; then
4621 for flag
in --dynamicbase --no-seh --nxcompat; do
4622 if $ld --help 2>/dev
/null |
grep ".$flag" >/dev
/null
2>/dev
/null
; then
4623 LDFLAGS
="-Wl,$flag $LDFLAGS"
4628 qemu_confdir
=$sysconfdir$confsuffix
4629 qemu_moddir
=$libdir$confsuffix
4630 qemu_datadir
=$datadir$confsuffix
4631 qemu_localedir
="$datadir/locale"
4634 if test "$want_tools" = "yes" ; then
4635 tools
="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
4636 if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
4637 tools
="qemu-nbd\$(EXESUF) $tools"
4638 tools
="ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools"
4641 if test "$softmmu" = yes ; then
4642 if test "$virtfs" != no
; then
4643 if test "$cap" = yes && test "$linux" = yes && test "$attr" = yes ; then
4645 tools
="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
4647 if test "$virtfs" = yes; then
4648 error_exit
"VirtFS is supported only on Linux and requires libcap devel and libattr devel"
4655 # Probe for guest agent support/options
4657 if [ "$guest_agent" != "no" ]; then
4658 if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
4659 tools
="qemu-ga $tools"
4661 elif [ "$guest_agent" != yes ]; then
4664 error_exit
"Guest agent is not supported on this platform"
4668 # Guest agent Window MSI package
4670 if test "$guest_agent" != yes; then
4671 if test "$guest_agent_msi" = yes; then
4672 error_exit
"MSI guest agent package requires guest agent enabled"
4675 elif test "$mingw32" != "yes"; then
4676 if test "$guest_agent_msi" = "yes"; then
4677 error_exit
"MSI guest agent package is available only for MinGW Windows cross-compilation"
4680 elif ! has wixl
; then
4681 if test "$guest_agent_msi" = "yes"; then
4682 error_exit
"MSI guest agent package requires wixl tool installed ( usually from msitools package )"
4686 # we support qemu-ga, mingw32, and wixl: default to MSI enabled if it wasn't
4687 # disabled explicitly
4688 if test "$guest_agent_msi" != "no"; then
4693 if test "$guest_agent_msi" = "yes"; then
4694 if test "$guest_agent_with_vss" = "yes"; then
4695 QEMU_GA_MSI_WITH_VSS
="-D InstallVss"
4698 if test "$QEMU_GA_MANUFACTURER" = ""; then
4699 QEMU_GA_MANUFACTURER
=QEMU
4702 if test "$QEMU_GA_DISTRO" = ""; then
4703 QEMU_GA_DISTRO
=Linux
4706 if test "$QEMU_GA_VERSION" = ""; then
4707 QEMU_GA_VERSION
=$
(cat $source_path/VERSION
)
4710 QEMU_GA_MSI_MINGW_DLL_PATH
="-D Mingw_dlls=$($pkg_config --variable=prefix glib-2.0)/bin"
4714 QEMU_GA_MSI_ARCH
="-a x64 -D Arch=64"
4717 QEMU_GA_MSI_ARCH
="-D Arch=32"
4720 error_exit
"CPU $cpu not supported for building installation package"
4725 # Mac OS X ships with a broken assembler
4727 if test \
( "$cpu" = "i386" -o "$cpu" = "x86_64" \
) -a \
4728 "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
4729 "$softmmu" = yes ; then
4730 # Different host OS linkers have different ideas about the name of the ELF
4731 # emulation. Linux and OpenBSD use 'elf_i386'; FreeBSD uses the _fbsd
4732 # variant; and Windows uses i386pe.
4733 for emu
in elf_i386 elf_i386_fbsd i386pe
; do
4734 if "$ld" -verbose 2>&1 |
grep -q "^[[:space:]]*$emu[[:space:]]*$"; then
4735 ld_i386_emulation
="$emu"
4741 if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
4742 roms
="$roms spapr-rtas"
4745 if test "$cpu" = "s390x" ; then
4746 roms
="$roms s390-ccw"
4749 # Probe for the need for relocating the user-only binary.
4750 if ( [ "$linux_user" = yes ] ||
[ "$bsd_user" = yes ] ) && [ "$pie" = no
]; then
4753 arm | i386 | ppc
* | s390
* | sparc
* | x86_64 | x32
)
4754 # ??? Rationale for choosing this address
4755 textseg_addr
=0x60000000
4758 # A 256M aligned address, high in the address space, with enough
4759 # room for the code_gen_buffer above it before the stack.
4760 textseg_addr
=0x60000000
4763 if [ -n "$textseg_addr" ]; then
4765 int main(void) { return 0; }
4767 textseg_ldflags
="-Wl,-Ttext-segment=$textseg_addr"
4768 if ! compile_prog
"" "$textseg_ldflags"; then
4769 # In case ld does not support -Ttext-segment, edit the default linker
4770 # script via sed to set the .text start addr. This is needed on FreeBSD
4772 if ! $ld --verbose >/dev
/null
2>&1; then
4774 "We need to link the QEMU user mode binaries at a" \
4775 "specific text address. Unfortunately your linker" \
4776 "doesn't support either the -Ttext-segment option or" \
4777 "printing the default linker script with --verbose." \
4778 "If you don't want the user mode binaries, pass the" \
4779 "--disable-user option to configure."
4782 $ld --verbose |
sed \
4783 -e '1,/==================================================/d' \
4784 -e '/==================================================/,$d' \
4785 -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \
4786 -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld
4787 textseg_ldflags
="-Wl,-T../config-host.ld"
4793 if test "$1" = "yes" ; then
4798 # prepend pixman and ftd flags after all config tests are done
4799 QEMU_CFLAGS
="$pixman_cflags $fdt_cflags $QEMU_CFLAGS"
4800 libs_softmmu
="$pixman_libs $libs_softmmu"
4802 echo "Install prefix $prefix"
4803 echo "BIOS directory $(eval echo $qemu_datadir)"
4804 echo "binary directory $(eval echo $bindir)"
4805 echo "library directory $(eval echo $libdir)"
4806 echo "module directory $(eval echo $qemu_moddir)"
4807 echo "libexec directory $(eval echo $libexecdir)"
4808 echo "include directory $(eval echo $includedir)"
4809 echo "config directory $(eval echo $sysconfdir)"
4810 if test "$mingw32" = "no" ; then
4811 echo "local state directory $(eval echo $local_statedir)"
4812 echo "Manual directory $(eval echo $mandir)"
4813 echo "ELF interp prefix $interp_prefix"
4815 echo "local state directory queried at runtime"
4816 echo "Windows SDK $win_sdk"
4818 echo "Source path $source_path"
4819 echo "C compiler $cc"
4820 echo "Host C compiler $host_cc"
4821 echo "C++ compiler $cxx"
4822 echo "Objective-C compiler $objcc"
4823 echo "ARFLAGS $ARFLAGS"
4824 echo "CFLAGS $CFLAGS"
4825 echo "QEMU_CFLAGS $QEMU_CFLAGS"
4826 echo "LDFLAGS $LDFLAGS"
4828 echo "install $install"
4829 echo "python $python"
4830 if test "$slirp" = "yes" ; then
4833 echo "module support $modules"
4834 echo "host CPU $cpu"
4835 echo "host big endian $bigendian"
4836 echo "target list $target_list"
4837 echo "tcg debug enabled $debug_tcg"
4838 echo "gprof enabled $gprof"
4839 echo "sparse enabled $sparse"
4840 echo "strip binaries $strip_opt"
4841 echo "profiler $profiler"
4842 echo "static build $static"
4843 if test "$darwin" = "yes" ; then
4844 echo "Cocoa support $cocoa"
4846 echo "pixman $pixman"
4847 echo "SDL support $sdl $(echo_version $sdl $sdlversion)"
4848 echo "GTK support $gtk $(echo_version $gtk $gtk_version)"
4849 echo "GTK GL support $gtk_gl"
4850 echo "VTE support $vte $(echo_version $vte $vteversion)"
4851 echo "TLS priority $tls_priority"
4852 echo "GNUTLS support $gnutls"
4853 echo "GNUTLS rnd $gnutls_rnd"
4854 echo "libgcrypt $gcrypt"
4855 echo "libgcrypt kdf $gcrypt_kdf"
4856 echo "nettle $nettle $(echo_version $nettle $nettle_version)"
4857 echo "nettle kdf $nettle_kdf"
4858 echo "libtasn1 $tasn1"
4859 echo "curses support $curses"
4860 echo "virgl support $virglrenderer"
4861 echo "curl support $curl"
4862 echo "mingw32 support $mingw32"
4863 echo "Audio drivers $audio_drv_list"
4864 echo "Block whitelist (rw) $block_drv_rw_whitelist"
4865 echo "Block whitelist (ro) $block_drv_ro_whitelist"
4866 echo "VirtFS support $virtfs"
4867 echo "VNC support $vnc"
4868 if test "$vnc" = "yes" ; then
4869 echo "VNC SASL support $vnc_sasl"
4870 echo "VNC JPEG support $vnc_jpeg"
4871 echo "VNC PNG support $vnc_png"
4873 if test -n "$sparc_cpu"; then
4874 echo "Target Sparc Arch $sparc_cpu"
4876 echo "xen support $xen"
4877 if test "$xen" = "yes" ; then
4878 echo "xen ctrl version $xen_ctrl_version"
4879 echo "pv dom build $xen_pv_domain_build"
4881 echo "brlapi support $brlapi"
4882 echo "bluez support $bluez"
4883 echo "Documentation $docs"
4885 echo "vde support $vde"
4886 echo "netmap support $netmap"
4887 echo "Linux AIO support $linux_aio"
4888 echo "ATTR/XATTR support $attr"
4889 echo "Install blobs $blobs"
4890 echo "KVM support $kvm"
4891 echo "RDMA support $rdma"
4892 echo "TCG interpreter $tcg_interpreter"
4893 echo "fdt support $fdt"
4894 echo "preadv support $preadv"
4895 echo "fdatasync $fdatasync"
4896 echo "madvise $madvise"
4897 echo "posix_madvise $posix_madvise"
4898 echo "uuid support $uuid"
4899 echo "libcap-ng support $cap_ng"
4900 echo "vhost-net support $vhost_net"
4901 echo "vhost-scsi support $vhost_scsi"
4902 echo "vhost-vsock support $vhost_vsock"
4903 echo "Trace backends $trace_backends"
4904 if have_backend
"simple"; then
4905 echo "Trace output file $trace_file-<pid>"
4907 echo "spice support $spice $(echo_version $spice $spice_protocol_version/$spice_server_version)"
4908 echo "rbd support $rbd"
4909 echo "xfsctl support $xfs"
4910 echo "smartcard support $smartcard"
4911 echo "libusb $libusb"
4912 echo "usb net redir $usb_redir"
4913 echo "OpenGL support $opengl"
4914 echo "OpenGL dmabufs $opengl_dmabuf"
4915 echo "libiscsi support $libiscsi"
4916 echo "libnfs support $libnfs"
4917 echo "build guest agent $guest_agent"
4918 echo "QGA VSS support $guest_agent_with_vss"
4919 echo "QGA w32 disk info $guest_agent_ntddscsi"
4920 echo "QGA MSI support $guest_agent_msi"
4921 echo "seccomp support $seccomp"
4922 echo "coroutine backend $coroutine"
4923 echo "coroutine pool $coroutine_pool"
4924 echo "GlusterFS support $glusterfs"
4925 echo "Archipelago support $archipelago"
4926 echo "gcov $gcov_tool"
4927 echo "gcov enabled $gcov"
4928 echo "TPM support $tpm"
4929 echo "libssh2 support $libssh2"
4930 echo "TPM passthrough $tpm_passthrough"
4931 echo "QOM debugging $qom_cast_debug"
4933 echo "lzo support $lzo"
4934 echo "snappy support $snappy"
4935 echo "bzip2 support $bzip2"
4936 echo "NUMA host support $numa"
4937 echo "tcmalloc support $tcmalloc"
4938 echo "jemalloc support $jemalloc"
4939 echo "avx2 optimization $avx2_opt"
4940 echo "replication support $replication"
4942 if test "$sdl_too_old" = "yes"; then
4943 echo "-> Your SDL version is too old - please upgrade to have SDL support"
4946 config_host_mak
="config-host.mak"
4948 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
4950 echo "# Automatically generated by configure - do not modify" > $config_host_mak
4951 echo >> $config_host_mak
4953 echo all
: >> $config_host_mak
4954 echo "prefix=$prefix" >> $config_host_mak
4955 echo "bindir=$bindir" >> $config_host_mak
4956 echo "libdir=$libdir" >> $config_host_mak
4957 echo "libexecdir=$libexecdir" >> $config_host_mak
4958 echo "includedir=$includedir" >> $config_host_mak
4959 echo "mandir=$mandir" >> $config_host_mak
4960 echo "sysconfdir=$sysconfdir" >> $config_host_mak
4961 echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
4962 echo "qemu_datadir=$qemu_datadir" >> $config_host_mak
4963 echo "qemu_docdir=$qemu_docdir" >> $config_host_mak
4964 echo "qemu_moddir=$qemu_moddir" >> $config_host_mak
4965 if test "$mingw32" = "no" ; then
4966 echo "qemu_localstatedir=$local_statedir" >> $config_host_mak
4968 echo "qemu_helperdir=$libexecdir" >> $config_host_mak
4969 echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
4970 echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
4971 echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
4972 echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
4974 echo "ARCH=$ARCH" >> $config_host_mak
4976 if test "$debug_tcg" = "yes" ; then
4977 echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
4979 if test "$strip_opt" = "yes" ; then
4980 echo "STRIP=${strip}" >> $config_host_mak
4982 if test "$bigendian" = "yes" ; then
4983 echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
4985 if test "$mingw32" = "yes" ; then
4986 echo "CONFIG_WIN32=y" >> $config_host_mak
4987 rc_version
=$
(cat $source_path/VERSION
)
4988 version_major
=${rc_version%%.*}
4989 rc_version
=${rc_version#*.}
4990 version_minor
=${rc_version%%.*}
4991 rc_version
=${rc_version#*.}
4992 version_subminor
=${rc_version%%.*}
4994 echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
4995 echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
4996 if test "$guest_agent_with_vss" = "yes" ; then
4997 echo "CONFIG_QGA_VSS=y" >> $config_host_mak
4998 echo "QGA_VSS_PROVIDER=$qga_vss_provider" >> $config_host_mak
4999 echo "WIN_SDK=\"$win_sdk\"" >> $config_host_mak
5001 if test "$guest_agent_ntddscsi" = "yes" ; then
5002 echo "CONFIG_QGA_NTDDDISK=y" >> $config_host_mak
5004 if test "$guest_agent_msi" = "yes"; then
5005 echo "QEMU_GA_MSI_ENABLED=yes" >> $config_host_mak
5006 echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak
5007 echo "QEMU_GA_MSI_WITH_VSS=${QEMU_GA_MSI_WITH_VSS}" >> $config_host_mak
5008 echo "QEMU_GA_MSI_ARCH=${QEMU_GA_MSI_ARCH}" >> $config_host_mak
5009 echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak
5010 echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak
5011 echo "QEMU_GA_VERSION=${QEMU_GA_VERSION}" >> $config_host_mak
5014 echo "CONFIG_POSIX=y" >> $config_host_mak
5017 if test "$linux" = "yes" ; then
5018 echo "CONFIG_LINUX=y" >> $config_host_mak
5021 if test "$darwin" = "yes" ; then
5022 echo "CONFIG_DARWIN=y" >> $config_host_mak
5025 if test "$aix" = "yes" ; then
5026 echo "CONFIG_AIX=y" >> $config_host_mak
5029 if test "$solaris" = "yes" ; then
5030 echo "CONFIG_SOLARIS=y" >> $config_host_mak
5031 echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
5032 if test "$needs_libsunmath" = "yes" ; then
5033 echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
5036 if test "$haiku" = "yes" ; then
5037 echo "CONFIG_HAIKU=y" >> $config_host_mak
5039 if test "$static" = "yes" ; then
5040 echo "CONFIG_STATIC=y" >> $config_host_mak
5042 if test "$profiler" = "yes" ; then
5043 echo "CONFIG_PROFILER=y" >> $config_host_mak
5045 if test "$slirp" = "yes" ; then
5046 echo "CONFIG_SLIRP=y" >> $config_host_mak
5047 echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
5049 if test "$vde" = "yes" ; then
5050 echo "CONFIG_VDE=y" >> $config_host_mak
5052 if test "$netmap" = "yes" ; then
5053 echo "CONFIG_NETMAP=y" >> $config_host_mak
5055 if test "$l2tpv3" = "yes" ; then
5056 echo "CONFIG_L2TPV3=y" >> $config_host_mak
5058 if test "$cap_ng" = "yes" ; then
5059 echo "CONFIG_LIBCAP=y" >> $config_host_mak
5061 echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
5062 for drv
in $audio_drv_list; do
5063 def
=CONFIG_$
(echo $drv | LC_ALL
=C
tr '[a-z]' '[A-Z]')
5064 echo "$def=y" >> $config_host_mak
5066 if test "$audio_pt_int" = "yes" ; then
5067 echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
5069 if test "$audio_win_int" = "yes" ; then
5070 echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
5072 echo "CONFIG_BDRV_RW_WHITELIST=$block_drv_rw_whitelist" >> $config_host_mak
5073 echo "CONFIG_BDRV_RO_WHITELIST=$block_drv_ro_whitelist" >> $config_host_mak
5074 if test "$vnc" = "yes" ; then
5075 echo "CONFIG_VNC=y" >> $config_host_mak
5077 if test "$vnc_sasl" = "yes" ; then
5078 echo "CONFIG_VNC_SASL=y" >> $config_host_mak
5080 if test "$vnc_jpeg" = "yes" ; then
5081 echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
5083 if test "$vnc_png" = "yes" ; then
5084 echo "CONFIG_VNC_PNG=y" >> $config_host_mak
5086 if test "$fnmatch" = "yes" ; then
5087 echo "CONFIG_FNMATCH=y" >> $config_host_mak
5089 if test "$uuid" = "yes" ; then
5090 echo "CONFIG_UUID=y" >> $config_host_mak
5092 if test "$xfs" = "yes" ; then
5093 echo "CONFIG_XFS=y" >> $config_host_mak
5095 qemu_version
=$
(head $source_path/VERSION
)
5096 echo "VERSION=$qemu_version" >>$config_host_mak
5097 echo "PKGVERSION=$pkgversion" >>$config_host_mak
5098 echo "SRC_PATH=$source_path" >> $config_host_mak
5099 echo "TARGET_DIRS=$target_list" >> $config_host_mak
5100 if [ "$docs" = "yes" ] ; then
5101 echo "BUILD_DOCS=yes" >> $config_host_mak
5103 if test "$modules" = "yes"; then
5104 # $shacmd can generate a hash started with digit, which the compiler doesn't
5105 # like as an symbol. So prefix it with an underscore
5106 echo "CONFIG_STAMP=_$( (echo $qemu_version; echo $pkgversion; cat $0) | $shacmd - | cut -f1 -d\ )" >> $config_host_mak
5107 echo "CONFIG_MODULES=y" >> $config_host_mak
5109 if test "$sdl" = "yes" ; then
5110 echo "CONFIG_SDL=y" >> $config_host_mak
5111 echo "CONFIG_SDLABI=$sdlabi" >> $config_host_mak
5112 echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
5114 if test "$cocoa" = "yes" ; then
5115 echo "CONFIG_COCOA=y" >> $config_host_mak
5117 if test "$curses" = "yes" ; then
5118 echo "CONFIG_CURSES=y" >> $config_host_mak
5120 if test "$utimens" = "yes" ; then
5121 echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
5123 if test "$pipe2" = "yes" ; then
5124 echo "CONFIG_PIPE2=y" >> $config_host_mak
5126 if test "$accept4" = "yes" ; then
5127 echo "CONFIG_ACCEPT4=y" >> $config_host_mak
5129 if test "$splice" = "yes" ; then
5130 echo "CONFIG_SPLICE=y" >> $config_host_mak
5132 if test "$eventfd" = "yes" ; then
5133 echo "CONFIG_EVENTFD=y" >> $config_host_mak
5135 if test "$memfd" = "yes" ; then
5136 echo "CONFIG_MEMFD=y" >> $config_host_mak
5138 if test "$fallocate" = "yes" ; then
5139 echo "CONFIG_FALLOCATE=y" >> $config_host_mak
5141 if test "$fallocate_punch_hole" = "yes" ; then
5142 echo "CONFIG_FALLOCATE_PUNCH_HOLE=y" >> $config_host_mak
5144 if test "$fallocate_zero_range" = "yes" ; then
5145 echo "CONFIG_FALLOCATE_ZERO_RANGE=y" >> $config_host_mak
5147 if test "$posix_fallocate" = "yes" ; then
5148 echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
5150 if test "$sync_file_range" = "yes" ; then
5151 echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
5153 if test "$fiemap" = "yes" ; then
5154 echo "CONFIG_FIEMAP=y" >> $config_host_mak
5156 if test "$dup3" = "yes" ; then
5157 echo "CONFIG_DUP3=y" >> $config_host_mak
5159 if test "$ppoll" = "yes" ; then
5160 echo "CONFIG_PPOLL=y" >> $config_host_mak
5162 if test "$prctl_pr_set_timerslack" = "yes" ; then
5163 echo "CONFIG_PRCTL_PR_SET_TIMERSLACK=y" >> $config_host_mak
5165 if test "$epoll" = "yes" ; then
5166 echo "CONFIG_EPOLL=y" >> $config_host_mak
5168 if test "$epoll_create1" = "yes" ; then
5169 echo "CONFIG_EPOLL_CREATE1=y" >> $config_host_mak
5171 if test "$sendfile" = "yes" ; then
5172 echo "CONFIG_SENDFILE=y" >> $config_host_mak
5174 if test "$timerfd" = "yes" ; then
5175 echo "CONFIG_TIMERFD=y" >> $config_host_mak
5177 if test "$setns" = "yes" ; then
5178 echo "CONFIG_SETNS=y" >> $config_host_mak
5180 if test "$inotify" = "yes" ; then
5181 echo "CONFIG_INOTIFY=y" >> $config_host_mak
5183 if test "$inotify1" = "yes" ; then
5184 echo "CONFIG_INOTIFY1=y" >> $config_host_mak
5186 if test "$byteswap_h" = "yes" ; then
5187 echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
5189 if test "$bswap_h" = "yes" ; then
5190 echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
5192 if test "$curl" = "yes" ; then
5193 echo "CONFIG_CURL=m" >> $config_host_mak
5194 echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
5195 echo "CURL_LIBS=$curl_libs" >> $config_host_mak
5197 if test "$brlapi" = "yes" ; then
5198 echo "CONFIG_BRLAPI=y" >> $config_host_mak
5200 if test "$bluez" = "yes" ; then
5201 echo "CONFIG_BLUEZ=y" >> $config_host_mak
5202 echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
5204 if test "$glib_subprocess" = "yes" ; then
5205 echo "CONFIG_HAS_GLIB_SUBPROCESS_TESTS=y" >> $config_host_mak
5207 echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
5208 if test "$gtk" = "yes" ; then
5209 echo "CONFIG_GTK=y" >> $config_host_mak
5210 echo "CONFIG_GTKABI=$gtkabi" >> $config_host_mak
5211 echo "GTK_CFLAGS=$gtk_cflags" >> $config_host_mak
5212 echo "GTK_LIBS=$gtk_libs" >> $config_host_mak
5213 if test "$gtk_gl" = "yes" ; then
5214 echo "CONFIG_GTK_GL=y" >> $config_host_mak
5217 echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
5218 if test "$gnutls" = "yes" ; then
5219 echo "CONFIG_GNUTLS=y" >> $config_host_mak
5221 if test "$gnutls_rnd" = "yes" ; then
5222 echo "CONFIG_GNUTLS_RND=y" >> $config_host_mak
5224 if test "$gcrypt" = "yes" ; then
5225 echo "CONFIG_GCRYPT=y" >> $config_host_mak
5226 if test "$gcrypt_kdf" = "yes" ; then
5227 echo "CONFIG_GCRYPT_KDF=y" >> $config_host_mak
5230 if test "$nettle" = "yes" ; then
5231 echo "CONFIG_NETTLE=y" >> $config_host_mak
5232 echo "CONFIG_NETTLE_VERSION_MAJOR=${nettle_version%%.*}" >> $config_host_mak
5233 if test "$nettle_kdf" = "yes" ; then
5234 echo "CONFIG_NETTLE_KDF=y" >> $config_host_mak
5237 if test "$tasn1" = "yes" ; then
5238 echo "CONFIG_TASN1=y" >> $config_host_mak
5240 if test "$have_ifaddrs_h" = "yes" ; then
5241 echo "HAVE_IFADDRS_H=y" >> $config_host_mak
5244 # Work around a system header bug with some kernel/XFS header
5245 # versions where they both try to define 'struct fsxattr':
5246 # xfs headers will not try to redefine structs from linux headers
5247 # if this macro is set.
5248 if test "$have_fsxattr" = "yes" ; then
5249 echo "HAVE_FSXATTR=y" >> $config_host_mak
5251 if test "$vte" = "yes" ; then
5252 echo "CONFIG_VTE=y" >> $config_host_mak
5253 echo "VTE_CFLAGS=$vte_cflags" >> $config_host_mak
5255 if test "$virglrenderer" = "yes" ; then
5256 echo "CONFIG_VIRGL=y" >> $config_host_mak
5257 echo "VIRGL_CFLAGS=$virgl_cflags" >> $config_host_mak
5258 echo "VIRGL_LIBS=$virgl_libs" >> $config_host_mak
5260 if test "$xen" = "yes" ; then
5261 echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
5262 echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak
5263 if test "$xen_pv_domain_build" = "yes" ; then
5264 echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak
5267 if test "$linux_aio" = "yes" ; then
5268 echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
5270 if test "$attr" = "yes" ; then
5271 echo "CONFIG_ATTR=y" >> $config_host_mak
5273 if test "$libattr" = "yes" ; then
5274 echo "CONFIG_LIBATTR=y" >> $config_host_mak
5276 if test "$virtfs" = "yes" ; then
5277 echo "CONFIG_VIRTFS=y" >> $config_host_mak
5279 if test "$vhost_scsi" = "yes" ; then
5280 echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
5282 if test "$vhost_net" = "yes" ; then
5283 echo "CONFIG_VHOST_NET_USED=y" >> $config_host_mak
5285 if test "$vhost_vsock" = "yes" ; then
5286 echo "CONFIG_VHOST_VSOCK=y" >> $config_host_mak
5288 if test "$blobs" = "yes" ; then
5289 echo "INSTALL_BLOBS=yes" >> $config_host_mak
5291 if test "$iovec" = "yes" ; then
5292 echo "CONFIG_IOVEC=y" >> $config_host_mak
5294 if test "$preadv" = "yes" ; then
5295 echo "CONFIG_PREADV=y" >> $config_host_mak
5297 if test "$fdt" = "yes" ; then
5298 echo "CONFIG_FDT=y" >> $config_host_mak
5300 if test "$signalfd" = "yes" ; then
5301 echo "CONFIG_SIGNALFD=y" >> $config_host_mak
5303 if test "$tcg_interpreter" = "yes" ; then
5304 echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
5306 if test "$fdatasync" = "yes" ; then
5307 echo "CONFIG_FDATASYNC=y" >> $config_host_mak
5309 if test "$madvise" = "yes" ; then
5310 echo "CONFIG_MADVISE=y" >> $config_host_mak
5312 if test "$posix_madvise" = "yes" ; then
5313 echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
5316 if test "$spice" = "yes" ; then
5317 echo "CONFIG_SPICE=y" >> $config_host_mak
5320 if test "$smartcard" = "yes" ; then
5321 echo "CONFIG_SMARTCARD=y" >> $config_host_mak
5324 if test "$libusb" = "yes" ; then
5325 echo "CONFIG_USB_LIBUSB=y" >> $config_host_mak
5328 if test "$usb_redir" = "yes" ; then
5329 echo "CONFIG_USB_REDIR=y" >> $config_host_mak
5332 if test "$opengl" = "yes" ; then
5333 echo "CONFIG_OPENGL=y" >> $config_host_mak
5334 echo "OPENGL_CFLAGS=$opengl_cflags" >> $config_host_mak
5335 echo "OPENGL_LIBS=$opengl_libs" >> $config_host_mak
5336 if test "$opengl_dmabuf" = "yes" ; then
5337 echo "CONFIG_OPENGL_DMABUF=y" >> $config_host_mak
5341 if test "$avx2_opt" = "yes" ; then
5342 echo "CONFIG_AVX2_OPT=y" >> $config_host_mak
5345 if test "$lzo" = "yes" ; then
5346 echo "CONFIG_LZO=y" >> $config_host_mak
5349 if test "$snappy" = "yes" ; then
5350 echo "CONFIG_SNAPPY=y" >> $config_host_mak
5353 if test "$bzip2" = "yes" ; then
5354 echo "CONFIG_BZIP2=y" >> $config_host_mak
5355 echo "BZIP2_LIBS=-lbz2" >> $config_host_mak
5358 if test "$libiscsi" = "yes" ; then
5359 echo "CONFIG_LIBISCSI=m" >> $config_host_mak
5360 echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
5361 echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
5364 if test "$libnfs" = "yes" ; then
5365 echo "CONFIG_LIBNFS=y" >> $config_host_mak
5368 if test "$seccomp" = "yes"; then
5369 echo "CONFIG_SECCOMP=y" >> $config_host_mak
5372 # XXX: suppress that
5373 if [ "$bsd" = "yes" ] ; then
5374 echo "CONFIG_BSD=y" >> $config_host_mak
5377 if test "$localtime_r" = "yes" ; then
5378 echo "CONFIG_LOCALTIME_R=y" >> $config_host_mak
5380 if test "$qom_cast_debug" = "yes" ; then
5381 echo "CONFIG_QOM_CAST_DEBUG=y" >> $config_host_mak
5383 if test "$rbd" = "yes" ; then
5384 echo "CONFIG_RBD=m" >> $config_host_mak
5385 echo "RBD_CFLAGS=$rbd_cflags" >> $config_host_mak
5386 echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
5389 echo "CONFIG_COROUTINE_BACKEND=$coroutine" >> $config_host_mak
5390 if test "$coroutine_pool" = "yes" ; then
5391 echo "CONFIG_COROUTINE_POOL=1" >> $config_host_mak
5393 echo "CONFIG_COROUTINE_POOL=0" >> $config_host_mak
5396 if test "$open_by_handle_at" = "yes" ; then
5397 echo "CONFIG_OPEN_BY_HANDLE=y" >> $config_host_mak
5400 if test "$linux_magic_h" = "yes" ; then
5401 echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak
5404 if test "$pragma_diagnostic_available" = "yes" ; then
5405 echo "CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE=y" >> $config_host_mak
5408 if test "$valgrind_h" = "yes" ; then
5409 echo "CONFIG_VALGRIND_H=y" >> $config_host_mak
5412 if test "$has_environ" = "yes" ; then
5413 echo "CONFIG_HAS_ENVIRON=y" >> $config_host_mak
5416 if test "$cpuid_h" = "yes" ; then
5417 echo "CONFIG_CPUID_H=y" >> $config_host_mak
5420 if test "$int128" = "yes" ; then
5421 echo "CONFIG_INT128=y" >> $config_host_mak
5424 if test "$getauxval" = "yes" ; then
5425 echo "CONFIG_GETAUXVAL=y" >> $config_host_mak
5428 if test "$glusterfs" = "yes" ; then
5429 echo "CONFIG_GLUSTERFS=m" >> $config_host_mak
5430 echo "GLUSTERFS_CFLAGS=$glusterfs_cflags" >> $config_host_mak
5431 echo "GLUSTERFS_LIBS=$glusterfs_libs" >> $config_host_mak
5434 if test "$glusterfs_xlator_opt" = "yes" ; then
5435 echo "CONFIG_GLUSTERFS_XLATOR_OPT=y" >> $config_host_mak
5438 if test "$glusterfs_discard" = "yes" ; then
5439 echo "CONFIG_GLUSTERFS_DISCARD=y" >> $config_host_mak
5442 if test "$glusterfs_zerofill" = "yes" ; then
5443 echo "CONFIG_GLUSTERFS_ZEROFILL=y" >> $config_host_mak
5446 if test "$archipelago" = "yes" ; then
5447 echo "CONFIG_ARCHIPELAGO=m" >> $config_host_mak
5448 echo "ARCHIPELAGO_LIBS=$archipelago_libs" >> $config_host_mak
5451 if test "$libssh2" = "yes" ; then
5452 echo "CONFIG_LIBSSH2=m" >> $config_host_mak
5453 echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak
5454 echo "LIBSSH2_LIBS=$libssh2_libs" >> $config_host_mak
5457 if test "$vhdx" = "yes" ; then
5458 echo "CONFIG_VHDX=y" >> $config_host_mak
5462 if test "$libusb" = "yes"; then
5463 echo "HOST_USB=libusb legacy" >> $config_host_mak
5465 echo "HOST_USB=stub" >> $config_host_mak
5468 # TPM passthrough support?
5469 if test "$tpm" = "yes"; then
5470 echo 'CONFIG_TPM=$(CONFIG_SOFTMMU)' >> $config_host_mak
5471 if test "$tpm_passthrough" = "yes"; then
5472 echo "CONFIG_TPM_PASSTHROUGH=y" >> $config_host_mak
5476 echo "TRACE_BACKENDS=$trace_backends" >> $config_host_mak
5477 if have_backend
"nop"; then
5478 echo "CONFIG_TRACE_NOP=y" >> $config_host_mak
5480 if have_backend
"simple"; then
5481 echo "CONFIG_TRACE_SIMPLE=y" >> $config_host_mak
5482 # Set the appropriate trace file.
5483 trace_file
="\"$trace_file-\" FMT_pid"
5485 if have_backend
"log"; then
5486 echo "CONFIG_TRACE_LOG=y" >> $config_host_mak
5488 if have_backend
"ust"; then
5489 echo "CONFIG_TRACE_UST=y" >> $config_host_mak
5491 if have_backend
"dtrace"; then
5492 echo "CONFIG_TRACE_DTRACE=y" >> $config_host_mak
5493 if test "$trace_backend_stap" = "yes" ; then
5494 echo "CONFIG_TRACE_SYSTEMTAP=y" >> $config_host_mak
5497 if have_backend
"ftrace"; then
5498 if test "$linux" = "yes" ; then
5499 echo "CONFIG_TRACE_FTRACE=y" >> $config_host_mak
5501 feature_not_found
"ftrace(trace backend)" "ftrace requires Linux"
5504 if have_backend
"syslog"; then
5505 if test "$posix_syslog" = "yes" ; then
5506 echo "CONFIG_TRACE_SYSLOG=y" >> $config_host_mak
5508 feature_not_found
"syslog(trace backend)" "syslog not available"
5511 echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
5513 if test "$rdma" = "yes" ; then
5514 echo "CONFIG_RDMA=y" >> $config_host_mak
5517 if test "$have_rtnetlink" = "yes" ; then
5518 echo "CONFIG_RTNETLINK=y" >> $config_host_mak
5521 if test "$replication" = "yes" ; then
5522 echo "CONFIG_REPLICATION=y" >> $config_host_mak
5525 # Hold two types of flag:
5526 # CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on
5527 # a thread we have a handle to
5528 # CONFIG_PTHREAD_SETNAME_NP - A way of doing it on a particular
5530 if test "$pthread_setname_np" = "yes" ; then
5531 echo "CONFIG_THREAD_SETNAME_BYTHREAD=y" >> $config_host_mak
5532 echo "CONFIG_PTHREAD_SETNAME_NP=y" >> $config_host_mak
5535 if test "$tcg_interpreter" = "yes"; then
5536 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/tci $QEMU_INCLUDES"
5537 elif test "$ARCH" = "sparc64" ; then
5538 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/sparc $QEMU_INCLUDES"
5539 elif test "$ARCH" = "s390x" ; then
5540 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/s390 $QEMU_INCLUDES"
5541 elif test "$ARCH" = "x86_64" -o "$ARCH" = "x32" ; then
5542 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/i386 $QEMU_INCLUDES"
5543 elif test "$ARCH" = "ppc64" ; then
5544 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/ppc $QEMU_INCLUDES"
5546 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg/\$(ARCH) $QEMU_INCLUDES"
5548 QEMU_INCLUDES
="-I\$(SRC_PATH)/tcg $QEMU_INCLUDES"
5550 echo "TOOLS=$tools" >> $config_host_mak
5551 echo "ROMS=$roms" >> $config_host_mak
5552 echo "MAKE=$make" >> $config_host_mak
5553 echo "INSTALL=$install" >> $config_host_mak
5554 echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak
5555 echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
5556 echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
5557 echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
5558 echo "PYTHON=$python" >> $config_host_mak
5559 echo "CC=$cc" >> $config_host_mak
5560 if $iasl -h > /dev
/null
2>&1; then
5561 echo "IASL=$iasl" >> $config_host_mak
5563 echo "CC_I386=$cc_i386" >> $config_host_mak
5564 echo "HOST_CC=$host_cc" >> $config_host_mak
5565 echo "CXX=$cxx" >> $config_host_mak
5566 echo "OBJCC=$objcc" >> $config_host_mak
5567 echo "AR=$ar" >> $config_host_mak
5568 echo "ARFLAGS=$ARFLAGS" >> $config_host_mak
5569 echo "AS=$as" >> $config_host_mak
5570 echo "CCAS=$ccas" >> $config_host_mak
5571 echo "CPP=$cpp" >> $config_host_mak
5572 echo "OBJCOPY=$objcopy" >> $config_host_mak
5573 echo "LD=$ld" >> $config_host_mak
5574 echo "NM=$nm" >> $config_host_mak
5575 echo "WINDRES=$windres" >> $config_host_mak
5576 echo "CFLAGS=$CFLAGS" >> $config_host_mak
5577 echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
5578 echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
5579 echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
5580 if test "$sparse" = "yes" ; then
5581 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak
5582 echo "CPP := REAL_CC=\"\$(CPP)\" cgcc" >> $config_host_mak
5583 echo "CXX := REAL_CC=\"\$(CXX)\" cgcc" >> $config_host_mak
5584 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak
5585 echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
5587 if test "$cross_prefix" != ""; then
5588 echo "AUTOCONF_HOST := --host=${cross_prefix%-}" >> $config_host_mak
5590 echo "AUTOCONF_HOST := " >> $config_host_mak
5592 echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
5593 echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
5594 echo "LD_REL_FLAGS=$LD_REL_FLAGS" >> $config_host_mak
5595 echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
5596 echo "LIBS+=$LIBS" >> $config_host_mak
5597 echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
5598 echo "PTHREAD_LIB=$PTHREAD_LIB" >> $config_host_mak
5599 echo "EXESUF=$EXESUF" >> $config_host_mak
5600 echo "DSOSUF=$DSOSUF" >> $config_host_mak
5601 echo "LDFLAGS_SHARED=$LDFLAGS_SHARED" >> $config_host_mak
5602 echo "LIBS_QGA+=$libs_qga" >> $config_host_mak
5603 echo "TASN1_LIBS=$tasn1_libs" >> $config_host_mak
5604 echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
5605 echo "POD2MAN=$POD2MAN" >> $config_host_mak
5606 echo "TRANSLATE_OPT_CFLAGS=$TRANSLATE_OPT_CFLAGS" >> $config_host_mak
5607 if test "$gcov" = "yes" ; then
5608 echo "CONFIG_GCOV=y" >> $config_host_mak
5609 echo "GCOV=$gcov_tool" >> $config_host_mak
5612 # use included Linux headers
5613 if test "$linux" = "yes" ; then
5614 mkdir
-p linux-headers
5632 # For most CPUs the kernel architecture name and QEMU CPU name match.
5636 # For non-KVM architectures we will not have asm headers
5637 if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
5638 symlink
"$source_path/linux-headers/asm-$linux_arch" linux-headers
/asm
5642 for target
in $target_list; do
5643 target_dir
="$target"
5644 config_target_mak
=$target_dir/config-target.mak
5645 target_name
=$
(echo $target | cut
-d '-' -f 1)
5646 target_bigendian
="no"
5648 case "$target_name" in
5649 armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|moxie|or32|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb
)
5650 target_bigendian
=yes
5654 target_user_only
="no"
5655 target_linux_user
="no"
5656 target_bsd_user
="no"
5658 ${target_name}-softmmu)
5659 target_softmmu
="yes"
5661 ${target_name}-linux-user)
5662 if test "$linux" != "yes" ; then
5663 error_exit
"Target '$target' is only available on a Linux host"
5665 target_user_only
="yes"
5666 target_linux_user
="yes"
5668 ${target_name}-bsd-user)
5669 if test "$bsd" != "yes" ; then
5670 error_exit
"Target '$target' is only available on a BSD host"
5672 target_user_only
="yes"
5673 target_bsd_user
="yes"
5676 error_exit
"Target '$target' not recognised"
5681 mkdir
-p $target_dir
5682 echo "# Automatically generated by configure - do not modify" > $config_target_mak
5685 interp_prefix1
=$
(echo "$interp_prefix" |
sed "s/%M/$target_name/g")
5688 TARGET_ARCH
="$target_name"
5692 case "$target_name" in
5696 TARGET_BASE_ARCH
=i386
5703 gdb_xml_files
="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
5706 TARGET_BASE_ARCH
=arm
5708 gdb_xml_files
="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
5716 gdb_xml_files
="cf-core.xml cf-fp.xml"
5718 microblaze|microblazeel
)
5719 TARGET_ARCH
=microblaze
5724 echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
5728 TARGET_BASE_ARCH
=mips
5729 echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
5730 echo "TARGET_ABI32=y" >> $config_target_mak
5734 TARGET_BASE_ARCH
=mips
5735 echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
5740 TARGET_ARCH
=openrisc
5741 TARGET_BASE_ARCH
=openrisc
5744 gdb_xml_files
="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
5747 TARGET_BASE_ARCH
=ppc
5749 gdb_xml_files
="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
5752 TARGET_BASE_ARCH
=ppc
5754 gdb_xml_files
="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
5758 TARGET_BASE_ARCH
=ppc
5760 gdb_xml_files
="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
5764 TARGET_BASE_ARCH
=ppc
5766 echo "TARGET_ABI32=y" >> $config_target_mak
5767 gdb_xml_files
="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
5776 TARGET_BASE_ARCH
=sparc
5780 TARGET_BASE_ARCH
=sparc
5781 TARGET_ABI_DIR
=sparc
5782 echo "TARGET_ABI32=y" >> $config_target_mak
5785 gdb_xml_files
="s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml"
5797 error_exit
"Unsupported target CPU"
5800 # TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
5801 if [ "$TARGET_BASE_ARCH" = "" ]; then
5802 TARGET_BASE_ARCH
=$TARGET_ARCH
5805 symlink
"$source_path/Makefile.target" "$target_dir/Makefile"
5808 echo "$@"| LC_ALL
=C
tr '[a-z]' '[A-Z]'
5811 target_arch_name
="$(upper $TARGET_ARCH)"
5812 echo "TARGET_$target_arch_name=y" >> $config_target_mak
5813 echo "TARGET_NAME=$target_name" >> $config_target_mak
5814 echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
5815 if [ "$TARGET_ABI_DIR" = "" ]; then
5816 TARGET_ABI_DIR
=$TARGET_ARCH
5818 echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
5819 if [ "$HOST_VARIANT_DIR" != "" ]; then
5820 echo "HOST_VARIANT_DIR=$HOST_VARIANT_DIR" >> $config_target_mak
5822 case "$target_name" in
5824 if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
5825 echo "CONFIG_XEN=y" >> $config_target_mak
5826 if test "$xen_pci_passthrough" = yes; then
5827 echo "CONFIG_XEN_PCI_PASSTHROUGH=y" >> "$config_target_mak"
5833 case "$target_name" in
5834 aarch64|arm|i386|x86_64|ppcemb|ppc|ppc64|s390x|mipsel|mips
)
5835 # Make sure the target and host cpus are compatible
5836 if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
5837 \
( "$target_name" = "$cpu" -o \
5838 \
( "$target_name" = "ppcemb" -a "$cpu" = "ppc" \
) -o \
5839 \
( "$target_name" = "ppc64" -a "$cpu" = "ppc" \
) -o \
5840 \
( "$target_name" = "ppc" -a "$cpu" = "ppc64" \
) -o \
5841 \
( "$target_name" = "ppcemb" -a "$cpu" = "ppc64" \
) -o \
5842 \
( "$target_name" = "mipsel" -a "$cpu" = "mips" \
) -o \
5843 \
( "$target_name" = "x86_64" -a "$cpu" = "i386" \
) -o \
5844 \
( "$target_name" = "i386" -a "$cpu" = "x86_64" \
) -o \
5845 \
( "$target_name" = "x86_64" -a "$cpu" = "x32" \
) -o \
5846 \
( "$target_name" = "i386" -a "$cpu" = "x32" \
) \
) ; then
5847 echo "CONFIG_KVM=y" >> $config_target_mak
5848 if test "$vhost_net" = "yes" ; then
5849 echo "CONFIG_VHOST_NET=y" >> $config_target_mak
5850 echo "CONFIG_VHOST_NET_TEST_$target_name=y" >> $config_host_mak
5854 if test "$target_bigendian" = "yes" ; then
5855 echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
5857 if test "$target_softmmu" = "yes" ; then
5858 echo "CONFIG_SOFTMMU=y" >> $config_target_mak
5860 if test "$target_user_only" = "yes" ; then
5861 echo "CONFIG_USER_ONLY=y" >> $config_target_mak
5862 echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
5864 if test "$target_linux_user" = "yes" ; then
5865 echo "CONFIG_LINUX_USER=y" >> $config_target_mak
5868 if test ! -z "$gdb_xml_files" ; then
5869 for x
in $gdb_xml_files; do
5870 list
="$list $source_path/gdb-xml/$x"
5872 echo "TARGET_XML_FILES=$list" >> $config_target_mak
5875 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
5876 echo "TARGET_HAS_BFLT=y" >> $config_target_mak
5878 if test "$target_bsd_user" = "yes" ; then
5879 echo "CONFIG_BSD_USER=y" >> $config_target_mak
5882 # generate QEMU_CFLAGS/LDFLAGS for targets
5888 echo "CONFIG_${1}_DIS=y" >> $config_target_mak
5889 echo "CONFIG_${1}_DIS=y" >> config-all-disas.mak
5892 for i
in $ARCH $TARGET_BASE_ARCH ; do
5895 disas_config
"ALPHA"
5898 if test -n "${cxx}"; then
5899 disas_config
"ARM_A64"
5904 if test -n "${cxx}"; then
5905 disas_config
"ARM_A64"
5927 disas_config
"MICROBLAZE"
5933 disas_config
"MOXIE"
5936 disas_config
"OPENRISC"
5948 disas_config
"SPARC"
5951 disas_config
"XTENSA"
5955 if test "$tcg_interpreter" = "yes" ; then
5961 # Ensure there's only a single GP
5962 cflags
="-msmall-data $cflags"
5966 if test "$gprof" = "yes" ; then
5967 echo "TARGET_GPROF=yes" >> $config_target_mak
5968 if test "$target_linux_user" = "yes" ; then
5970 ldflags
="-p $ldflags"
5972 if test "$target_softmmu" = "yes" ; then
5973 ldflags
="-p $ldflags"
5974 echo "GPROF_CFLAGS=-p" >> $config_target_mak
5978 if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
5979 ldflags
="$ldflags $textseg_ldflags"
5982 echo "LDFLAGS+=$ldflags" >> $config_target_mak
5983 echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
5985 done # for target in $targets
5987 if [ "$pixman" = "internal" ]; then
5988 echo "config-host.h: subdir-pixman" >> $config_host_mak
5991 if [ "$dtc_internal" = "yes" ]; then
5992 echo "config-host.h: subdir-dtc" >> $config_host_mak
5995 if test "$numa" = "yes"; then
5996 echo "CONFIG_NUMA=y" >> $config_host_mak
5999 if test "$ccache_cpp2" = "yes"; then
6000 echo "export CCACHE_CPP2=y" >> $config_host_mak
6003 # build tree in object directory in case the source is not in the current directory
6004 DIRS
="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests"
6006 DIRS
="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw"
6007 DIRS
="$DIRS roms/seabios roms/vgabios"
6008 DIRS
="$DIRS qapi-generated"
6009 FILES
="Makefile tests/tcg/Makefile qdict-test-data.txt"
6010 FILES
="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
6011 FILES
="$FILES tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile"
6012 FILES
="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
6013 FILES
="$FILES pc-bios/spapr-rtas/Makefile"
6014 FILES
="$FILES pc-bios/s390-ccw/Makefile"
6015 FILES
="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
6016 FILES
="$FILES pc-bios/qemu-icon.bmp"
6018 $source_path/pc-bios
/*.bin \
6019 $source_path/pc-bios
/*.aml \
6020 $source_path/pc-bios
/*.rom \
6021 $source_path/pc-bios
/*.dtb \
6022 $source_path/pc-bios
/*.img \
6023 $source_path/pc-bios
/openbios-
* \
6024 $source_path/pc-bios
/u-boot.
* \
6025 $source_path/pc-bios
/palcode-
*
6027 FILES
="$FILES pc-bios/$(basename $bios_file)"
6029 for test_file
in $
(find $source_path/tests
/acpi-test-data
-type f
)
6031 FILES
="$FILES tests/acpi-test-data$(echo $test_file | sed -e 's/.*acpi-test-data//')"
6034 for f
in $FILES ; do
6035 if [ -e "$source_path/$f" ] && [ "$pwd_is_source_path" != "y" ]; then
6036 symlink
"$source_path/$f" "$f"
6040 # temporary config to build submodules
6041 for rom
in seabios vgabios
; do
6042 config_mak
=roms
/$rom/config.mak
6043 echo "# Automatically generated by configure - do not modify" > $config_mak
6044 echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
6045 echo "AS=$as" >> $config_mak
6046 echo "CCAS=$ccas" >> $config_mak
6047 echo "CC=$cc" >> $config_mak
6048 echo "BCC=bcc" >> $config_mak
6049 echo "CPP=$cpp" >> $config_mak
6050 echo "OBJCOPY=objcopy" >> $config_mak
6051 echo "IASL=$iasl" >> $config_mak
6052 echo "LD=$ld" >> $config_mak
6055 # set up tests data directory
6056 if [ ! -e tests
/data
]; then
6057 symlink
"$source_path/tests/data" tests
/data
6060 # set up qemu-iotests in this build directory
6061 iotests_common_env
="tests/qemu-iotests/common.env"
6062 iotests_check
="tests/qemu-iotests/check"
6064 echo "# Automatically generated by configure - do not modify" > "$iotests_common_env"
6065 echo >> "$iotests_common_env"
6066 echo "export PYTHON='$python'" >> "$iotests_common_env"
6068 if [ ! -e "$iotests_check" ]; then
6069 symlink
"$source_path/$iotests_check" "$iotests_check"
6072 # Save the configure command line for later reuse.
6073 cat <<EOD >config.status
6075 # Generated by configure.
6076 # Run this file to recreate the current configuration.
6077 # Compiler output produced by configure, useful for debugging
6078 # configure, is in config.log if it exists.
6080 printf "exec" >>config.status
6081 printf " '%s'" "$0" "$@" >>config.status
6082 echo ' "$@"' >>config.status
6083 chmod +x config.status