Annotation of qemu/configure, revision 1.1.1.18

1.1       root        1: #!/bin/sh
                      2: #
                      3: # qemu configure script (c) 2003 Fabrice Bellard
                      4: #
                      5: # set temporary file name
                      6: if test ! -z "$TMPDIR" ; then
                      7:     TMPDIR1="${TMPDIR}"
                      8: elif test ! -z "$TEMPDIR" ; then
                      9:     TMPDIR1="${TEMPDIR}"
                     10: else
                     11:     TMPDIR1="/tmp"
                     12: fi
                     13: 
                     14: TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
                     15: TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
1.1.1.11  root       16: TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe"
1.1.1.7   root       17: 
1.1.1.14  root       18: # NB: do not call "exit" in the trap handler; this is buggy with some shells;
                     19: # see <1285349658-3122-1-git-send-email-loic.minier@linaro.org>
                     20: trap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM
                     21: rm -f config.log
1.1.1.11  root       22: 
1.1.1.18! root       23: # Print a helpful header at the top of config.log
        !            24: echo "# QEMU configure log $(date)" >> config.log
        !            25: printf "# Configured with:" >> config.log
        !            26: printf " '%s'" "$0" "$@" >> config.log
        !            27: echo >> config.log
        !            28: echo "#" >> config.log
        !            29: 
1.1.1.11  root       30: compile_object() {
1.1.1.14  root       31:   echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
                     32:   $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
1.1.1.11  root       33: }
                     34: 
                     35: compile_prog() {
                     36:   local_cflags="$1"
                     37:   local_ldflags="$2"
1.1.1.14  root       38:   echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
                     39:   $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
                     40: }
                     41: 
                     42: # symbolically link $1 to $2.  Portable version of "ln -sf".
                     43: symlink() {
1.1.1.18! root       44:   rm -rf "$2"
        !            45:   ln -s "$1" "$2"
1.1.1.11  root       46: }
1.1       root       47: 
1.1.1.13  root       48: # check whether a command is available to this shell (may be either an
                     49: # executable or a builtin)
                     50: has() {
                     51:     type "$1" >/dev/null 2>&1
                     52: }
                     53: 
                     54: # search for an executable in PATH
                     55: path_of() {
                     56:     local_command="$1"
                     57:     local_ifs="$IFS"
                     58:     local_dir=""
                     59: 
                     60:     # pathname has a dir component?
                     61:     if [ "${local_command#*/}" != "$local_command" ]; then
                     62:         if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then
                     63:             echo "$local_command"
                     64:             return 0
                     65:         fi
                     66:     fi
                     67:     if [ -z "$local_command" ]; then
                     68:         return 1
                     69:     fi
                     70: 
                     71:     IFS=:
                     72:     for local_dir in $PATH; do
                     73:         if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then
                     74:             echo "$local_dir/$local_command"
                     75:             IFS="${local_ifs:-$(printf ' \t\n')}"
                     76:             return 0
                     77:         fi
                     78:     done
                     79:     # not found
                     80:     IFS="${local_ifs:-$(printf ' \t\n')}"
                     81:     return 1
                     82: }
                     83: 
1.1       root       84: # default parameters
1.1.1.14  root       85: source_path=`dirname "$0"`
1.1.1.11  root       86: cpu=""
1.1       root       87: interp_prefix="/usr/gnemul/qemu-%M"
                     88: static="no"
1.1.1.11  root       89: sparc_cpu=""
1.1       root       90: cross_prefix=""
1.1.1.7   root       91: audio_drv_list=""
1.1.1.14  root       92: audio_card_list="ac97 es1370 sb16 hda"
                     93: audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus hda"
1.1.1.11  root       94: block_drv_whitelist=""
1.1       root       95: host_cc="gcc"
1.1.1.11  root       96: helper_cflags=""
                     97: libs_softmmu=""
                     98: libs_tools=""
                     99: audio_pt_int=""
                    100: audio_win_int=""
1.1.1.14  root      101: cc_i386=i386-pc-linux-gnu-gcc
1.1.1.17  root      102: libs_qga=""
1.1.1.18! root      103: debug_info="yes"
1.1.1.14  root      104: 
                    105: target_list=""
                    106: 
                    107: # Default value for a variable defining feature "foo".
                    108: #  * foo="no"  feature will only be used if --enable-foo arg is given
                    109: #  * foo=""    feature will be searched for, and if found, will be used
                    110: #              unless --disable-foo is given
                    111: #  * foo="yes" this value will only be set by --enable-foo flag.
                    112: #              feature will searched for,
                    113: #              if not found, configure exits with error
                    114: #
                    115: # Always add --enable-foo and --disable-foo command line args.
                    116: # Distributions want to ensure that several features are compiled in, and it
                    117: # is impossible without a --enable-foo that exits if a feature is not found.
                    118: 
                    119: bluez=""
                    120: brlapi=""
                    121: curl=""
                    122: curses=""
                    123: docs=""
                    124: fdt=""
                    125: nptl=""
                    126: sdl=""
1.1.1.18! root      127: virtfs=""
1.1.1.16  root      128: vnc="yes"
1.1.1.14  root      129: sparse="no"
                    130: uuid=""
                    131: vde=""
                    132: vnc_tls=""
                    133: vnc_sasl=""
                    134: vnc_jpeg=""
                    135: vnc_png=""
                    136: vnc_thread="no"
                    137: xen=""
1.1.1.16  root      138: xen_ctrl_version=""
1.1.1.14  root      139: linux_aio=""
1.1.1.18! root      140: cap_ng=""
1.1.1.14  root      141: attr=""
1.1.1.17  root      142: libattr=""
1.1.1.14  root      143: xfs=""
                    144: 
1.1.1.17  root      145: vhost_net="no"
                    146: kvm="no"
1.1.1.14  root      147: gprof="no"
                    148: debug_tcg="no"
                    149: debug_mon="no"
                    150: debug="no"
                    151: strip_opt="yes"
1.1.1.17  root      152: tcg_interpreter="no"
1.1.1.14  root      153: bigendian="no"
                    154: mingw32="no"
                    155: EXESUF=""
                    156: prefix="/usr/local"
                    157: mandir="\${prefix}/share/man"
1.1.1.18! root      158: datadir="\${prefix}/share"
        !           159: qemu_docdir="\${prefix}/share/doc/qemu"
1.1.1.14  root      160: bindir="\${prefix}/bin"
1.1.1.16  root      161: libdir="\${prefix}/lib"
1.1.1.17  root      162: includedir="\${prefix}/include"
1.1.1.14  root      163: sysconfdir="\${prefix}/etc"
                    164: confsuffix="/qemu"
                    165: slirp="yes"
                    166: fmod_lib=""
                    167: fmod_inc=""
                    168: oss_lib=""
                    169: bsd="no"
                    170: linux="no"
                    171: solaris="no"
                    172: profiler="no"
                    173: cocoa="no"
                    174: softmmu="yes"
                    175: linux_user="no"
                    176: bsd_user="no"
                    177: guest_base=""
                    178: uname_release=""
                    179: mixemu="no"
                    180: aix="no"
                    181: blobs="yes"
                    182: pkgversion=""
1.1.1.17  root      183: pie=""
1.1.1.14  root      184: zero_malloc=""
                    185: trace_backend="nop"
                    186: trace_file="trace"
                    187: spice=""
                    188: rbd=""
1.1.1.16  root      189: smartcard=""
                    190: smartcard_nss=""
                    191: usb_redir=""
                    192: opengl=""
1.1.1.17  root      193: zlib="yes"
1.1.1.16  root      194: guest_agent="yes"
1.1.1.17  root      195: libiscsi=""
1.1.1.18! root      196: coroutine=""
1.1.1.7   root      197: 
                    198: # parse CC options first
                    199: for opt do
                    200:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
                    201:   case "$opt" in
                    202:   --cross-prefix=*) cross_prefix="$optarg"
                    203:   ;;
1.1.1.14  root      204:   --cc=*) CC="$optarg"
                    205:   ;;
                    206:   --source-path=*) source_path="$optarg"
1.1.1.7   root      207:   ;;
1.1.1.11  root      208:   --cpu=*) cpu="$optarg"
                    209:   ;;
                    210:   --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
                    211:   ;;
                    212:   --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
                    213:   ;;
1.1.1.18! root      214:   --enable-debug-info) debug_info="yes"
        !           215:   ;;
        !           216:   --disable-debug-info) debug_info="no"
        !           217:   ;;
1.1.1.11  root      218:   --sparc_cpu=*)
                    219:     sparc_cpu="$optarg"
                    220:     case $sparc_cpu in
                    221:     v7|v8|v8plus|v8plusa)
                    222:       cpu="sparc"
                    223:     ;;
                    224:     v9)
                    225:       cpu="sparc64"
                    226:     ;;
                    227:     *)
                    228:       echo "undefined SPARC architecture. Exiting";
                    229:       exit 1
                    230:     ;;
                    231:     esac
                    232:   ;;
1.1.1.7   root      233:   esac
                    234: done
                    235: # OS specific
                    236: # Using uname is really, really broken.  Once we have the right set of checks
1.1.1.18! root      237: # we can eliminate its usage altogether.
1.1.1.7   root      238: 
1.1.1.17  root      239: cc="${CC-${cross_prefix}gcc}"
                    240: ar="${AR-${cross_prefix}ar}"
                    241: objcopy="${OBJCOPY-${cross_prefix}objcopy}"
                    242: ld="${LD-${cross_prefix}ld}"
                    243: libtool="${LIBTOOL-${cross_prefix}libtool}"
                    244: strip="${STRIP-${cross_prefix}strip}"
                    245: windres="${WINDRES-${cross_prefix}windres}"
1.1.1.18! root      246: pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
        !           247: query_pkg_config() {
        !           248:     "${pkg_config_exe}" ${QEMU_PKG_CONFIG_FLAGS} "$@"
        !           249: }
        !           250: pkg_config=query_pkg_config
1.1.1.17  root      251: sdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}"
1.1.1.7   root      252: 
1.1.1.11  root      253: # default flags for all hosts
                    254: QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
1.1.1.16  root      255: QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
1.1.1.11  root      256: QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
                    257: QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
1.1.1.13  root      258: QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
1.1.1.17  root      259: QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
1.1.1.18! root      260: if test "$debug_info" = "yes"; then
        !           261:     CFLAGS="-g $CFLAGS"
        !           262:     LDFLAGS="-g $LDFLAGS"
        !           263: fi
1.1.1.11  root      264: 
1.1.1.14  root      265: # make source path absolute
                    266: source_path=`cd "$source_path"; pwd`
1.1.1.7   root      267: 
                    268: check_define() {
                    269: cat > $TMPC <<EOF
                    270: #if !defined($1)
1.1.1.18! root      271: #error $1 not defined
1.1.1.7   root      272: #endif
                    273: int main(void) { return 0; }
                    274: EOF
1.1.1.11  root      275:   compile_object
1.1.1.7   root      276: }
                    277: 
1.1.1.11  root      278: if test ! -z "$cpu" ; then
                    279:   # command line argument
                    280:   :
                    281: elif check_define __i386__ ; then
1.1.1.7   root      282:   cpu="i386"
                    283: elif check_define __x86_64__ ; then
                    284:   cpu="x86_64"
                    285: elif check_define __sparc__ ; then
                    286:   # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
                    287:   # They must be specified using --sparc_cpu
                    288:   if check_define __arch64__ ; then
                    289:     cpu="sparc64"
                    290:   else
                    291:     cpu="sparc"
                    292:   fi
                    293: elif check_define _ARCH_PPC ; then
                    294:   if check_define _ARCH_PPC64 ; then
                    295:     cpu="ppc64"
                    296:   else
                    297:     cpu="ppc"
                    298:   fi
1.1.1.11  root      299: elif check_define __mips__ ; then
                    300:   cpu="mips"
1.1.1.13  root      301: elif check_define __ia64__ ; then
                    302:   cpu="ia64"
                    303: elif check_define __s390__ ; then
                    304:   if check_define __s390x__ ; then
                    305:     cpu="s390x"
                    306:   else
                    307:     cpu="s390"
                    308:   fi
1.1.1.18! root      309: elif check_define __arm__ ; then
        !           310:   cpu="arm"
1.1.1.17  root      311: elif check_define __hppa__ ; then
                    312:   cpu="hppa"
1.1.1.7   root      313: else
                    314:   cpu=`uname -m`
                    315: fi
                    316: 
1.1.1.18! root      317: ARCH=
        !           318: # Normalise host CPU name and set ARCH.
        !           319: # Note that this case should only have supported host CPUs, not guests.
1.1       root      320: case "$cpu" in
1.1.1.18! root      321:   ia64|ppc|ppc64|s390|s390x|sparc64)
1.1.1.11  root      322:     cpu="$cpu"
                    323:   ;;
1.1       root      324:   i386|i486|i586|i686|i86pc|BePC)
                    325:     cpu="i386"
                    326:   ;;
1.1.1.7   root      327:   x86_64|amd64)
                    328:     cpu="x86_64"
                    329:   ;;
1.1.1.18! root      330:   armv*b|armv*l|arm)
        !           331:     cpu="arm"
1.1       root      332:   ;;
1.1.1.17  root      333:   hppa|parisc|parisc64)
1.1.1.7   root      334:     cpu="hppa"
1.1       root      335:   ;;
1.1.1.11  root      336:   mips*)
1.1       root      337:     cpu="mips"
                    338:   ;;
1.1.1.6   root      339:   sparc|sun4[cdmuv])
1.1       root      340:     cpu="sparc"
                    341:   ;;
                    342:   *)
1.1.1.18! root      343:     # This will result in either an error or falling back to TCI later
        !           344:     ARCH=unknown
1.1       root      345:   ;;
                    346: esac
1.1.1.18! root      347: if test -z "$ARCH"; then
        !           348:   ARCH="$cpu"
        !           349: fi
1.1.1.11  root      350: 
1.1       root      351: # OS specific
1.1.1.7   root      352: if check_define __linux__ ; then
                    353:   targetos="Linux"
                    354: elif check_define _WIN32 ; then
                    355:   targetos='MINGW32'
1.1.1.9   root      356: elif check_define __OpenBSD__ ; then
                    357:   targetos='OpenBSD'
                    358: elif check_define __sun__ ; then
                    359:   targetos='SunOS'
1.1.1.14  root      360: elif check_define __HAIKU__ ; then
                    361:   targetos='Haiku'
1.1.1.7   root      362: else
                    363:   targetos=`uname -s`
                    364: fi
1.1.1.11  root      365: 
1.1       root      366: case $targetos in
                    367: CYGWIN*)
1.1.1.11  root      368:   mingw32="yes"
                    369:   QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
                    370:   audio_possible_drivers="winwave sdl"
                    371:   audio_drv_list="winwave"
1.1       root      372: ;;
                    373: MINGW32*)
1.1.1.11  root      374:   mingw32="yes"
                    375:   audio_possible_drivers="winwave dsound sdl fmod"
                    376:   audio_drv_list="winwave"
1.1.1.6   root      377: ;;
                    378: GNU/kFreeBSD)
1.1.1.11  root      379:   bsd="yes"
                    380:   audio_drv_list="oss"
                    381:   audio_possible_drivers="oss sdl esd pa"
1.1       root      382: ;;
                    383: FreeBSD)
1.1.1.11  root      384:   bsd="yes"
1.1.1.14  root      385:   make="${MAKE-gmake}"
1.1.1.11  root      386:   audio_drv_list="oss"
                    387:   audio_possible_drivers="oss sdl esd pa"
1.1.1.13  root      388:   # needed for kinfo_getvmmap(3) in libutil.h
                    389:   LIBS="-lutil $LIBS"
1.1       root      390: ;;
1.1.1.9   root      391: DragonFly)
1.1.1.11  root      392:   bsd="yes"
1.1.1.14  root      393:   make="${MAKE-gmake}"
1.1.1.11  root      394:   audio_drv_list="oss"
                    395:   audio_possible_drivers="oss sdl esd pa"
1.1.1.9   root      396: ;;
1.1       root      397: NetBSD)
1.1.1.11  root      398:   bsd="yes"
1.1.1.14  root      399:   make="${MAKE-gmake}"
1.1.1.11  root      400:   audio_drv_list="oss"
                    401:   audio_possible_drivers="oss sdl esd"
                    402:   oss_lib="-lossaudio"
1.1       root      403: ;;
                    404: OpenBSD)
1.1.1.11  root      405:   bsd="yes"
1.1.1.14  root      406:   make="${MAKE-gmake}"
1.1.1.11  root      407:   audio_drv_list="oss"
                    408:   audio_possible_drivers="oss sdl esd"
                    409:   oss_lib="-lossaudio"
1.1       root      410: ;;
                    411: Darwin)
1.1.1.11  root      412:   bsd="yes"
                    413:   darwin="yes"
                    414:   # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can
                    415:   # run 64-bit userspace code
                    416:   if [ "$cpu" = "i386" ] ; then
1.1.1.7   root      417:     is_x86_64=`sysctl -n hw.optional.x86_64`
                    418:     [ "$is_x86_64" = "1" ] && cpu=x86_64
1.1.1.11  root      419:   fi
                    420:   if [ "$cpu" = "x86_64" ] ; then
                    421:     QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
                    422:     LDFLAGS="-arch x86_64 $LDFLAGS"
                    423:   else
                    424:     QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS"
                    425:   fi
                    426:   cocoa="yes"
                    427:   audio_drv_list="coreaudio"
                    428:   audio_possible_drivers="coreaudio sdl fmod"
                    429:   LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
                    430:   libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
1.1       root      431: ;;
1.1.1.3   root      432: SunOS)
1.1.1.11  root      433:   solaris="yes"
1.1.1.14  root      434:   make="${MAKE-gmake}"
                    435:   install="${INSTALL-ginstall}"
1.1.1.11  root      436:   ld="gld"
1.1.1.16  root      437:   smbd="${SMBD-/usr/sfw/sbin/smbd}"
1.1.1.11  root      438:   needs_libsunmath="no"
                    439:   solarisrev=`uname -r | cut -f2 -d.`
                    440:   # have to select again, because `uname -m` returns i86pc
                    441:   # even on an x86_64 box.
                    442:   solariscpu=`isainfo -k`
                    443:   if test "${solariscpu}" = "amd64" ; then
                    444:     cpu="x86_64"
                    445:   fi
                    446:   if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
                    447:     if test "$solarisrev" -le 9 ; then
                    448:       if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
                    449:         needs_libsunmath="yes"
                    450:         QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
                    451:         LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
                    452:         LIBS="-lsunmath $LIBS"
                    453:       else
                    454:         echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
                    455:         echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
                    456:         echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
                    457:         echo "Studio 11 can be downloaded from www.sun.com."
                    458:         exit 1
                    459:       fi
1.1.1.6   root      460:     fi
1.1.1.11  root      461:   fi
                    462:   if test -f /usr/include/sys/soundcard.h ; then
                    463:     audio_drv_list="oss"
                    464:   fi
                    465:   audio_possible_drivers="oss sdl"
                    466: # needed for CMSG_ macros in sys/socket.h
                    467:   QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
                    468: # needed for TIOCWIN* defines in termios.h
                    469:   QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
                    470:   QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
1.1.1.18! root      471:   solarisnetlibs="-lsocket -lnsl -lresolv"
        !           472:   LIBS="$solarisnetlibs $LIBS"
        !           473:   libs_qga="$solarisnetlibs $libs_qga"
1.1.1.7   root      474: ;;
                    475: AIX)
1.1.1.11  root      476:   aix="yes"
1.1.1.14  root      477:   make="${MAKE-gmake}"
                    478: ;;
                    479: Haiku)
                    480:   haiku="yes"
                    481:   QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
                    482:   LIBS="-lposix_error_mapper -lnetwork $LIBS"
1.1.1.3   root      483: ;;
1.1.1.2   root      484: *)
1.1.1.11  root      485:   audio_drv_list="oss"
                    486:   audio_possible_drivers="oss alsa sdl esd pa"
                    487:   linux="yes"
                    488:   linux_user="yes"
                    489:   usb="linux"
1.1.1.16  root      490:   kvm="yes"
                    491:   vhost_net="yes"
1.1.1.11  root      492:   if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
1.1.1.7   root      493:     audio_possible_drivers="$audio_possible_drivers fmod"
1.1.1.11  root      494:   fi
1.1       root      495: ;;
                    496: esac
                    497: 
                    498: if [ "$bsd" = "yes" ] ; then
1.1.1.3   root      499:   if [ "$darwin" != "yes" ] ; then
1.1.1.7   root      500:     usb="bsd"
1.1.1.18! root      501:     bsd_user="yes"
1.1       root      502:   fi
                    503: fi
                    504: 
1.1.1.14  root      505: : ${make=${MAKE-make}}
                    506: : ${install=${INSTALL-install}}
1.1.1.16  root      507: : ${python=${PYTHON-python}}
                    508: : ${smbd=${SMBD-/usr/sbin/smbd}}
1.1.1.14  root      509: 
1.1.1.11  root      510: if test "$mingw32" = "yes" ; then
                    511:   EXESUF=".exe"
                    512:   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
1.1.1.13  root      513:   # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
                    514:   QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
1.1.1.18! root      515:   LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
        !           516: cat > $TMPC << EOF
        !           517: int main(void) { return 0; }
        !           518: EOF
        !           519:   if compile_prog "" "-liberty" ; then
        !           520:     LIBS="-liberty $LIBS"
        !           521:   fi
        !           522:   prefix="c:/Program Files/QEMU"
1.1.1.13  root      523:   mandir="\${prefix}"
                    524:   datadir="\${prefix}"
1.1.1.18! root      525:   qemu_docdir="\${prefix}"
1.1.1.13  root      526:   bindir="\${prefix}"
                    527:   sysconfdir="\${prefix}"
                    528:   confsuffix=""
1.1.1.18! root      529:   libs_qga="-lws2_32 -lwinmm -lpowrprof $libs_qga"
1.1.1.11  root      530: fi
                    531: 
1.1.1.9   root      532: werror=""
1.1.1.6   root      533: 
1.1       root      534: for opt do
1.1.1.3   root      535:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
1.1       root      536:   case "$opt" in
1.1.1.2   root      537:   --help|-h) show_help=yes
                    538:   ;;
1.1.1.16  root      539:   --version|-V) exec cat $source_path/VERSION
                    540:   ;;
1.1.1.3   root      541:   --prefix=*) prefix="$optarg"
1.1       root      542:   ;;
1.1.1.3   root      543:   --interp-prefix=*) interp_prefix="$optarg"
1.1       root      544:   ;;
1.1.1.14  root      545:   --source-path=*)
1.1       root      546:   ;;
1.1.1.7   root      547:   --cross-prefix=*)
1.1       root      548:   ;;
1.1.1.7   root      549:   --cc=*)
1.1       root      550:   ;;
1.1.1.3   root      551:   --host-cc=*) host_cc="$optarg"
1.1       root      552:   ;;
1.1.1.3   root      553:   --make=*) make="$optarg"
1.1       root      554:   ;;
1.1.1.3   root      555:   --install=*) install="$optarg"
1.1       root      556:   ;;
1.1.1.16  root      557:   --python=*) python="$optarg"
                    558:   ;;
                    559:   --smbd=*) smbd="$optarg"
                    560:   ;;
1.1.1.11  root      561:   --extra-cflags=*)
1.1       root      562:   ;;
1.1.1.11  root      563:   --extra-ldflags=*)
1.1       root      564:   ;;
1.1.1.18! root      565:   --enable-debug-info)
        !           566:   ;;
        !           567:   --disable-debug-info)
        !           568:   ;;
1.1.1.11  root      569:   --cpu=*)
1.1.1.3   root      570:   ;;
                    571:   --target-list=*) target_list="$optarg"
1.1       root      572:   ;;
1.1.1.14  root      573:   --enable-trace-backend=*) trace_backend="$optarg"
                    574:   ;;
                    575:   --with-trace-file=*) trace_file="$optarg"
                    576:   ;;
1.1       root      577:   --enable-gprof) gprof="yes"
                    578:   ;;
1.1.1.13  root      579:   --static)
                    580:     static="yes"
                    581:     LDFLAGS="-static $LDFLAGS"
1.1.1.18! root      582:     QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
1.1.1.13  root      583:   ;;
                    584:   --mandir=*) mandir="$optarg"
                    585:   ;;
                    586:   --bindir=*) bindir="$optarg"
                    587:   ;;
1.1.1.16  root      588:   --libdir=*) libdir="$optarg"
                    589:   ;;
1.1.1.17  root      590:   --includedir=*) includedir="$optarg"
                    591:   ;;
1.1.1.13  root      592:   --datadir=*) datadir="$optarg"
                    593:   ;;
1.1.1.18! root      594:   --with-confsuffix=*) confsuffix="$optarg"
        !           595:   ;;
        !           596:   --docdir=*) qemu_docdir="$optarg"
1.1.1.13  root      597:   ;;
                    598:   --sysconfdir=*) sysconfdir="$optarg"
1.1       root      599:   ;;
1.1.1.17  root      600:   --sbindir=*|--libexecdir=*|--sharedstatedir=*|--localstatedir=*|\
                    601:   --oldincludedir=*|--datarootdir=*|--infodir=*|--localedir=*|\
                    602:   --htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
                    603:     # These switches are silently ignored, for compatibility with
                    604:     # autoconf-generated configure scripts. This allows QEMU's
                    605:     # configure to be used by RPM and similar macros that set
                    606:     # lots of directory switches by default.
                    607:   ;;
1.1       root      608:   --disable-sdl) sdl="no"
                    609:   ;;
1.1.1.11  root      610:   --enable-sdl) sdl="yes"
                    611:   ;;
1.1.1.18! root      612:   --disable-virtfs) virtfs="no"
        !           613:   ;;
        !           614:   --enable-virtfs) virtfs="yes"
        !           615:   ;;
1.1.1.16  root      616:   --disable-vnc) vnc="no"
                    617:   ;;
                    618:   --enable-vnc) vnc="yes"
                    619:   ;;
1.1.1.7   root      620:   --fmod-lib=*) fmod_lib="$optarg"
1.1.1.2   root      621:   ;;
1.1.1.7   root      622:   --fmod-inc=*) fmod_inc="$optarg"
1.1.1.2   root      623:   ;;
1.1.1.7   root      624:   --oss-lib=*) oss_lib="$optarg"
1.1.1.2   root      625:   ;;
1.1.1.7   root      626:   --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
1.1       root      627:   ;;
1.1.1.7   root      628:   --audio-drv-list=*) audio_drv_list="$optarg"
1.1       root      629:   ;;
1.1.1.11  root      630:   --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
                    631:   ;;
1.1.1.9   root      632:   --enable-debug-tcg) debug_tcg="yes"
                    633:   ;;
                    634:   --disable-debug-tcg) debug_tcg="no"
                    635:   ;;
1.1.1.13  root      636:   --enable-debug-mon) debug_mon="yes"
                    637:   ;;
                    638:   --disable-debug-mon) debug_mon="no"
                    639:   ;;
1.1.1.9   root      640:   --enable-debug)
                    641:       # Enable debugging options that aren't excessively noisy
                    642:       debug_tcg="yes"
1.1.1.13  root      643:       debug_mon="yes"
1.1.1.9   root      644:       debug="yes"
                    645:       strip_opt="no"
                    646:   ;;
1.1.1.7   root      647:   --enable-sparse) sparse="yes"
1.1       root      648:   ;;
1.1.1.7   root      649:   --disable-sparse) sparse="no"
1.1.1.6   root      650:   ;;
1.1.1.9   root      651:   --disable-strip) strip_opt="no"
                    652:   ;;
1.1.1.7   root      653:   --disable-vnc-tls) vnc_tls="no"
1.1.1.2   root      654:   ;;
1.1.1.11  root      655:   --enable-vnc-tls) vnc_tls="yes"
                    656:   ;;
1.1.1.9   root      657:   --disable-vnc-sasl) vnc_sasl="no"
                    658:   ;;
1.1.1.11  root      659:   --enable-vnc-sasl) vnc_sasl="yes"
                    660:   ;;
1.1.1.13  root      661:   --disable-vnc-jpeg) vnc_jpeg="no"
                    662:   ;;
                    663:   --enable-vnc-jpeg) vnc_jpeg="yes"
                    664:   ;;
                    665:   --disable-vnc-png) vnc_png="no"
                    666:   ;;
                    667:   --enable-vnc-png) vnc_png="yes"
                    668:   ;;
                    669:   --disable-vnc-thread) vnc_thread="no"
                    670:   ;;
                    671:   --enable-vnc-thread) vnc_thread="yes"
                    672:   ;;
1.1       root      673:   --disable-slirp) slirp="no"
1.1.1.2   root      674:   ;;
1.1.1.11  root      675:   --disable-uuid) uuid="no"
                    676:   ;;
                    677:   --enable-uuid) uuid="yes"
                    678:   ;;
1.1.1.7   root      679:   --disable-vde) vde="no"
1.1.1.2   root      680:   ;;
1.1.1.11  root      681:   --enable-vde) vde="yes"
1.1.1.2   root      682:   ;;
1.1.1.9   root      683:   --disable-xen) xen="no"
                    684:   ;;
1.1.1.11  root      685:   --enable-xen) xen="yes"
                    686:   ;;
1.1.1.7   root      687:   --disable-brlapi) brlapi="no"
                    688:   ;;
1.1.1.11  root      689:   --enable-brlapi) brlapi="yes"
                    690:   ;;
1.1.1.7   root      691:   --disable-bluez) bluez="no"
                    692:   ;;
1.1.1.11  root      693:   --enable-bluez) bluez="yes"
                    694:   ;;
1.1.1.7   root      695:   --disable-kvm) kvm="no"
                    696:   ;;
1.1.1.11  root      697:   --enable-kvm) kvm="yes"
                    698:   ;;
1.1.1.17  root      699:   --disable-tcg-interpreter) tcg_interpreter="no"
                    700:   ;;
                    701:   --enable-tcg-interpreter) tcg_interpreter="yes"
                    702:   ;;
1.1.1.18! root      703:   --disable-cap-ng)  cap_ng="no"
        !           704:   ;;
        !           705:   --enable-cap-ng) cap_ng="yes"
        !           706:   ;;
1.1.1.14  root      707:   --disable-spice) spice="no"
                    708:   ;;
                    709:   --enable-spice) spice="yes"
                    710:   ;;
1.1.1.17  root      711:   --disable-libiscsi) libiscsi="no"
                    712:   ;;
                    713:   --enable-libiscsi) libiscsi="yes"
                    714:   ;;
1.1.1.3   root      715:   --enable-profiler) profiler="yes"
                    716:   ;;
1.1.1.18! root      717:   --disable-cocoa) cocoa="no"
        !           718:   ;;
1.1.1.7   root      719:   --enable-cocoa)
                    720:       cocoa="yes" ;
                    721:       sdl="no" ;
                    722:       audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
1.1.1.2   root      723:   ;;
1.1.1.3   root      724:   --disable-system) softmmu="no"
                    725:   ;;
                    726:   --enable-system) softmmu="yes"
                    727:   ;;
1.1.1.11  root      728:   --disable-user)
                    729:       linux_user="no" ;
                    730:       bsd_user="no" ;
                    731:   ;;
                    732:   --enable-user) ;;
1.1.1.5   root      733:   --disable-linux-user) linux_user="no"
1.1.1.3   root      734:   ;;
1.1.1.5   root      735:   --enable-linux-user) linux_user="yes"
1.1.1.3   root      736:   ;;
1.1.1.7   root      737:   --disable-bsd-user) bsd_user="no"
                    738:   ;;
                    739:   --enable-bsd-user) bsd_user="yes"
                    740:   ;;
1.1.1.11  root      741:   --enable-guest-base) guest_base="yes"
                    742:   ;;
                    743:   --disable-guest-base) guest_base="no"
                    744:   ;;
1.1.1.17  root      745:   --enable-pie) pie="yes"
1.1.1.11  root      746:   ;;
1.1.1.17  root      747:   --disable-pie) pie="no"
1.1.1.11  root      748:   ;;
1.1.1.5   root      749:   --enable-uname-release=*) uname_release="$optarg"
1.1.1.4   root      750:   ;;
1.1.1.6   root      751:   --sparc_cpu=*)
                    752:   ;;
                    753:   --enable-werror) werror="yes"
                    754:   ;;
                    755:   --disable-werror) werror="no"
                    756:   ;;
1.1.1.7   root      757:   --disable-curses) curses="no"
                    758:   ;;
1.1.1.11  root      759:   --enable-curses) curses="yes"
                    760:   ;;
1.1.1.9   root      761:   --disable-curl) curl="no"
                    762:   ;;
1.1.1.11  root      763:   --enable-curl) curl="yes"
                    764:   ;;
                    765:   --disable-fdt) fdt="no"
                    766:   ;;
                    767:   --enable-fdt) fdt="yes"
                    768:   ;;
1.1.1.7   root      769:   --disable-nptl) nptl="no"
                    770:   ;;
1.1.1.11  root      771:   --enable-nptl) nptl="yes"
                    772:   ;;
1.1.1.7   root      773:   --enable-mixemu) mixemu="yes"
                    774:   ;;
1.1.1.11  root      775:   --disable-linux-aio) linux_aio="no"
1.1.1.9   root      776:   ;;
1.1.1.11  root      777:   --enable-linux-aio) linux_aio="yes"
1.1.1.7   root      778:   ;;
1.1.1.13  root      779:   --disable-attr) attr="no"
                    780:   ;;
                    781:   --enable-attr) attr="yes"
                    782:   ;;
1.1.1.7   root      783:   --disable-blobs) blobs="no"
                    784:   ;;
1.1.1.9   root      785:   --with-pkgversion=*) pkgversion=" ($optarg)"
                    786:   ;;
1.1.1.18! root      787:   --with-coroutine=*) coroutine="$optarg"
        !           788:   ;;
1.1.1.11  root      789:   --disable-docs) docs="no"
                    790:   ;;
                    791:   --enable-docs) docs="yes"
1.1.1.9   root      792:   ;;
1.1.1.13  root      793:   --disable-vhost-net) vhost_net="no"
                    794:   ;;
                    795:   --enable-vhost-net) vhost_net="yes"
                    796:   ;;
1.1.1.16  root      797:   --disable-opengl) opengl="no"
                    798:   ;;
                    799:   --enable-opengl) opengl="yes"
                    800:   ;;
1.1.1.14  root      801:   --disable-rbd) rbd="no"
                    802:   ;;
                    803:   --enable-rbd) rbd="yes"
                    804:   ;;
1.1.1.18! root      805:   --disable-xfsctl) xfs="no"
        !           806:   ;;
        !           807:   --enable-xfsctl) xfs="yes"
        !           808:   ;;
1.1.1.16  root      809:   --disable-smartcard) smartcard="no"
                    810:   ;;
                    811:   --enable-smartcard) smartcard="yes"
                    812:   ;;
                    813:   --disable-smartcard-nss) smartcard_nss="no"
                    814:   ;;
                    815:   --enable-smartcard-nss) smartcard_nss="yes"
                    816:   ;;
                    817:   --disable-usb-redir) usb_redir="no"
                    818:   ;;
                    819:   --enable-usb-redir) usb_redir="yes"
                    820:   ;;
1.1.1.17  root      821:   --disable-zlib-test) zlib="no"
                    822:   ;;
1.1.1.16  root      823:   --enable-guest-agent) guest_agent="yes"
                    824:   ;;
                    825:   --disable-guest-agent) guest_agent="no"
                    826:   ;;
1.1.1.6   root      827:   *) echo "ERROR: unknown option $opt"; show_help="yes"
                    828:   ;;
1.1       root      829:   esac
                    830: done
                    831: 
1.1.1.6   root      832: #
                    833: # If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
1.1.1.11  root      834: # QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
1.1.1.6   root      835: #
1.1.1.11  root      836: host_guest_base="no"
1.1.1.7   root      837: case "$cpu" in
1.1.1.11  root      838:     sparc) case $sparc_cpu in
                    839:            v7|v8)
                    840:              QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
                    841:            ;;
                    842:            v8plus|v8plusa)
                    843:              QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
                    844:            ;;
                    845:            *) # sparc_cpu not defined in the command line
                    846:              QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
                    847:            esac
                    848:            LDFLAGS="-m32 $LDFLAGS"
                    849:            QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
1.1.1.9   root      850:            if test "$solaris" = "no" ; then
1.1.1.11  root      851:              QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS"
                    852:              helper_cflags="-ffixed-i0"
1.1.1.9   root      853:            fi
1.1.1.6   root      854:            ;;
1.1.1.11  root      855:     sparc64)
                    856:            QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
                    857:            LDFLAGS="-m64 $LDFLAGS"
                    858:            QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
                    859:            if test "$solaris" != "no" ; then
                    860:              QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
1.1.1.9   root      861:            fi
1.1.1.6   root      862:            ;;
                    863:     s390)
1.1.1.13  root      864:            QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS"
                    865:            LDFLAGS="-m31 $LDFLAGS"
                    866:            host_guest_base="yes"
                    867:            ;;
                    868:     s390x)
                    869:            QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS"
                    870:            LDFLAGS="-m64 $LDFLAGS"
                    871:            host_guest_base="yes"
1.1.1.6   root      872:            ;;
1.1.1.7   root      873:     i386)
1.1.1.11  root      874:            QEMU_CFLAGS="-m32 $QEMU_CFLAGS"
                    875:            LDFLAGS="-m32 $LDFLAGS"
1.1.1.14  root      876:            cc_i386='$(CC) -m32'
1.1.1.11  root      877:            helper_cflags="-fomit-frame-pointer"
                    878:            host_guest_base="yes"
1.1.1.7   root      879:            ;;
                    880:     x86_64)
1.1.1.11  root      881:            QEMU_CFLAGS="-m64 $QEMU_CFLAGS"
                    882:            LDFLAGS="-m64 $LDFLAGS"
1.1.1.14  root      883:            cc_i386='$(CC) -m32'
1.1.1.11  root      884:            host_guest_base="yes"
                    885:            ;;
                    886:     arm*)
                    887:            host_guest_base="yes"
                    888:            ;;
                    889:     ppc*)
                    890:            host_guest_base="yes"
1.1.1.7   root      891:            ;;
1.1.1.13  root      892:     mips*)
                    893:            host_guest_base="yes"
                    894:            ;;
                    895:     ia64*)
                    896:            host_guest_base="yes"
                    897:            ;;
                    898:     hppa*)
                    899:            host_guest_base="yes"
                    900:            ;;
1.1.1.16  root      901:     unicore32*)
                    902:            host_guest_base="yes"
                    903:            ;;
1.1.1.6   root      904: esac
                    905: 
1.1.1.11  root      906: [ -z "$guest_base" ] && guest_base="$host_guest_base"
                    907: 
1.1.1.16  root      908: 
                    909: default_target_list=""
                    910: 
                    911: # these targets are portable
                    912: if [ "$softmmu" = "yes" ] ; then
                    913:     default_target_list="\
                    914: i386-softmmu \
                    915: x86_64-softmmu \
1.1.1.17  root      916: alpha-softmmu \
1.1.1.16  root      917: arm-softmmu \
                    918: cris-softmmu \
                    919: lm32-softmmu \
                    920: m68k-softmmu \
                    921: microblaze-softmmu \
                    922: microblazeel-softmmu \
                    923: mips-softmmu \
                    924: mipsel-softmmu \
                    925: mips64-softmmu \
                    926: mips64el-softmmu \
                    927: ppc-softmmu \
                    928: ppcemb-softmmu \
                    929: ppc64-softmmu \
                    930: sh4-softmmu \
                    931: sh4eb-softmmu \
                    932: sparc-softmmu \
                    933: sparc64-softmmu \
                    934: s390x-softmmu \
1.1.1.17  root      935: xtensa-softmmu \
                    936: xtensaeb-softmmu \
1.1.1.16  root      937: "
                    938: fi
                    939: # the following are Linux specific
                    940: if [ "$linux_user" = "yes" ] ; then
                    941:     default_target_list="${default_target_list}\
                    942: i386-linux-user \
                    943: x86_64-linux-user \
                    944: alpha-linux-user \
                    945: arm-linux-user \
                    946: armeb-linux-user \
                    947: cris-linux-user \
                    948: m68k-linux-user \
                    949: microblaze-linux-user \
                    950: microblazeel-linux-user \
                    951: mips-linux-user \
                    952: mipsel-linux-user \
                    953: ppc-linux-user \
                    954: ppc64-linux-user \
                    955: ppc64abi32-linux-user \
                    956: sh4-linux-user \
                    957: sh4eb-linux-user \
                    958: sparc-linux-user \
                    959: sparc64-linux-user \
                    960: sparc32plus-linux-user \
                    961: unicore32-linux-user \
                    962: s390x-linux-user \
                    963: "
                    964: fi
                    965: # the following are BSD specific
                    966: if [ "$bsd_user" = "yes" ] ; then
                    967:     default_target_list="${default_target_list}\
                    968: i386-bsd-user \
                    969: x86_64-bsd-user \
                    970: sparc-bsd-user \
                    971: sparc64-bsd-user \
                    972: "
                    973: fi
                    974: 
1.1.1.3   root      975: if test x"$show_help" = x"yes" ; then
                    976: cat << EOF
                    977: 
                    978: Usage: configure [options]
                    979: Options: [defaults in brackets after descriptions]
                    980: 
                    981: EOF
                    982: echo "Standard options:"
                    983: echo "  --help                   print this message"
                    984: echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
                    985: echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
                    986: echo "                           use %M for cpu name [$interp_prefix]"
1.1.1.16  root      987: echo "  --target-list=LIST       set target list (default: build everything)"
                    988: echo "Available targets: $default_target_list" | \
                    989:     fold -s -w 53 | sed -e 's/^/                           /'
1.1.1.3   root      990: echo ""
                    991: echo "Advanced options (experts only):"
                    992: echo "  --source-path=PATH       path of source code [$source_path]"
                    993: echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
                    994: echo "  --cc=CC                  use C compiler CC [$cc]"
1.1.1.13  root      995: echo "  --host-cc=CC             use C compiler CC [$host_cc] for code run at"
                    996: echo "                           build time"
1.1.1.11  root      997: echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
1.1.1.9   root      998: echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
1.1.1.3   root      999: echo "  --make=MAKE              use specified make [$make]"
                   1000: echo "  --install=INSTALL        use specified install [$install]"
1.1.1.16  root     1001: echo "  --python=PYTHON          use specified python [$python]"
                   1002: echo "  --smbd=SMBD              use specified smbd [$smbd]"
1.1.1.3   root     1003: echo "  --static                 enable static build [$static]"
1.1.1.13  root     1004: echo "  --mandir=PATH            install man pages in PATH"
1.1.1.18! root     1005: echo "  --datadir=PATH           install firmware in PATH$confsuffix"
        !          1006: echo "  --docdir=PATH            install documentation in PATH$confsuffix"
1.1.1.13  root     1007: echo "  --bindir=PATH            install binaries in PATH"
1.1.1.18! root     1008: echo "  --sysconfdir=PATH        install config in PATH$confsuffix"
        !          1009: echo "  --with-confsuffix=SUFFIX suffix for QEMU data inside datadir and sysconfdir [$confsuffix]"
1.1.1.9   root     1010: echo "  --enable-debug-tcg       enable TCG debugging"
                   1011: echo "  --disable-debug-tcg      disable TCG debugging (default)"
                   1012: echo "  --enable-debug           enable common debug build options"
1.1.1.7   root     1013: echo "  --enable-sparse          enable sparse checker"
                   1014: echo "  --disable-sparse         disable sparse checker (default)"
1.1.1.9   root     1015: echo "  --disable-strip          disable stripping binaries"
1.1.1.6   root     1016: echo "  --disable-werror         disable compilation abort on warning"
                   1017: echo "  --disable-sdl            disable SDL"
1.1.1.11  root     1018: echo "  --enable-sdl             enable SDL"
1.1.1.18! root     1019: echo "  --disable-virtfs         disable VirtFS"
        !          1020: echo "  --enable-virtfs          enable VirtFS"
1.1.1.16  root     1021: echo "  --disable-vnc            disable VNC"
                   1022: echo "  --enable-vnc             enable VNC"
1.1.1.18! root     1023: echo "  --disable-cocoa          disable Cocoa (Mac OS X only)"
        !          1024: echo "  --enable-cocoa           enable Cocoa (default on Mac OS X)"
1.1.1.7   root     1025: echo "  --audio-drv-list=LIST    set audio drivers list:"
                   1026: echo "                           Available drivers: $audio_possible_drivers"
                   1027: echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
                   1028: echo "                           Available cards: $audio_possible_cards"
1.1.1.11  root     1029: echo "  --block-drv-whitelist=L  set block driver whitelist"
                   1030: echo "                           (affects only QEMU, not qemu-img)"
1.1.1.7   root     1031: echo "  --enable-mixemu          enable mixer emulation"
1.1.1.9   root     1032: echo "  --disable-xen            disable xen backend driver support"
1.1.1.11  root     1033: echo "  --enable-xen             enable xen backend driver support"
1.1.1.7   root     1034: echo "  --disable-brlapi         disable BrlAPI"
1.1.1.11  root     1035: echo "  --enable-brlapi          enable BrlAPI"
1.1.1.6   root     1036: echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
1.1.1.11  root     1037: echo "  --enable-vnc-tls         enable TLS encryption for VNC server"
1.1.1.9   root     1038: echo "  --disable-vnc-sasl       disable SASL encryption for VNC server"
1.1.1.11  root     1039: echo "  --enable-vnc-sasl        enable SASL encryption for VNC server"
1.1.1.13  root     1040: echo "  --disable-vnc-jpeg       disable JPEG lossy compression for VNC server"
                   1041: echo "  --enable-vnc-jpeg        enable JPEG lossy compression for VNC server"
                   1042: echo "  --disable-vnc-png        disable PNG compression for VNC server (default)"
                   1043: echo "  --enable-vnc-png         enable PNG compression for VNC server"
                   1044: echo "  --disable-vnc-thread     disable threaded VNC server"
                   1045: echo "  --enable-vnc-thread      enable threaded VNC server"
1.1.1.7   root     1046: echo "  --disable-curses         disable curses output"
1.1.1.11  root     1047: echo "  --enable-curses          enable curses output"
1.1.1.9   root     1048: echo "  --disable-curl           disable curl connectivity"
1.1.1.11  root     1049: echo "  --enable-curl            enable curl connectivity"
                   1050: echo "  --disable-fdt            disable fdt device tree"
                   1051: echo "  --enable-fdt             enable fdt device tree"
1.1.1.7   root     1052: echo "  --disable-bluez          disable bluez stack connectivity"
1.1.1.11  root     1053: echo "  --enable-bluez           enable bluez stack connectivity"
1.1.1.16  root     1054: echo "  --disable-slirp          disable SLIRP userspace network connectivity"
1.1.1.7   root     1055: echo "  --disable-kvm            disable KVM acceleration support"
1.1.1.11  root     1056: echo "  --enable-kvm             enable KVM acceleration support"
1.1.1.17  root     1057: echo "  --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)"
1.1.1.7   root     1058: echo "  --disable-nptl           disable usermode NPTL support"
1.1.1.11  root     1059: echo "  --enable-nptl            enable usermode NPTL support"
1.1.1.3   root     1060: echo "  --enable-system          enable all system emulation targets"
                   1061: echo "  --disable-system         disable all system emulation targets"
1.1.1.11  root     1062: echo "  --enable-user            enable supported user emulation targets"
                   1063: echo "  --disable-user           disable all user emulation targets"
1.1.1.5   root     1064: echo "  --enable-linux-user      enable all linux usermode emulation targets"
                   1065: echo "  --disable-linux-user     disable all linux usermode emulation targets"
1.1.1.7   root     1066: echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
                   1067: echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
1.1.1.11  root     1068: echo "  --enable-guest-base      enable GUEST_BASE support for usermode"
                   1069: echo "                           emulation targets"
                   1070: echo "  --disable-guest-base     disable GUEST_BASE support"
1.1.1.17  root     1071: echo "  --enable-pie             build Position Independent Executables"
                   1072: echo "  --disable-pie            do not build Position Independent Executables"
1.1.1.3   root     1073: echo "  --fmod-lib               path to FMOD library"
                   1074: echo "  --fmod-inc               path to FMOD includes"
1.1.1.7   root     1075: echo "  --oss-lib                path to OSS library"
1.1.1.4   root     1076: echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
1.1.1.17  root     1077: echo "  --cpu=CPU                Build for host CPU [$cpu]"
1.1.1.6   root     1078: echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
1.1.1.11  root     1079: echo "  --disable-uuid           disable uuid support"
                   1080: echo "  --enable-uuid            enable uuid support"
1.1.1.7   root     1081: echo "  --disable-vde            disable support for vde network"
1.1.1.11  root     1082: echo "  --enable-vde             enable support for vde network"
                   1083: echo "  --disable-linux-aio      disable Linux AIO support"
                   1084: echo "  --enable-linux-aio       enable Linux AIO support"
1.1.1.18! root     1085: echo "  --disable-cap-ng         disable libcap-ng support"
        !          1086: echo "  --enable-cap-ng          enable libcap-ng support"
1.1.1.13  root     1087: echo "  --disable-attr           disables attr and xattr support"
                   1088: echo "  --enable-attr            enable attr and xattr support"
1.1.1.7   root     1089: echo "  --disable-blobs          disable installing provided firmware blobs"
1.1.1.13  root     1090: echo "  --enable-docs            enable documentation build"
                   1091: echo "  --disable-docs           disable documentation build"
                   1092: echo "  --disable-vhost-net      disable vhost-net acceleration support"
                   1093: echo "  --enable-vhost-net       enable vhost-net acceleration support"
1.1.1.14  root     1094: echo "  --enable-trace-backend=B Set trace backend"
1.1.1.18! root     1095: echo "                           Available backends:" $($python "$source_path"/scripts/tracetool.py --list-backends)
1.1.1.14  root     1096: echo "  --with-trace-file=NAME   Full PATH,NAME of file to store traces"
                   1097: echo "                           Default:trace-<pid>"
                   1098: echo "  --disable-spice          disable spice"
                   1099: echo "  --enable-spice           enable spice"
                   1100: echo "  --enable-rbd             enable building the rados block device (rbd)"
1.1.1.17  root     1101: echo "  --disable-libiscsi       disable iscsi support"
                   1102: echo "  --enable-libiscsi        enable iscsi support"
1.1.1.16  root     1103: echo "  --disable-smartcard      disable smartcard support"
                   1104: echo "  --enable-smartcard       enable smartcard support"
                   1105: echo "  --disable-smartcard-nss  disable smartcard nss support"
                   1106: echo "  --enable-smartcard-nss   enable smartcard nss support"
                   1107: echo "  --disable-usb-redir      disable usb network redirection support"
                   1108: echo "  --enable-usb-redir       enable usb network redirection support"
                   1109: echo "  --disable-guest-agent    disable building of the QEMU Guest Agent"
                   1110: echo "  --enable-guest-agent     enable building of the QEMU Guest Agent"
1.1.1.18! root     1111: echo "  --with-coroutine=BACKEND coroutine backend. Supported options:"
        !          1112: echo "                           gthread, ucontext, sigaltstack, windows"
1.1.1.3   root     1113: echo ""
1.1.1.5   root     1114: echo "NOTE: The object files are built at the place where configure is launched"
1.1.1.3   root     1115: exit 1
                   1116: fi
                   1117: 
1.1.1.18! root     1118: # Now we have handled --enable-tcg-interpreter and know we're not just
        !          1119: # printing the help message, bail out if the host CPU isn't supported.
        !          1120: if test "$ARCH" = "unknown"; then
        !          1121:     if test "$tcg_interpreter" = "yes" ; then
        !          1122:         echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
        !          1123:         ARCH=tci
        !          1124:     else
        !          1125:         echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter"
        !          1126:         exit 1
        !          1127:     fi
        !          1128: fi
        !          1129: 
1.1.1.14  root     1130: # check that the C compiler works.
                   1131: cat > $TMPC <<EOF
1.1.1.18! root     1132: int main(void) { return 0; }
1.1.1.14  root     1133: EOF
                   1134: 
                   1135: if compile_object ; then
                   1136:   : C compiler works ok
                   1137: else
                   1138:     echo "ERROR: \"$cc\" either does not exist or does not work"
                   1139:     exit 1
                   1140: fi
                   1141: 
                   1142: gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
                   1143: gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
                   1144: gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
1.1.1.16  root     1145: gcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags"
1.1.1.14  root     1146: cat > $TMPC << EOF
                   1147: int main(void) { return 0; }
                   1148: EOF
                   1149: for flag in $gcc_flags; do
1.1.1.18! root     1150:     if compile_prog "-Werror $flag" "" ; then
1.1.1.14  root     1151:        QEMU_CFLAGS="$QEMU_CFLAGS $flag"
                   1152:     fi
                   1153: done
                   1154: 
1.1.1.17  root     1155: if test "$static" = "yes" ; then
                   1156:   if test "$pie" = "yes" ; then
                   1157:     echo "static and pie are mutually incompatible"
                   1158:     exit 1
                   1159:   else
                   1160:     pie="no"
                   1161:   fi
                   1162: fi
                   1163: 
                   1164: if test "$pie" = ""; then
                   1165:   case "$cpu-$targetos" in
                   1166:     i386-Linux|x86_64-Linux|i386-OpenBSD|x86_64-OpenBSD)
                   1167:       ;;
                   1168:     *)
                   1169:       pie="no"
                   1170:       ;;
                   1171:   esac
                   1172: fi
                   1173: 
                   1174: if test "$pie" != "no" ; then
                   1175:   cat > $TMPC << EOF
                   1176: 
                   1177: #ifdef __linux__
                   1178: #  define THREAD __thread
                   1179: #else
                   1180: #  define THREAD
                   1181: #endif
                   1182: 
                   1183: static THREAD int tls_var;
                   1184: 
                   1185: int main(void) { return tls_var; }
                   1186: 
                   1187: EOF
                   1188:   if compile_prog "-fPIE -DPIE" "-pie"; then
                   1189:     QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"
                   1190:     LDFLAGS="-pie $LDFLAGS"
                   1191:     pie="yes"
                   1192:     if compile_prog "" "-Wl,-z,relro -Wl,-z,now" ; then
                   1193:       LDFLAGS="-Wl,-z,relro -Wl,-z,now $LDFLAGS"
                   1194:     fi
                   1195:   else
                   1196:     if test "$pie" = "yes"; then
                   1197:       echo "PIE not available due to missing toolchain support"
                   1198:       exit 1
                   1199:     else
                   1200:       echo "Disabling PIE due to missing toolchain support"
                   1201:       pie="no"
                   1202:     fi
                   1203:   fi
                   1204: fi
                   1205: 
1.1.1.3   root     1206: #
                   1207: # Solaris specific configure tool chain decisions
                   1208: #
                   1209: if test "$solaris" = "yes" ; then
1.1.1.13  root     1210:   if has $install; then
                   1211:     :
                   1212:   else
1.1.1.3   root     1213:     echo "Solaris install program not found. Use --install=/usr/ucb/install or"
                   1214:     echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
                   1215:     echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
                   1216:     exit 1
                   1217:   fi
1.1.1.13  root     1218:   if test "`path_of $install`" = "/usr/sbin/install" ; then
1.1.1.3   root     1219:     echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
                   1220:     echo "try ginstall from the GNU fileutils available from www.blastwave.org"
                   1221:     echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
                   1222:     exit 1
                   1223:   fi
1.1.1.13  root     1224:   if has ar; then
                   1225:     :
                   1226:   else
1.1.1.3   root     1227:     echo "Error: No path includes ar"
                   1228:     if test -f /usr/ccs/bin/ar ; then
                   1229:       echo "Add /usr/ccs/bin to your path and rerun configure"
                   1230:     fi
                   1231:     exit 1
                   1232:   fi
1.1.1.6   root     1233: fi
1.1.1.3   root     1234: 
1.1.1.18! root     1235: if ! has $python; then
        !          1236:   echo "Python not found. Use --python=/path/to/python"
        !          1237:   exit 1
        !          1238: fi
        !          1239: 
        !          1240: # Note that if the Python conditional here evaluates True we will exit
        !          1241: # with status 1 which is a shell 'false' value.
        !          1242: if ! "$python" -c 'import sys; sys.exit(sys.version_info < (2,4) or sys.version_info >= (3,))'; then
        !          1243:   echo "Cannot use '$python', Python 2.4 or later is required."
        !          1244:   echo "Note that Python 3 or later is not yet supported."
        !          1245:   echo "Use --python=/path/to/python to specify a supported Python."
        !          1246:   exit 1
1.1.1.16  root     1247: fi
1.1.1.3   root     1248: 
1.1       root     1249: if test -z "$target_list" ; then
1.1.1.16  root     1250:     target_list="$default_target_list"
1.1       root     1251: else
1.1.1.3   root     1252:     target_list=`echo "$target_list" | sed -e 's/,/ /g'`
                   1253: fi
                   1254: if test -z "$target_list" ; then
                   1255:     echo "No targets enabled"
                   1256:     exit 1
1.1       root     1257: fi
1.1.1.13  root     1258: # see if system emulation was really requested
                   1259: case " $target_list " in
                   1260:   *"-softmmu "*) softmmu=yes
                   1261:   ;;
                   1262:   *) softmmu=no
                   1263:   ;;
                   1264: esac
1.1       root     1265: 
1.1.1.11  root     1266: feature_not_found() {
                   1267:   feature=$1
                   1268: 
                   1269:   echo "ERROR"
                   1270:   echo "ERROR: User requested feature $feature"
                   1271:   echo "ERROR: configure was not able to find it"
                   1272:   echo "ERROR"
                   1273:   exit 1;
                   1274: }
                   1275: 
1.1       root     1276: if test -z "$cross_prefix" ; then
                   1277: 
                   1278: # ---
                   1279: # big/little endian test
                   1280: cat > $TMPC << EOF
                   1281: #include <inttypes.h>
                   1282: int main(int argc, char ** argv){
1.1.1.2   root     1283:         volatile uint32_t i=0x01234567;
                   1284:         return (*((uint8_t*)(&i))) == 0x67;
1.1       root     1285: }
                   1286: EOF
                   1287: 
1.1.1.11  root     1288: if compile_prog "" "" ; then
1.1       root     1289: $TMPE && bigendian="yes"
                   1290: else
                   1291: echo big/little test failed
                   1292: fi
                   1293: 
                   1294: else
                   1295: 
                   1296: # if cross compiling, cannot launch a program, so make a static guess
1.1.1.11  root     1297: case "$cpu" in
1.1.1.18! root     1298:   arm)
        !          1299:     # ARM can be either way; ask the compiler which one we are
        !          1300:     if check_define __ARMEB__; then
        !          1301:       bigendian=yes
        !          1302:     fi
        !          1303:   ;;
        !          1304:   hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
1.1.1.11  root     1305:     bigendian=yes
                   1306:   ;;
                   1307: esac
1.1       root     1308: 
                   1309: fi
                   1310: 
1.1.1.11  root     1311: ##########################################
                   1312: # NPTL probe
                   1313: 
                   1314: if test "$nptl" != "no" ; then
                   1315:   cat > $TMPC <<EOF
1.1.1.7   root     1316: #include <sched.h>
                   1317: #include <linux/futex.h>
1.1.1.18! root     1318: int main(void) {
1.1.1.7   root     1319: #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
                   1320: #error bork
                   1321: #endif
1.1.1.18! root     1322:   return 0;
1.1.1.7   root     1323: }
                   1324: EOF
                   1325: 
1.1.1.11  root     1326:   if compile_object ; then
                   1327:     nptl=yes
                   1328:   else
                   1329:     if test "$nptl" = "yes" ; then
                   1330:       feature_not_found "nptl"
                   1331:     fi
                   1332:     nptl=no
                   1333:   fi
1.1.1.7   root     1334: fi
                   1335: 
                   1336: ##########################################
                   1337: # zlib check
                   1338: 
1.1.1.17  root     1339: if test "$zlib" != "no" ; then
                   1340:     cat > $TMPC << EOF
1.1.1.7   root     1341: #include <zlib.h>
                   1342: int main(void) { zlibVersion(); return 0; }
                   1343: EOF
1.1.1.17  root     1344:     if compile_prog "" "-lz" ; then
                   1345:         :
                   1346:     else
                   1347:         echo
                   1348:         echo "Error: zlib check failed"
                   1349:         echo "Make sure to have the zlib libs and headers installed."
                   1350:         echo
                   1351:         exit 1
                   1352:     fi
1.1.1.7   root     1353: fi
                   1354: 
1.1       root     1355: ##########################################
1.1.1.9   root     1356: # xen probe
                   1357: 
1.1.1.11  root     1358: if test "$xen" != "no" ; then
                   1359:   xen_libs="-lxenstore -lxenctrl -lxenguest"
1.1.1.16  root     1360: 
1.1.1.18! root     1361:   # First we test whether Xen headers and libraries are available.
        !          1362:   # If no, we are done and there is no Xen support.
        !          1363:   # If yes, more tests are run to detect the Xen version.
        !          1364: 
        !          1365:   # Xen (any)
1.1.1.11  root     1366:   cat > $TMPC <<EOF
1.1.1.9   root     1367: #include <xenctrl.h>
                   1368: #include <xs.h>
1.1.1.18! root     1369: int main(void) {
        !          1370:   return 0;
        !          1371: }
        !          1372: EOF
        !          1373:   if ! compile_prog "" "$xen_libs" ; then
        !          1374:     # Xen not found
        !          1375:     if test "$xen" = "yes" ; then
        !          1376:       feature_not_found "xen"
        !          1377:     fi
        !          1378:     xen=no
        !          1379: 
        !          1380:   # Xen unstable
        !          1381:   elif (
        !          1382:       cat > $TMPC <<EOF
        !          1383: #include <xenctrl.h>
        !          1384: #include <xs.h>
        !          1385: #include <stdint.h>
        !          1386: #include <xen/hvm/hvm_info_table.h>
        !          1387: #if !defined(HVM_MAX_VCPUS)
        !          1388: # error HVM_MAX_VCPUS not defined
        !          1389: #endif
        !          1390: int main(void) {
        !          1391:   xc_interface *xc;
        !          1392:   xs_daemon_open();
        !          1393:   xc = xc_interface_open(0, 0, 0);
        !          1394:   xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
        !          1395:   xc_gnttab_open(NULL, 0);
        !          1396:   xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
        !          1397:   xc_hvm_inject_msi(xc, 0, 0xf0000000, 0x00000000);
        !          1398:   return 0;
        !          1399: }
        !          1400: EOF
        !          1401:       compile_prog "" "$xen_libs"
        !          1402:     ) ; then
        !          1403:     xen_ctrl_version=420
        !          1404:     xen=yes
        !          1405: 
        !          1406:   elif (
        !          1407:       cat > $TMPC <<EOF
        !          1408: #include <xenctrl.h>
        !          1409: #include <xs.h>
1.1.1.16  root     1410: #include <stdint.h>
                   1411: #include <xen/hvm/hvm_info_table.h>
                   1412: #if !defined(HVM_MAX_VCPUS)
                   1413: # error HVM_MAX_VCPUS not defined
                   1414: #endif
                   1415: int main(void) {
                   1416:   xc_interface *xc;
                   1417:   xs_daemon_open();
                   1418:   xc = xc_interface_open(0, 0, 0);
                   1419:   xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
                   1420:   xc_gnttab_open(NULL, 0);
                   1421:   xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
                   1422:   return 0;
                   1423: }
1.1.1.9   root     1424: EOF
1.1.1.18! root     1425:       compile_prog "" "$xen_libs"
        !          1426:     ) ; then
1.1.1.16  root     1427:     xen_ctrl_version=410
1.1.1.11  root     1428:     xen=yes
1.1.1.16  root     1429: 
                   1430:   # Xen 4.0.0
                   1431:   elif (
                   1432:       cat > $TMPC <<EOF
                   1433: #include <xenctrl.h>
                   1434: #include <xs.h>
                   1435: #include <stdint.h>
                   1436: #include <xen/hvm/hvm_info_table.h>
                   1437: #if !defined(HVM_MAX_VCPUS)
                   1438: # error HVM_MAX_VCPUS not defined
                   1439: #endif
                   1440: int main(void) {
                   1441:   struct xen_add_to_physmap xatp = {
                   1442:     .domid = 0, .space = XENMAPSPACE_gmfn, .idx = 0, .gpfn = 0,
                   1443:   };
                   1444:   xs_daemon_open();
                   1445:   xc_interface_open();
                   1446:   xc_gnttab_open();
                   1447:   xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
                   1448:   xc_memory_op(0, XENMEM_add_to_physmap, &xatp);
                   1449:   return 0;
                   1450: }
                   1451: EOF
                   1452:       compile_prog "" "$xen_libs"
                   1453:     ) ; then
                   1454:     xen_ctrl_version=400
                   1455:     xen=yes
                   1456: 
                   1457:   # Xen 3.4.0
                   1458:   elif (
                   1459:       cat > $TMPC <<EOF
                   1460: #include <xenctrl.h>
                   1461: #include <xs.h>
                   1462: int main(void) {
                   1463:   struct xen_add_to_physmap xatp = {
                   1464:     .domid = 0, .space = XENMAPSPACE_gmfn, .idx = 0, .gpfn = 0,
                   1465:   };
                   1466:   xs_daemon_open();
                   1467:   xc_interface_open();
                   1468:   xc_gnttab_open();
                   1469:   xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
                   1470:   xc_memory_op(0, XENMEM_add_to_physmap, &xatp);
                   1471:   return 0;
                   1472: }
                   1473: EOF
                   1474:       compile_prog "" "$xen_libs"
                   1475:     ) ; then
                   1476:     xen_ctrl_version=340
                   1477:     xen=yes
                   1478: 
                   1479:   # Xen 3.3.0
                   1480:   elif (
                   1481:       cat > $TMPC <<EOF
                   1482: #include <xenctrl.h>
                   1483: #include <xs.h>
                   1484: int main(void) {
                   1485:   xs_daemon_open();
                   1486:   xc_interface_open();
                   1487:   xc_gnttab_open();
                   1488:   xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
                   1489:   return 0;
                   1490: }
                   1491: EOF
                   1492:       compile_prog "" "$xen_libs"
                   1493:     ) ; then
                   1494:     xen_ctrl_version=330
                   1495:     xen=yes
                   1496: 
1.1.1.18! root     1497:   # Xen version unsupported
1.1.1.11  root     1498:   else
                   1499:     if test "$xen" = "yes" ; then
1.1.1.18! root     1500:       feature_not_found "xen (unsupported version)"
1.1.1.11  root     1501:     fi
                   1502:     xen=no
                   1503:   fi
1.1.1.16  root     1504: 
                   1505:   if test "$xen" = yes; then
                   1506:     libs_softmmu="$xen_libs $libs_softmmu"
                   1507:   fi
1.1.1.11  root     1508: fi
                   1509: 
                   1510: ##########################################
1.1.1.14  root     1511: # pkg-config probe
1.1.1.13  root     1512: 
1.1.1.18! root     1513: if ! has "$pkg_config_exe"; then
        !          1514:   echo "Error: pkg-config binary '$pkg_config_exe' not found"
1.1.1.17  root     1515:   exit 1
1.1.1.13  root     1516: fi
                   1517: 
                   1518: ##########################################
1.1.1.16  root     1519: # libtool probe
                   1520: 
1.1.1.17  root     1521: if ! has $libtool; then
1.1.1.16  root     1522:     libtool=
                   1523: fi
                   1524: 
                   1525: ##########################################
1.1.1.11  root     1526: # Sparse probe
                   1527: if test "$sparse" != "no" ; then
1.1.1.13  root     1528:   if has cgcc; then
1.1.1.11  root     1529:     sparse=yes
                   1530:   else
                   1531:     if test "$sparse" = "yes" ; then
                   1532:       feature_not_found "sparse"
                   1533:     fi
                   1534:     sparse=no
                   1535:   fi
1.1.1.9   root     1536: fi
                   1537: 
                   1538: ##########################################
1.1       root     1539: # SDL probe
                   1540: 
1.1.1.14  root     1541: # Look for sdl configuration program (pkg-config or sdl-config).  Try
                   1542: # sdl-config even without cross prefix, and favour pkg-config over sdl-config.
                   1543: if test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then
                   1544:   sdl_config=sdl-config
                   1545: fi
                   1546: 
                   1547: if $pkg_config sdl --modversion >/dev/null 2>&1; then
                   1548:   sdlconfig="$pkg_config sdl"
1.1.1.13  root     1549:   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
1.1.1.14  root     1550: elif has ${sdl_config}; then
                   1551:   sdlconfig="$sdl_config"
1.1.1.13  root     1552:   _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
                   1553: else
                   1554:   if test "$sdl" = "yes" ; then
                   1555:     feature_not_found "sdl"
                   1556:   fi
                   1557:   sdl=no
                   1558: fi
1.1.1.16  root     1559: if test -n "$cross_prefix" && test "$(basename "$sdlconfig")" = sdl-config; then
1.1.1.14  root     1560:   echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
                   1561: fi
1.1       root     1562: 
1.1.1.13  root     1563: sdl_too_old=no
1.1.1.11  root     1564: if test "$sdl" != "no" ; then
                   1565:   cat > $TMPC << EOF
1.1       root     1566: #include <SDL.h>
                   1567: #undef main /* We don't want SDL to override our main() */
                   1568: int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
                   1569: EOF
1.1.1.13  root     1570:   sdl_cflags=`$sdlconfig --cflags 2> /dev/null`
                   1571:   if test "$static" = "yes" ; then
                   1572:     sdl_libs=`$sdlconfig --static-libs 2>/dev/null`
                   1573:   else
                   1574:     sdl_libs=`$sdlconfig --libs 2> /dev/null`
                   1575:   fi
1.1.1.11  root     1576:   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
                   1577:     if test "$_sdlversion" -lt 121 ; then
                   1578:       sdl_too_old=yes
                   1579:     else
                   1580:       if test "$cocoa" = "no" ; then
                   1581:         sdl=yes
                   1582:       fi
                   1583:     fi
1.1.1.7   root     1584: 
1.1.1.13  root     1585:     # static link with sdl ? (note: sdl.pc's --static --libs is broken)
1.1.1.11  root     1586:     if test "$sdl" = "yes" -a "$static" = "yes" ; then
1.1.1.13  root     1587:       if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then
                   1588:          sdl_libs="$sdl_libs `aalib-config --static-libs 2>/dev/null`"
                   1589:          sdl_cflags="$sdl_cflags `aalib-config --cflags 2>/dev/null`"
1.1.1.11  root     1590:       fi
                   1591:       if compile_prog "$sdl_cflags" "$sdl_libs" ; then
                   1592:        :
                   1593:       else
                   1594:         sdl=no
                   1595:       fi
                   1596:     fi # static link
                   1597:   else # sdl not found
1.1.1.6   root     1598:     if test "$sdl" = "yes" ; then
1.1.1.11  root     1599:       feature_not_found "sdl"
1.1.1.6   root     1600:     fi
1.1.1.11  root     1601:     sdl=no
                   1602:   fi # sdl compile test
                   1603: fi
1.1       root     1604: 
1.1.1.7   root     1605: if test "$sdl" = "yes" ; then
1.1.1.11  root     1606:   cat > $TMPC <<EOF
1.1.1.7   root     1607: #include <SDL.h>
                   1608: #if defined(SDL_VIDEO_DRIVER_X11)
                   1609: #include <X11/XKBlib.h>
                   1610: #else
                   1611: #error No x11 support
                   1612: #endif
                   1613: int main(void) { return 0; }
                   1614: EOF
1.1.1.11  root     1615:   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
                   1616:     sdl_libs="$sdl_libs -lX11"
                   1617:   fi
                   1618:   libs_softmmu="$sdl_libs $libs_softmmu"
1.1.1.7   root     1619: fi
                   1620: 
1.1.1.6   root     1621: ##########################################
                   1622: # VNC TLS detection
1.1.1.16  root     1623: if test "$vnc" = "yes" -a "$vnc_tls" != "no" ; then
1.1.1.11  root     1624:   cat > $TMPC <<EOF
1.1.1.7   root     1625: #include <gnutls/gnutls.h>
                   1626: int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
                   1627: EOF
1.1.1.14  root     1628:   vnc_tls_cflags=`$pkg_config --cflags gnutls 2> /dev/null`
                   1629:   vnc_tls_libs=`$pkg_config --libs gnutls 2> /dev/null`
1.1.1.11  root     1630:   if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
                   1631:     vnc_tls=yes
                   1632:     libs_softmmu="$vnc_tls_libs $libs_softmmu"
                   1633:   else
                   1634:     if test "$vnc_tls" = "yes" ; then
                   1635:       feature_not_found "vnc-tls"
1.1.1.7   root     1636:     fi
1.1.1.11  root     1637:     vnc_tls=no
                   1638:   fi
1.1.1.6   root     1639: fi
1.1.1.7   root     1640: 
                   1641: ##########################################
1.1.1.9   root     1642: # VNC SASL detection
1.1.1.16  root     1643: if test "$vnc" = "yes" -a "$vnc_sasl" != "no" ; then
1.1.1.11  root     1644:   cat > $TMPC <<EOF
1.1.1.9   root     1645: #include <sasl/sasl.h>
                   1646: #include <stdio.h>
                   1647: int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
                   1648: EOF
1.1.1.11  root     1649:   # Assuming Cyrus-SASL installed in /usr prefix
                   1650:   vnc_sasl_cflags=""
                   1651:   vnc_sasl_libs="-lsasl2"
                   1652:   if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
                   1653:     vnc_sasl=yes
                   1654:     libs_softmmu="$vnc_sasl_libs $libs_softmmu"
                   1655:   else
                   1656:     if test "$vnc_sasl" = "yes" ; then
                   1657:       feature_not_found "vnc-sasl"
1.1.1.9   root     1658:     fi
1.1.1.11  root     1659:     vnc_sasl=no
                   1660:   fi
1.1.1.9   root     1661: fi
                   1662: 
                   1663: ##########################################
1.1.1.13  root     1664: # VNC JPEG detection
1.1.1.16  root     1665: if test "$vnc" = "yes" -a "$vnc_jpeg" != "no" ; then
1.1.1.13  root     1666: cat > $TMPC <<EOF
                   1667: #include <stdio.h>
                   1668: #include <jpeglib.h>
                   1669: int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
                   1670: EOF
                   1671:     vnc_jpeg_cflags=""
                   1672:     vnc_jpeg_libs="-ljpeg"
                   1673:   if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
                   1674:     vnc_jpeg=yes
                   1675:     libs_softmmu="$vnc_jpeg_libs $libs_softmmu"
                   1676:   else
                   1677:     if test "$vnc_jpeg" = "yes" ; then
                   1678:       feature_not_found "vnc-jpeg"
                   1679:     fi
                   1680:     vnc_jpeg=no
                   1681:   fi
                   1682: fi
                   1683: 
                   1684: ##########################################
                   1685: # VNC PNG detection
1.1.1.16  root     1686: if test "$vnc" = "yes" -a "$vnc_png" != "no" ; then
1.1.1.13  root     1687: cat > $TMPC <<EOF
                   1688: //#include <stdio.h>
                   1689: #include <png.h>
1.1.1.14  root     1690: #include <stddef.h>
1.1.1.13  root     1691: int main(void) {
                   1692:     png_structp png_ptr;
                   1693:     png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
                   1694:     return 0;
                   1695: }
                   1696: EOF
1.1.1.16  root     1697:   if $pkg_config libpng --modversion >/dev/null 2>&1; then
                   1698:     vnc_png_cflags=`$pkg_config libpng --cflags 2> /dev/null`
                   1699:     vnc_png_libs=`$pkg_config libpng --libs 2> /dev/null`
                   1700:   else
1.1.1.13  root     1701:     vnc_png_cflags=""
                   1702:     vnc_png_libs="-lpng"
1.1.1.16  root     1703:   fi
1.1.1.13  root     1704:   if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then
                   1705:     vnc_png=yes
                   1706:     libs_softmmu="$vnc_png_libs $libs_softmmu"
1.1.1.16  root     1707:     QEMU_CFLAGS="$QEMU_CFLAGS $vnc_png_cflags"
1.1.1.13  root     1708:   else
                   1709:     if test "$vnc_png" = "yes" ; then
                   1710:       feature_not_found "vnc-png"
                   1711:     fi
                   1712:     vnc_png=no
                   1713:   fi
                   1714: fi
                   1715: 
                   1716: ##########################################
1.1.1.9   root     1717: # fnmatch() probe, used for ACL routines
                   1718: fnmatch="no"
                   1719: cat > $TMPC << EOF
                   1720: #include <fnmatch.h>
                   1721: int main(void)
                   1722: {
                   1723:     fnmatch("foo", "foo", 0);
                   1724:     return 0;
                   1725: }
                   1726: EOF
1.1.1.11  root     1727: if compile_prog "" "" ; then
1.1.1.9   root     1728:    fnmatch="yes"
                   1729: fi
                   1730: 
                   1731: ##########################################
1.1.1.11  root     1732: # uuid_generate() probe, used for vdi block driver
                   1733: if test "$uuid" != "no" ; then
                   1734:   uuid_libs="-luuid"
                   1735:   cat > $TMPC << EOF
                   1736: #include <uuid/uuid.h>
                   1737: int main(void)
                   1738: {
                   1739:     uuid_t my_uuid;
                   1740:     uuid_generate(my_uuid);
                   1741:     return 0;
                   1742: }
                   1743: EOF
                   1744:   if compile_prog "" "$uuid_libs" ; then
                   1745:     uuid="yes"
                   1746:     libs_softmmu="$uuid_libs $libs_softmmu"
                   1747:     libs_tools="$uuid_libs $libs_tools"
                   1748:   else
                   1749:     if test "$uuid" = "yes" ; then
                   1750:       feature_not_found "uuid"
                   1751:     fi
                   1752:     uuid=no
                   1753:   fi
                   1754: fi
                   1755: 
                   1756: ##########################################
1.1.1.14  root     1757: # xfsctl() probe, used for raw-posix
                   1758: if test "$xfs" != "no" ; then
                   1759:   cat > $TMPC << EOF
1.1.1.18! root     1760: #include <stddef.h>  /* NULL */
1.1.1.14  root     1761: #include <xfs/xfs.h>
                   1762: int main(void)
                   1763: {
                   1764:     xfsctl(NULL, 0, 0, NULL);
                   1765:     return 0;
                   1766: }
                   1767: EOF
                   1768:   if compile_prog "" "" ; then
                   1769:     xfs="yes"
                   1770:   else
                   1771:     if test "$xfs" = "yes" ; then
                   1772:       feature_not_found "xfs"
                   1773:     fi
                   1774:     xfs=no
                   1775:   fi
                   1776: fi
                   1777: 
                   1778: ##########################################
1.1.1.7   root     1779: # vde libraries probe
1.1.1.11  root     1780: if test "$vde" != "no" ; then
                   1781:   vde_libs="-lvdeplug"
1.1.1.7   root     1782:   cat > $TMPC << EOF
                   1783: #include <libvdeplug.h>
                   1784: int main(void)
                   1785: {
                   1786:     struct vde_open_args a = {0, 0, 0};
                   1787:     vde_open("", "", &a);
                   1788:     return 0;
                   1789: }
                   1790: EOF
1.1.1.11  root     1791:   if compile_prog "" "$vde_libs" ; then
                   1792:     vde=yes
                   1793:     libs_softmmu="$vde_libs $libs_softmmu"
                   1794:     libs_tools="$vde_libs $libs_tools"
                   1795:   else
                   1796:     if test "$vde" = "yes" ; then
                   1797:       feature_not_found "vde"
1.1.1.7   root     1798:     fi
1.1.1.11  root     1799:     vde=no
                   1800:   fi
1.1       root     1801: fi
                   1802: 
1.1.1.5   root     1803: ##########################################
1.1.1.18! root     1804: # libcap-ng library probe
        !          1805: if test "$cap_ng" != "no" ; then
        !          1806:   cap_libs="-lcap-ng"
        !          1807:   cat > $TMPC << EOF
        !          1808: #include <cap-ng.h>
        !          1809: int main(void)
        !          1810: {
        !          1811:     capng_capability_to_name(CAPNG_EFFECTIVE);
        !          1812:     return 0;
        !          1813: }
        !          1814: EOF
        !          1815:   if compile_prog "" "$cap_libs" ; then
        !          1816:     cap_ng=yes
        !          1817:     libs_tools="$cap_libs $libs_tools"
        !          1818:   else
        !          1819:     if test "$cap_ng" = "yes" ; then
        !          1820:       feature_not_found "cap_ng"
        !          1821:     fi
        !          1822:     cap_ng=no
        !          1823:   fi
        !          1824: fi
        !          1825: 
        !          1826: ##########################################
1.1.1.7   root     1827: # Sound support libraries probe
1.1.1.5   root     1828: 
1.1.1.7   root     1829: audio_drv_probe()
                   1830: {
                   1831:     drv=$1
                   1832:     hdr=$2
                   1833:     lib=$3
                   1834:     exp=$4
                   1835:     cfl=$5
                   1836:         cat > $TMPC << EOF
                   1837: #include <$hdr>
                   1838: int main(void) { $exp }
                   1839: EOF
1.1.1.11  root     1840:     if compile_prog "$cfl" "$lib" ; then
1.1.1.7   root     1841:         :
                   1842:     else
                   1843:         echo
                   1844:         echo "Error: $drv check failed"
                   1845:         echo "Make sure to have the $drv libs and headers installed."
                   1846:         echo
                   1847:         exit 1
                   1848:     fi
                   1849: }
                   1850: 
                   1851: audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
                   1852: for drv in $audio_drv_list; do
                   1853:     case $drv in
                   1854:     alsa)
                   1855:     audio_drv_probe $drv alsa/asoundlib.h -lasound \
                   1856:         "snd_pcm_t **handle; return snd_pcm_close(*handle);"
1.1.1.11  root     1857:     libs_softmmu="-lasound $libs_softmmu"
1.1.1.7   root     1858:     ;;
                   1859: 
                   1860:     fmod)
                   1861:     if test -z $fmod_lib || test -z $fmod_inc; then
                   1862:         echo
                   1863:         echo "Error: You must specify path to FMOD library and headers"
                   1864:         echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
                   1865:         echo
                   1866:         exit 1
                   1867:     fi
                   1868:     audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
1.1.1.11  root     1869:     libs_softmmu="$fmod_lib $libs_softmmu"
1.1.1.7   root     1870:     ;;
                   1871: 
                   1872:     esd)
                   1873:     audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
1.1.1.11  root     1874:     libs_softmmu="-lesd $libs_softmmu"
                   1875:     audio_pt_int="yes"
1.1.1.7   root     1876:     ;;
                   1877: 
                   1878:     pa)
1.1.1.18! root     1879:     audio_drv_probe $drv pulse/mainloop.h "-lpulse" \
        !          1880:         "pa_mainloop *m = 0; pa_mainloop_free (m); return 0;"
        !          1881:     libs_softmmu="-lpulse $libs_softmmu"
1.1.1.11  root     1882:     audio_pt_int="yes"
                   1883:     ;;
                   1884: 
                   1885:     coreaudio)
                   1886:       libs_softmmu="-framework CoreAudio $libs_softmmu"
                   1887:     ;;
                   1888: 
                   1889:     dsound)
                   1890:       libs_softmmu="-lole32 -ldxguid $libs_softmmu"
                   1891:       audio_win_int="yes"
                   1892:     ;;
                   1893: 
                   1894:     oss)
                   1895:       libs_softmmu="$oss_lib $libs_softmmu"
1.1.1.7   root     1896:     ;;
                   1897: 
1.1.1.11  root     1898:     sdl|wav)
1.1.1.7   root     1899:     # XXX: Probes for CoreAudio, DirectSound, SDL(?)
                   1900:     ;;
                   1901: 
1.1.1.11  root     1902:     winwave)
                   1903:       libs_softmmu="-lwinmm $libs_softmmu"
                   1904:       audio_win_int="yes"
                   1905:     ;;
                   1906: 
1.1.1.7   root     1907:     *)
                   1908:     echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
                   1909:         echo
                   1910:         echo "Error: Unknown driver '$drv' selected"
                   1911:         echo "Possible drivers are: $audio_possible_drivers"
                   1912:         echo
                   1913:         exit 1
                   1914:     }
                   1915:     ;;
                   1916:     esac
                   1917: done
                   1918: 
                   1919: ##########################################
                   1920: # BrlAPI probe
                   1921: 
1.1.1.11  root     1922: if test "$brlapi" != "no" ; then
                   1923:   brlapi_libs="-lbrlapi"
                   1924:   cat > $TMPC << EOF
1.1.1.7   root     1925: #include <brlapi.h>
1.1.1.14  root     1926: #include <stddef.h>
1.1.1.7   root     1927: int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
                   1928: EOF
1.1.1.11  root     1929:   if compile_prog "" "$brlapi_libs" ; then
                   1930:     brlapi=yes
                   1931:     libs_softmmu="$brlapi_libs $libs_softmmu"
                   1932:   else
                   1933:     if test "$brlapi" = "yes" ; then
                   1934:       feature_not_found "brlapi"
                   1935:     fi
                   1936:     brlapi=no
                   1937:   fi
                   1938: fi
1.1.1.7   root     1939: 
                   1940: ##########################################
                   1941: # curses probe
1.1.1.16  root     1942: if test "$mingw32" = "yes" ; then
                   1943:     curses_list="-lpdcurses"
                   1944: else
                   1945:     curses_list="-lncurses -lcurses"
                   1946: fi
1.1.1.7   root     1947: 
1.1.1.11  root     1948: if test "$curses" != "no" ; then
                   1949:   curses_found=no
1.1.1.5   root     1950:   cat > $TMPC << EOF
1.1.1.7   root     1951: #include <curses.h>
1.1.1.18! root     1952: int main(void) {
        !          1953:   const char *s = curses_version();
        !          1954:   resize_term(0, 0);
        !          1955:   return s != 0;
        !          1956: }
1.1.1.5   root     1957: EOF
1.1.1.11  root     1958:   for curses_lib in $curses_list; do
                   1959:     if compile_prog "" "$curses_lib" ; then
                   1960:       curses_found=yes
                   1961:       libs_softmmu="$curses_lib $libs_softmmu"
                   1962:       break
                   1963:     fi
                   1964:   done
                   1965:   if test "$curses_found" = "yes" ; then
1.1.1.7   root     1966:     curses=yes
1.1.1.11  root     1967:   else
                   1968:     if test "$curses" = "yes" ; then
                   1969:       feature_not_found "curses"
                   1970:     fi
                   1971:     curses=no
1.1.1.7   root     1972:   fi
1.1.1.11  root     1973: fi
1.1.1.7   root     1974: 
                   1975: ##########################################
1.1.1.9   root     1976: # curl probe
                   1977: 
1.1.1.14  root     1978: if $pkg_config libcurl --modversion >/dev/null 2>&1; then
                   1979:   curlconfig="$pkg_config libcurl"
1.1.1.13  root     1980: else
                   1981:   curlconfig=curl-config
                   1982: fi
                   1983: 
1.1.1.11  root     1984: if test "$curl" != "no" ; then
1.1.1.9   root     1985:   cat > $TMPC << EOF
                   1986: #include <curl/curl.h>
1.1.1.16  root     1987: int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
1.1.1.9   root     1988: EOF
1.1.1.13  root     1989:   curl_cflags=`$curlconfig --cflags 2>/dev/null`
                   1990:   curl_libs=`$curlconfig --libs 2>/dev/null`
1.1.1.11  root     1991:   if compile_prog "$curl_cflags" "$curl_libs" ; then
1.1.1.9   root     1992:     curl=yes
1.1.1.11  root     1993:     libs_tools="$curl_libs $libs_tools"
                   1994:     libs_softmmu="$curl_libs $libs_softmmu"
                   1995:   else
                   1996:     if test "$curl" = "yes" ; then
                   1997:       feature_not_found "curl"
                   1998:     fi
                   1999:     curl=no
1.1.1.9   root     2000:   fi
                   2001: fi # test "$curl"
                   2002: 
                   2003: ##########################################
1.1.1.11  root     2004: # bluez support probe
                   2005: if test "$bluez" != "no" ; then
                   2006:   cat > $TMPC << EOF
                   2007: #include <bluetooth/bluetooth.h>
                   2008: int main(void) { return bt_error(0); }
                   2009: EOF
1.1.1.14  root     2010:   bluez_cflags=`$pkg_config --cflags bluez 2> /dev/null`
                   2011:   bluez_libs=`$pkg_config --libs bluez 2> /dev/null`
1.1.1.11  root     2012:   if compile_prog "$bluez_cflags" "$bluez_libs" ; then
                   2013:     bluez=yes
                   2014:     libs_softmmu="$bluez_libs $libs_softmmu"
                   2015:   else
                   2016:     if test "$bluez" = "yes" ; then
                   2017:       feature_not_found "bluez"
                   2018:     fi
1.1.1.7   root     2019:     bluez="no"
                   2020:   fi
                   2021: fi
                   2022: 
                   2023: ##########################################
1.1.1.16  root     2024: # glib support probe
1.1.1.18! root     2025: 
        !          2026: if test "$mingw32" = yes; then
        !          2027:     # g_poll is required in order to integrate with the glib main loop.
        !          2028:     glib_req_ver=2.20
        !          2029: else
        !          2030:     glib_req_ver=2.12
        !          2031: fi
        !          2032: if $pkg_config --atleast-version=$glib_req_ver gthread-2.0 > /dev/null 2>&1
        !          2033: then
1.1.1.17  root     2034:     glib_cflags=`$pkg_config --cflags gthread-2.0 2>/dev/null`
                   2035:     glib_libs=`$pkg_config --libs gthread-2.0 2>/dev/null`
                   2036:     LIBS="$glib_libs $LIBS"
                   2037:     libs_qga="$glib_libs $libs_qga"
                   2038: else
1.1.1.18! root     2039:     echo "glib-$glib_req_ver required to compile QEMU"
1.1.1.17  root     2040:     exit 1
1.1.1.13  root     2041: fi
                   2042: 
                   2043: ##########################################
1.1.1.18! root     2044: # libcap probe
        !          2045: 
        !          2046: if test "$cap" != "no" ; then
        !          2047:   cat > $TMPC <<EOF
        !          2048: #include <stdio.h>
        !          2049: #include <sys/capability.h>
        !          2050: int main(void) { cap_t caps; caps = cap_init(); }
        !          2051: EOF
        !          2052:   if compile_prog "" "-lcap" ; then
        !          2053:     cap=yes
        !          2054:   else
        !          2055:     cap=no
        !          2056:   fi
        !          2057: fi
        !          2058: 
        !          2059: ##########################################
1.1.1.9   root     2060: # pthread probe
1.1.1.16  root     2061: PTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2"
1.1.1.7   root     2062: 
1.1.1.11  root     2063: pthread=no
1.1.1.9   root     2064: cat > $TMPC << EOF
1.1.1.7   root     2065: #include <pthread.h>
1.1.1.18! root     2066: static void *f(void *p) { return NULL; }
        !          2067: int main(void) {
        !          2068:   pthread_t thread;
        !          2069:   pthread_create(&thread, 0, f, 0);
        !          2070:   return 0;
        !          2071: }
1.1.1.7   root     2072: EOF
1.1.1.14  root     2073: if compile_prog "" "" ; then
                   2074:   pthread=yes
                   2075: else
                   2076:   for pthread_lib in $PTHREADLIBS_LIST; do
                   2077:     if compile_prog "" "$pthread_lib" ; then
                   2078:       pthread=yes
1.1.1.18! root     2079:       found=no
        !          2080:       for lib_entry in $LIBS; do
        !          2081:         if test "$lib_entry" = "$pthread_lib"; then
        !          2082:           found=yes
        !          2083:           break
        !          2084:         fi
        !          2085:       done
        !          2086:       if test "$found" = "no"; then
        !          2087:         LIBS="$pthread_lib $LIBS"
        !          2088:       fi
1.1.1.14  root     2089:       break
                   2090:     fi
                   2091:   done
                   2092: fi
1.1.1.11  root     2093: 
                   2094: if test "$mingw32" != yes -a "$pthread" = no; then
                   2095:   echo
                   2096:   echo "Error: pthread check failed"
                   2097:   echo "Make sure to have the pthread libs and headers installed."
                   2098:   echo
                   2099:   exit 1
1.1.1.9   root     2100: fi
                   2101: 
1.1.1.11  root     2102: ##########################################
1.1.1.14  root     2103: # rbd probe
                   2104: if test "$rbd" != "no" ; then
                   2105:   cat > $TMPC <<EOF
                   2106: #include <stdio.h>
1.1.1.16  root     2107: #include <rbd/librbd.h>
1.1.1.14  root     2108: int main(void) {
1.1.1.16  root     2109:     rados_t cluster;
                   2110:     rados_create(&cluster, NULL);
1.1.1.14  root     2111:     return 0;
                   2112: }
                   2113: EOF
1.1.1.16  root     2114:   rbd_libs="-lrbd -lrados"
                   2115:   if compile_prog "" "$rbd_libs" ; then
                   2116:     rbd=yes
                   2117:     libs_tools="$rbd_libs $libs_tools"
                   2118:     libs_softmmu="$rbd_libs $libs_softmmu"
1.1.1.14  root     2119:   else
                   2120:     if test "$rbd" = "yes" ; then
                   2121:       feature_not_found "rados block device"
                   2122:     fi
                   2123:     rbd=no
                   2124:   fi
                   2125: fi
                   2126: 
                   2127: ##########################################
1.1.1.11  root     2128: # linux-aio probe
                   2129: 
                   2130: if test "$linux_aio" != "no" ; then
                   2131:   cat > $TMPC <<EOF
                   2132: #include <libaio.h>
                   2133: #include <sys/eventfd.h>
1.1.1.14  root     2134: #include <stddef.h>
1.1.1.11  root     2135: int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
                   2136: EOF
                   2137:   if compile_prog "" "-laio" ; then
                   2138:     linux_aio=yes
1.1.1.13  root     2139:     libs_softmmu="$libs_softmmu -laio"
                   2140:     libs_tools="$libs_tools -laio"
1.1.1.11  root     2141:   else
                   2142:     if test "$linux_aio" = "yes" ; then
                   2143:       feature_not_found "linux AIO"
                   2144:     fi
                   2145:     linux_aio=no
                   2146:   fi
1.1.1.7   root     2147: fi
                   2148: 
                   2149: ##########################################
1.1.1.13  root     2150: # attr probe
                   2151: 
                   2152: if test "$attr" != "no" ; then
                   2153:   cat > $TMPC <<EOF
                   2154: #include <stdio.h>
                   2155: #include <sys/types.h>
1.1.1.17  root     2156: #ifdef CONFIG_LIBATTR
1.1.1.13  root     2157: #include <attr/xattr.h>
1.1.1.17  root     2158: #else
                   2159: #include <sys/xattr.h>
                   2160: #endif
1.1.1.13  root     2161: int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
                   2162: EOF
1.1.1.17  root     2163:   if compile_prog "" "" ; then
                   2164:     attr=yes
                   2165:   # Older distros have <attr/xattr.h>, and need -lattr:
                   2166:   elif compile_prog "-DCONFIG_LIBATTR" "-lattr" ; then
1.1.1.13  root     2167:     attr=yes
                   2168:     LIBS="-lattr $LIBS"
1.1.1.17  root     2169:     libattr=yes
1.1.1.13  root     2170:   else
                   2171:     if test "$attr" = "yes" ; then
                   2172:       feature_not_found "ATTR"
                   2173:     fi
                   2174:     attr=no
                   2175:   fi
                   2176: fi
                   2177: 
                   2178: ##########################################
1.1.1.7   root     2179: # iovec probe
                   2180: cat > $TMPC <<EOF
                   2181: #include <sys/types.h>
                   2182: #include <sys/uio.h>
                   2183: #include <unistd.h>
1.1.1.18! root     2184: int main(void) { return sizeof(struct iovec); }
1.1.1.7   root     2185: EOF
                   2186: iovec=no
1.1.1.11  root     2187: if compile_prog "" "" ; then
1.1.1.7   root     2188:   iovec=yes
                   2189: fi
                   2190: 
                   2191: ##########################################
1.1.1.9   root     2192: # preadv probe
                   2193: cat > $TMPC <<EOF
                   2194: #include <sys/types.h>
                   2195: #include <sys/uio.h>
                   2196: #include <unistd.h>
1.1.1.18! root     2197: int main(void) { return preadv == preadv; }
1.1.1.9   root     2198: EOF
                   2199: preadv=no
1.1.1.11  root     2200: if compile_prog "" "" ; then
1.1.1.9   root     2201:   preadv=yes
                   2202: fi
                   2203: 
                   2204: ##########################################
1.1.1.7   root     2205: # fdt probe
1.1.1.11  root     2206: if test "$fdt" != "no" ; then
                   2207:   fdt_libs="-lfdt"
                   2208:   cat > $TMPC << EOF
1.1.1.7   root     2209: int main(void) { return 0; }
                   2210: EOF
1.1.1.11  root     2211:   if compile_prog "" "$fdt_libs" ; then
1.1.1.7   root     2212:     fdt=yes
1.1.1.11  root     2213:   else
                   2214:     if test "$fdt" = "yes" ; then
                   2215:       feature_not_found "fdt"
                   2216:     fi
1.1.1.16  root     2217:     fdt_libs=
1.1.1.11  root     2218:     fdt=no
1.1.1.5   root     2219:   fi
                   2220: fi
                   2221: 
1.1.1.16  root     2222: ##########################################
                   2223: # opengl probe, used by milkymist-tmu2
                   2224: if test "$opengl" != "no" ; then
                   2225:   opengl_libs="-lGL"
                   2226:   cat > $TMPC << EOF
                   2227: #include <X11/Xlib.h>
                   2228: #include <GL/gl.h>
                   2229: #include <GL/glx.h>
1.1.1.18! root     2230: int main(void) { return GL_VERSION != 0; }
1.1.1.16  root     2231: EOF
                   2232:   if compile_prog "" "-lGL" ; then
                   2233:     opengl=yes
                   2234:   else
                   2235:     if test "$opengl" = "yes" ; then
                   2236:       feature_not_found "opengl"
                   2237:     fi
                   2238:     opengl_libs=
                   2239:     opengl=no
                   2240:   fi
                   2241: fi
                   2242: 
1.1.1.9   root     2243: #
                   2244: # Check for xxxat() functions when we are building linux-user
                   2245: # emulator.  This is done because older glibc versions don't
                   2246: # have syscall stubs for these implemented.
                   2247: #
                   2248: atfile=no
                   2249: cat > $TMPC << EOF
                   2250: #define _ATFILE_SOURCE
                   2251: #include <sys/types.h>
                   2252: #include <fcntl.h>
                   2253: #include <unistd.h>
                   2254: 
                   2255: int
                   2256: main(void)
                   2257: {
                   2258:        /* try to unlink nonexisting file */
                   2259:        return (unlinkat(AT_FDCWD, "nonexistent_file", 0));
                   2260: }
                   2261: EOF
1.1.1.11  root     2262: if compile_prog "" "" ; then
1.1.1.9   root     2263:   atfile=yes
                   2264: fi
                   2265: 
                   2266: # Check for inotify functions when we are building linux-user
                   2267: # emulator.  This is done because older glibc versions don't
                   2268: # have syscall stubs for these implemented.  In that case we
                   2269: # don't provide them even if kernel supports them.
                   2270: #
                   2271: inotify=no
                   2272: cat > $TMPC << EOF
                   2273: #include <sys/inotify.h>
                   2274: 
                   2275: int
                   2276: main(void)
                   2277: {
                   2278:        /* try to start inotify */
                   2279:        return inotify_init();
                   2280: }
                   2281: EOF
1.1.1.11  root     2282: if compile_prog "" "" ; then
1.1.1.9   root     2283:   inotify=yes
                   2284: fi
                   2285: 
1.1.1.13  root     2286: inotify1=no
                   2287: cat > $TMPC << EOF
                   2288: #include <sys/inotify.h>
                   2289: 
                   2290: int
                   2291: main(void)
                   2292: {
                   2293:     /* try to start inotify */
                   2294:     return inotify_init1(0);
                   2295: }
                   2296: EOF
                   2297: if compile_prog "" "" ; then
                   2298:   inotify1=yes
                   2299: fi
                   2300: 
1.1.1.9   root     2301: # check if utimensat and futimens are supported
                   2302: utimens=no
                   2303: cat > $TMPC << EOF
                   2304: #define _ATFILE_SOURCE
                   2305: #include <stddef.h>
                   2306: #include <fcntl.h>
                   2307: 
                   2308: int main(void)
                   2309: {
                   2310:     utimensat(AT_FDCWD, "foo", NULL, 0);
                   2311:     futimens(0, NULL);
                   2312:     return 0;
                   2313: }
                   2314: EOF
1.1.1.11  root     2315: if compile_prog "" "" ; then
1.1.1.9   root     2316:   utimens=yes
                   2317: fi
                   2318: 
                   2319: # check if pipe2 is there
                   2320: pipe2=no
                   2321: cat > $TMPC << EOF
                   2322: #include <unistd.h>
                   2323: #include <fcntl.h>
                   2324: 
                   2325: int main(void)
                   2326: {
                   2327:     int pipefd[2];
                   2328:     pipe2(pipefd, O_CLOEXEC);
                   2329:     return 0;
                   2330: }
                   2331: EOF
1.1.1.11  root     2332: if compile_prog "" "" ; then
1.1.1.9   root     2333:   pipe2=yes
                   2334: fi
                   2335: 
1.1.1.11  root     2336: # check if accept4 is there
                   2337: accept4=no
                   2338: cat > $TMPC << EOF
                   2339: #include <sys/socket.h>
                   2340: #include <stddef.h>
                   2341: 
                   2342: int main(void)
                   2343: {
                   2344:     accept4(0, NULL, NULL, SOCK_CLOEXEC);
                   2345:     return 0;
                   2346: }
                   2347: EOF
                   2348: if compile_prog "" "" ; then
                   2349:   accept4=yes
                   2350: fi
                   2351: 
1.1.1.9   root     2352: # check if tee/splice is there. vmsplice was added same time.
                   2353: splice=no
                   2354: cat > $TMPC << EOF
                   2355: #include <unistd.h>
                   2356: #include <fcntl.h>
                   2357: #include <limits.h>
                   2358: 
                   2359: int main(void)
                   2360: {
1.1.1.18! root     2361:     int len, fd = 0;
1.1.1.9   root     2362:     len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
                   2363:     splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
                   2364:     return 0;
                   2365: }
                   2366: EOF
1.1.1.11  root     2367: if compile_prog "" "" ; then
1.1.1.9   root     2368:   splice=yes
                   2369: fi
                   2370: 
1.1.1.14  root     2371: ##########################################
                   2372: # signalfd probe
                   2373: signalfd="no"
                   2374: cat > $TMPC << EOF
                   2375: #include <unistd.h>
                   2376: #include <sys/syscall.h>
                   2377: #include <signal.h>
                   2378: int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
                   2379: EOF
                   2380: 
                   2381: if compile_prog "" "" ; then
                   2382:   signalfd=yes
                   2383: fi
                   2384: 
1.1.1.11  root     2385: # check if eventfd is supported
                   2386: eventfd=no
                   2387: cat > $TMPC << EOF
                   2388: #include <sys/eventfd.h>
                   2389: 
                   2390: int main(void)
                   2391: {
1.1.1.18! root     2392:     return eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
1.1.1.11  root     2393: }
                   2394: EOF
                   2395: if compile_prog "" "" ; then
                   2396:   eventfd=yes
                   2397: fi
                   2398: 
                   2399: # check for fallocate
                   2400: fallocate=no
                   2401: cat > $TMPC << EOF
                   2402: #include <fcntl.h>
                   2403: 
                   2404: int main(void)
                   2405: {
                   2406:     fallocate(0, 0, 0, 0);
                   2407:     return 0;
                   2408: }
                   2409: EOF
1.1.1.18! root     2410: if compile_prog "" "" ; then
1.1.1.11  root     2411:   fallocate=yes
                   2412: fi
                   2413: 
1.1.1.14  root     2414: # check for sync_file_range
                   2415: sync_file_range=no
                   2416: cat > $TMPC << EOF
                   2417: #include <fcntl.h>
                   2418: 
                   2419: int main(void)
                   2420: {
                   2421:     sync_file_range(0, 0, 0, 0);
                   2422:     return 0;
                   2423: }
                   2424: EOF
1.1.1.18! root     2425: if compile_prog "" "" ; then
1.1.1.14  root     2426:   sync_file_range=yes
                   2427: fi
                   2428: 
                   2429: # check for linux/fiemap.h and FS_IOC_FIEMAP
                   2430: fiemap=no
                   2431: cat > $TMPC << EOF
                   2432: #include <sys/ioctl.h>
                   2433: #include <linux/fs.h>
                   2434: #include <linux/fiemap.h>
                   2435: 
                   2436: int main(void)
                   2437: {
                   2438:     ioctl(0, FS_IOC_FIEMAP, 0);
                   2439:     return 0;
                   2440: }
                   2441: EOF
1.1.1.18! root     2442: if compile_prog "" "" ; then
1.1.1.14  root     2443:   fiemap=yes
                   2444: fi
                   2445: 
1.1.1.11  root     2446: # check for dup3
                   2447: dup3=no
                   2448: cat > $TMPC << EOF
                   2449: #include <unistd.h>
                   2450: 
                   2451: int main(void)
                   2452: {
                   2453:     dup3(0, 0, 0);
                   2454:     return 0;
                   2455: }
                   2456: EOF
                   2457: if compile_prog "" "" ; then
                   2458:   dup3=yes
                   2459: fi
                   2460: 
1.1.1.16  root     2461: # check for epoll support
                   2462: epoll=no
                   2463: cat > $TMPC << EOF
                   2464: #include <sys/epoll.h>
                   2465: 
                   2466: int main(void)
                   2467: {
                   2468:     epoll_create(0);
                   2469:     return 0;
                   2470: }
                   2471: EOF
1.1.1.18! root     2472: if compile_prog "" "" ; then
1.1.1.16  root     2473:   epoll=yes
                   2474: fi
                   2475: 
                   2476: # epoll_create1 and epoll_pwait are later additions
                   2477: # so we must check separately for their presence
                   2478: epoll_create1=no
                   2479: cat > $TMPC << EOF
                   2480: #include <sys/epoll.h>
                   2481: 
                   2482: int main(void)
                   2483: {
                   2484:     /* Note that we use epoll_create1 as a value, not as
                   2485:      * a function being called. This is necessary so that on
                   2486:      * old SPARC glibc versions where the function was present in
                   2487:      * the library but not declared in the header file we will
                   2488:      * fail the configure check. (Otherwise we will get a compiler
                   2489:      * warning but not an error, and will proceed to fail the
                   2490:      * qemu compile where we compile with -Werror.)
                   2491:      */
1.1.1.18! root     2492:     return epoll_create1 == epoll_create1;
1.1.1.16  root     2493: }
                   2494: EOF
1.1.1.18! root     2495: if compile_prog "" "" ; then
1.1.1.16  root     2496:   epoll_create1=yes
                   2497: fi
                   2498: 
                   2499: epoll_pwait=no
                   2500: cat > $TMPC << EOF
                   2501: #include <sys/epoll.h>
                   2502: 
                   2503: int main(void)
                   2504: {
                   2505:     epoll_pwait(0, 0, 0, 0, 0);
                   2506:     return 0;
                   2507: }
                   2508: EOF
1.1.1.18! root     2509: if compile_prog "" "" ; then
1.1.1.16  root     2510:   epoll_pwait=yes
                   2511: fi
                   2512: 
1.1.1.3   root     2513: # Check if tools are available to build documentation.
1.1.1.11  root     2514: if test "$docs" != "no" ; then
1.1.1.13  root     2515:   if has makeinfo && has pod2man; then
1.1.1.11  root     2516:     docs=yes
                   2517:   else
                   2518:     if test "$docs" = "yes" ; then
                   2519:       feature_not_found "docs"
                   2520:     fi
                   2521:     docs=no
                   2522:   fi
                   2523: fi
                   2524: 
                   2525: # Search for bswap_32 function
                   2526: byteswap_h=no
                   2527: cat > $TMPC << EOF
                   2528: #include <byteswap.h>
                   2529: int main(void) { return bswap_32(0); }
                   2530: EOF
                   2531: if compile_prog "" "" ; then
                   2532:   byteswap_h=yes
                   2533: fi
                   2534: 
                   2535: # Search for bswap_32 function
                   2536: bswap_h=no
                   2537: cat > $TMPC << EOF
                   2538: #include <sys/endian.h>
                   2539: #include <sys/types.h>
                   2540: #include <machine/bswap.h>
                   2541: int main(void) { return bswap32(0); }
                   2542: EOF
                   2543: if compile_prog "" "" ; then
                   2544:   bswap_h=yes
1.1       root     2545: fi
                   2546: 
1.1.1.7   root     2547: ##########################################
1.1.1.17  root     2548: # Do we have libiscsi
1.1.1.18! root     2549: # We check for iscsi_unmap_sync() to make sure we have a
        !          2550: # recent enough version of libiscsi.
1.1.1.17  root     2551: if test "$libiscsi" != "no" ; then
                   2552:   cat > $TMPC << EOF
1.1.1.18! root     2553: #include <stdio.h>
1.1.1.17  root     2554: #include <iscsi/iscsi.h>
1.1.1.18! root     2555: int main(void) { iscsi_unmap_sync(NULL,0,0,0,NULL,0); return 0; }
1.1.1.17  root     2556: EOF
                   2557:   if compile_prog "-Werror" "-liscsi" ; then
                   2558:     libiscsi="yes"
                   2559:     LIBS="$LIBS -liscsi"
                   2560:   else
                   2561:     if test "$libiscsi" = "yes" ; then
                   2562:       feature_not_found "libiscsi"
                   2563:     fi
                   2564:     libiscsi="no"
                   2565:   fi
                   2566: fi
                   2567: 
                   2568: 
                   2569: ##########################################
1.1.1.7   root     2570: # Do we need librt
                   2571: cat > $TMPC <<EOF
                   2572: #include <signal.h>
                   2573: #include <time.h>
1.1.1.18! root     2574: int main(void) { return clock_gettime(CLOCK_REALTIME, NULL); }
1.1.1.7   root     2575: EOF
                   2576: 
1.1.1.11  root     2577: if compile_prog "" "" ; then
1.1.1.7   root     2578:   :
1.1.1.11  root     2579: elif compile_prog "" "-lrt" ; then
                   2580:   LIBS="-lrt $LIBS"
1.1.1.7   root     2581: fi
                   2582: 
1.1.1.11  root     2583: if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
1.1.1.14  root     2584:         "$aix" != "yes" -a "$haiku" != "yes" ; then
1.1.1.11  root     2585:     libs_softmmu="-lutil $libs_softmmu"
                   2586: fi
                   2587: 
                   2588: ##########################################
1.1.1.14  root     2589: # spice probe
                   2590: if test "$spice" != "no" ; then
                   2591:   cat > $TMPC << EOF
                   2592: #include <spice.h>
                   2593: int main(void) { spice_server_new(); return 0; }
                   2594: EOF
                   2595:   spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
                   2596:   spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
1.1.1.18! root     2597:   if $pkg_config --atleast-version=0.8.2 spice-server >/dev/null 2>&1 && \
        !          2598:      $pkg_config --atleast-version=0.8.1 spice-protocol > /dev/null 2>&1 && \
1.1.1.14  root     2599:      compile_prog "$spice_cflags" "$spice_libs" ; then
                   2600:     spice="yes"
                   2601:     libs_softmmu="$libs_softmmu $spice_libs"
                   2602:     QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags"
                   2603:   else
                   2604:     if test "$spice" = "yes" ; then
                   2605:       feature_not_found "spice"
                   2606:     fi
                   2607:     spice="no"
                   2608:   fi
                   2609: fi
                   2610: 
1.1.1.16  root     2611: # check for libcacard for smartcard support
                   2612: if test "$smartcard" != "no" ; then
                   2613:     smartcard="yes"
                   2614:     smartcard_cflags=""
                   2615:     # TODO - what's the minimal nss version we support?
                   2616:     if test "$smartcard_nss" != "no"; then
1.1.1.18! root     2617:       cat > $TMPC << EOF
        !          2618: #include <pk11pub.h>
        !          2619: int main(void) { PK11_FreeSlot(0); return 0; }
        !          2620: EOF
        !          2621:         smartcard_cflags="-I\$(SRC_PATH)/libcacard"
        !          2622:         libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs"
        !          2623:         libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags"
        !          2624:         if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \
        !          2625:           compile_prog "$smartcard_cflags $libcacard_cflags" "$libcacard_libs"; then
1.1.1.16  root     2626:             smartcard_nss="yes"
                   2627:             QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags"
1.1.1.18! root     2628:             libs_softmmu="$libcacard_libs $libs_softmmu"
1.1.1.16  root     2629:         else
                   2630:             if test "$smartcard_nss" = "yes"; then
                   2631:                 feature_not_found "nss"
                   2632:             fi
                   2633:             smartcard_nss="no"
                   2634:         fi
                   2635:     fi
                   2636: fi
                   2637: if test "$smartcard" = "no" ; then
                   2638:     smartcard_nss="no"
                   2639: fi
                   2640: 
                   2641: # check for usbredirparser for usb network redirection support
                   2642: if test "$usb_redir" != "no" ; then
1.1.1.18! root     2643:     if $pkg_config --atleast-version=0.3.4 libusbredirparser >/dev/null 2>&1 ; then
1.1.1.16  root     2644:         usb_redir="yes"
                   2645:         usb_redir_cflags=$($pkg_config --cflags libusbredirparser 2>/dev/null)
                   2646:         usb_redir_libs=$($pkg_config --libs libusbredirparser 2>/dev/null)
                   2647:         QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
                   2648:         LIBS="$LIBS $usb_redir_libs"
                   2649:     else
                   2650:         if test "$usb_redir" = "yes"; then
                   2651:             feature_not_found "usb-redir"
                   2652:         fi
                   2653:         usb_redir="no"
                   2654:     fi
                   2655: fi
                   2656: 
1.1.1.14  root     2657: ##########################################
                   2658: 
1.1.1.11  root     2659: ##########################################
                   2660: # check if we have fdatasync
                   2661: 
                   2662: fdatasync=no
                   2663: cat > $TMPC << EOF
                   2664: #include <unistd.h>
1.1.1.16  root     2665: int main(void) {
                   2666: #if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
                   2667: return fdatasync(0);
                   2668: #else
1.1.1.18! root     2669: #error Not supported
1.1.1.16  root     2670: #endif
                   2671: }
1.1.1.11  root     2672: EOF
                   2673: if compile_prog "" "" ; then
                   2674:     fdatasync=yes
                   2675: fi
                   2676: 
1.1.1.14  root     2677: ##########################################
                   2678: # check if we have madvise
                   2679: 
                   2680: madvise=no
                   2681: cat > $TMPC << EOF
                   2682: #include <sys/types.h>
                   2683: #include <sys/mman.h>
                   2684: #include <stddef.h>
                   2685: int main(void) { return madvise(NULL, 0, MADV_DONTNEED); }
                   2686: EOF
                   2687: if compile_prog "" "" ; then
                   2688:     madvise=yes
                   2689: fi
                   2690: 
                   2691: ##########################################
                   2692: # check if we have posix_madvise
                   2693: 
                   2694: posix_madvise=no
                   2695: cat > $TMPC << EOF
                   2696: #include <sys/mman.h>
                   2697: #include <stddef.h>
                   2698: int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }
                   2699: EOF
                   2700: if compile_prog "" "" ; then
                   2701:     posix_madvise=yes
                   2702: fi
                   2703: 
                   2704: ##########################################
                   2705: # check if trace backend exists
                   2706: 
1.1.1.18! root     2707: $python "$source_path/scripts/tracetool.py" "--backend=$trace_backend" --check-backend  > /dev/null 2> /dev/null
1.1.1.14  root     2708: if test "$?" -ne 0 ; then
                   2709:   echo
                   2710:   echo "Error: invalid trace backend"
                   2711:   echo "Please choose a supported trace backend."
                   2712:   echo
                   2713:   exit 1
                   2714: fi
                   2715: 
                   2716: ##########################################
                   2717: # For 'ust' backend, test if ust headers are present
                   2718: if test "$trace_backend" = "ust"; then
                   2719:   cat > $TMPC << EOF
                   2720: #include <ust/tracepoint.h>
                   2721: #include <ust/marker.h>
                   2722: int main(void) { return 0; }
                   2723: EOF
                   2724:   if compile_prog "" "" ; then
1.1.1.18! root     2725:     LIBS="-lust -lurcu-bp $LIBS"
        !          2726:     libs_qga="-lust -lurcu-bp $libs_qga"
1.1.1.14  root     2727:   else
                   2728:     echo
                   2729:     echo "Error: Trace backend 'ust' missing libust header files"
                   2730:     echo
                   2731:     exit 1
                   2732:   fi
                   2733: fi
                   2734: 
                   2735: ##########################################
                   2736: # For 'dtrace' backend, test if 'dtrace' command is present
                   2737: if test "$trace_backend" = "dtrace"; then
                   2738:   if ! has 'dtrace' ; then
                   2739:     echo
                   2740:     echo "Error: dtrace command is not found in PATH $PATH"
                   2741:     echo
                   2742:     exit 1
                   2743:   fi
                   2744:   trace_backend_stap="no"
                   2745:   if has 'stap' ; then
                   2746:     trace_backend_stap="yes"
                   2747:   fi
                   2748: fi
                   2749: 
                   2750: ##########################################
1.1.1.16  root     2751: # __sync_fetch_and_and requires at least -march=i486. Many toolchains
                   2752: # use i686 as default anyway, but for those that don't, an explicit
                   2753: # specification is necessary
1.1.1.17  root     2754: if test "$vhost_net" = "yes" && test "$cpu" = "i386"; then
1.1.1.16  root     2755:   cat > $TMPC << EOF
                   2756: int sfaa(unsigned *ptr)
                   2757: {
                   2758:   return __sync_fetch_and_and(ptr, 0);
                   2759: }
                   2760: 
                   2761: int main(int argc, char **argv)
                   2762: {
                   2763:   int val = 42;
                   2764:   sfaa(&val);
                   2765:   return val;
                   2766: }
                   2767: EOF
                   2768:   if ! compile_prog "" "" ; then
                   2769:     CFLAGS+="-march=i486"
                   2770:   fi
                   2771: fi
                   2772: 
                   2773: ##########################################
1.1.1.18! root     2774: # check and set a backend for coroutine
1.1.1.17  root     2775: 
1.1.1.18! root     2776: # default is ucontext, but always fallback to gthread
        !          2777: # windows autodetected by make
        !          2778: if test "$coroutine" = "" -o "$coroutine" = "ucontext"; then
        !          2779:   if test "$darwin" != "yes"; then
        !          2780:     cat > $TMPC << EOF
1.1.1.17  root     2781: #include <ucontext.h>
1.1.1.18! root     2782: #ifdef __stub_makecontext
        !          2783: #error Ignoring glibc stub makecontext which will always fail
        !          2784: #endif
        !          2785: int main(void) { makecontext(0, 0, 0); return 0; }
1.1.1.17  root     2786: EOF
1.1.1.18! root     2787:     if compile_prog "" "" ; then
        !          2788:         coroutine_backend=ucontext
        !          2789:     else
        !          2790:        coroutine_backend=gthread
        !          2791:     fi
        !          2792:   else
        !          2793:     echo "Silently falling back into gthread backend under darwin"
1.1.1.17  root     2794:   fi
1.1.1.18! root     2795: elif test "$coroutine" = "gthread" ; then
        !          2796:   coroutine_backend=gthread
        !          2797: elif test "$coroutine" = "windows" ; then
        !          2798:   coroutine_backend=windows
        !          2799: elif test "$coroutine" = "sigaltstack" ; then
        !          2800:   coroutine_backend=sigaltstack
        !          2801: else
        !          2802:   echo
        !          2803:   echo "Error: unknown coroutine backend $coroutine"
        !          2804:   echo
        !          2805:   exit 1
1.1.1.17  root     2806: fi
                   2807: 
                   2808: ##########################################
                   2809: # check if we have open_by_handle_at
                   2810: 
                   2811: open_by_hande_at=no
                   2812: cat > $TMPC << EOF
                   2813: #include <fcntl.h>
1.1.1.18! root     2814: #if !defined(AT_EMPTY_PATH)
        !          2815: # error missing definition
        !          2816: #else
        !          2817: int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
        !          2818: #endif
1.1.1.17  root     2819: EOF
                   2820: if compile_prog "" "" ; then
                   2821:     open_by_handle_at=yes
                   2822: fi
                   2823: 
                   2824: ########################################
                   2825: # check if we have linux/magic.h
                   2826: 
                   2827: linux_magic_h=no
                   2828: cat > $TMPC << EOF
                   2829: #include <linux/magic.h>
                   2830: int main(void) {
1.1.1.18! root     2831:   return 0;
1.1.1.17  root     2832: }
                   2833: EOF
                   2834: if compile_prog "" "" ; then
                   2835:     linux_magic_h=yes
                   2836: fi
                   2837: 
1.1.1.18! root     2838: ########################################
        !          2839: # check if environ is declared
        !          2840: 
        !          2841: has_environ=no
        !          2842: cat > $TMPC << EOF
        !          2843: #include <unistd.h>
        !          2844: int main(void) {
        !          2845:     environ = environ;
        !          2846:     return 0;
        !          2847: }
        !          2848: EOF
        !          2849: if compile_prog "" "" ; then
        !          2850:     has_environ=yes
        !          2851: fi
        !          2852: 
1.1.1.17  root     2853: ##########################################
1.1.1.11  root     2854: # End of CC checks
                   2855: # After here, no more $cc or $ld runs
                   2856: 
                   2857: if test "$debug" = "no" ; then
                   2858:   CFLAGS="-O2 $CFLAGS"
                   2859: fi
                   2860: 
                   2861: # Consult white-list to determine whether to enable werror
                   2862: # by default.  Only enable by default for git builds
                   2863: z_version=`cut -f3 -d. $source_path/VERSION`
                   2864: 
                   2865: if test -z "$werror" ; then
                   2866:     if test "$z_version" = "50" -a \
                   2867:         "$linux" = "yes" ; then
                   2868:         werror="yes"
                   2869:     else
                   2870:         werror="no"
                   2871:     fi
                   2872: fi
                   2873: 
                   2874: # Disable zero malloc errors for official releases unless explicitly told to
                   2875: # enable/disable
                   2876: if test -z "$zero_malloc" ; then
                   2877:     if test "$z_version" = "50" ; then
                   2878:        zero_malloc="no"
                   2879:     else
                   2880:        zero_malloc="yes"
                   2881:     fi
                   2882: fi
                   2883: 
                   2884: if test "$werror" = "yes" ; then
                   2885:     QEMU_CFLAGS="-Werror $QEMU_CFLAGS"
                   2886: fi
                   2887: 
                   2888: if test "$solaris" = "no" ; then
                   2889:     if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
                   2890:         LDFLAGS="-Wl,--warn-common $LDFLAGS"
                   2891:     fi
1.1.1.7   root     2892: fi
                   2893: 
1.1.1.18! root     2894: # test if pod2man has --utf8 option
        !          2895: if pod2man --help | grep -q utf8; then
        !          2896:     POD2MAN="pod2man --utf8"
        !          2897: else
        !          2898:     POD2MAN="pod2man"
        !          2899: fi
        !          2900: 
1.1.1.14  root     2901: # Use ASLR, no-SEH and DEP if available
                   2902: if test "$mingw32" = "yes" ; then
                   2903:     for flag in --dynamicbase --no-seh --nxcompat; do
                   2904:         if $ld --help 2>/dev/null | grep ".$flag" >/dev/null 2>/dev/null ; then
                   2905:             LDFLAGS="-Wl,$flag $LDFLAGS"
                   2906:         fi
                   2907:     done
                   2908: fi
                   2909: 
1.1.1.18! root     2910: qemu_confdir=$sysconfdir$confsuffix
        !          2911: qemu_datadir=$datadir$confsuffix
1.1.1.13  root     2912: 
                   2913: tools=
                   2914: if test "$softmmu" = yes ; then
                   2915:   tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
1.1.1.18! root     2916:   if test "$virtfs" != no ; then
        !          2917:     if test "$cap" = yes && test "$linux" = yes && test "$attr" = yes ; then
        !          2918:       virtfs=yes
        !          2919:       tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
        !          2920:     else
        !          2921:       if test "$virtfs" = yes; then
        !          2922:         echo "VirtFS is supported only on Linux and requires libcap-devel and libattr-devel"
        !          2923:         exit 1
        !          2924:       fi
        !          2925:       virtfs=no
        !          2926:     fi
        !          2927:   fi
1.1.1.13  root     2928:   if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
                   2929:       tools="qemu-nbd\$(EXESUF) $tools"
1.1.1.16  root     2930:     if [ "$guest_agent" = "yes" ]; then
                   2931:       tools="qemu-ga\$(EXESUF) $tools"
                   2932:     fi
1.1.1.6   root     2933:   fi
1.1       root     2934: fi
                   2935: 
1.1.1.13  root     2936: # Mac OS X ships with a broken assembler
                   2937: roms=
                   2938: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
                   2939:         "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
                   2940:         "$softmmu" = yes ; then
                   2941:   roms="optionrom"
                   2942: fi
1.1.1.16  root     2943: if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
                   2944:   roms="$roms spapr-rtas"
                   2945: fi
1.1.1.13  root     2946: 
1.1       root     2947: echo "Install prefix    $prefix"
1.1.1.18! root     2948: echo "BIOS directory    `eval echo $qemu_datadir`"
1.1.1.13  root     2949: echo "binary directory  `eval echo $bindir`"
1.1.1.16  root     2950: echo "library directory `eval echo $libdir`"
1.1.1.17  root     2951: echo "include directory `eval echo $includedir`"
1.1.1.13  root     2952: echo "config directory  `eval echo $sysconfdir`"
1.1       root     2953: if test "$mingw32" = "no" ; then
1.1.1.13  root     2954: echo "Manual directory  `eval echo $mandir`"
1.1       root     2955: echo "ELF interp prefix $interp_prefix"
                   2956: fi
                   2957: echo "Source path       $source_path"
                   2958: echo "C compiler        $cc"
                   2959: echo "Host C compiler   $host_cc"
1.1.1.11  root     2960: echo "CFLAGS            $CFLAGS"
                   2961: echo "QEMU_CFLAGS       $QEMU_CFLAGS"
                   2962: echo "LDFLAGS           $LDFLAGS"
1.1       root     2963: echo "make              $make"
1.1.1.3   root     2964: echo "install           $install"
1.1.1.16  root     2965: echo "python            $python"
                   2966: if test "$slirp" = "yes" ; then
                   2967:     echo "smbd              $smbd"
                   2968: fi
1.1       root     2969: echo "host CPU          $cpu"
                   2970: echo "host big endian   $bigendian"
                   2971: echo "target list       $target_list"
1.1.1.9   root     2972: echo "tcg debug enabled $debug_tcg"
1.1.1.13  root     2973: echo "Mon debug enabled $debug_mon"
1.1       root     2974: echo "gprof enabled     $gprof"
1.1.1.7   root     2975: echo "sparse enabled    $sparse"
1.1.1.9   root     2976: echo "strip binaries    $strip_opt"
1.1.1.3   root     2977: echo "profiler          $profiler"
1.1       root     2978: echo "static build      $static"
1.1.1.6   root     2979: echo "-Werror enabled   $werror"
1.1       root     2980: if test "$darwin" = "yes" ; then
                   2981:     echo "Cocoa support     $cocoa"
                   2982: fi
                   2983: echo "SDL support       $sdl"
1.1.1.7   root     2984: echo "curses support    $curses"
1.1.1.9   root     2985: echo "curl support      $curl"
1.1       root     2986: echo "mingw32 support   $mingw32"
1.1.1.7   root     2987: echo "Audio drivers     $audio_drv_list"
                   2988: echo "Extra audio cards $audio_card_list"
1.1.1.11  root     2989: echo "Block whitelist   $block_drv_whitelist"
1.1.1.7   root     2990: echo "Mixer emulation   $mixemu"
1.1.1.18! root     2991: echo "VirtFS support    $virtfs"
1.1.1.16  root     2992: echo "VNC support       $vnc"
                   2993: if test "$vnc" = "yes" ; then
                   2994:     echo "VNC TLS support   $vnc_tls"
                   2995:     echo "VNC SASL support  $vnc_sasl"
                   2996:     echo "VNC JPEG support  $vnc_jpeg"
                   2997:     echo "VNC PNG support   $vnc_png"
                   2998:     echo "VNC thread        $vnc_thread"
                   2999: fi
1.1.1.6   root     3000: if test -n "$sparc_cpu"; then
                   3001:     echo "Target Sparc Arch $sparc_cpu"
                   3002: fi
1.1.1.9   root     3003: echo "xen support       $xen"
1.1.1.7   root     3004: echo "brlapi support    $brlapi"
1.1.1.11  root     3005: echo "bluez  support    $bluez"
                   3006: echo "Documentation     $docs"
1.1.1.4   root     3007: [ ! -z "$uname_release" ] && \
                   3008: echo "uname -r          $uname_release"
1.1.1.7   root     3009: echo "NPTL support      $nptl"
1.1.1.11  root     3010: echo "GUEST_BASE        $guest_base"
1.1.1.17  root     3011: echo "PIE               $pie"
1.1.1.7   root     3012: echo "vde support       $vde"
1.1.1.11  root     3013: echo "Linux AIO support $linux_aio"
1.1.1.13  root     3014: echo "ATTR/XATTR support $attr"
1.1.1.7   root     3015: echo "Install blobs     $blobs"
1.1.1.11  root     3016: echo "KVM support       $kvm"
1.1.1.17  root     3017: echo "TCG interpreter   $tcg_interpreter"
1.1.1.7   root     3018: echo "fdt support       $fdt"
1.1.1.9   root     3019: echo "preadv support    $preadv"
1.1.1.11  root     3020: echo "fdatasync         $fdatasync"
1.1.1.14  root     3021: echo "madvise           $madvise"
                   3022: echo "posix_madvise     $posix_madvise"
1.1.1.11  root     3023: echo "uuid support      $uuid"
1.1.1.18! root     3024: echo "libcap-ng support $cap_ng"
1.1.1.13  root     3025: echo "vhost-net support $vhost_net"
1.1.1.14  root     3026: echo "Trace backend     $trace_backend"
                   3027: echo "Trace output file $trace_file-<pid>"
                   3028: echo "spice support     $spice"
                   3029: echo "rbd support       $rbd"
                   3030: echo "xfsctl support    $xfs"
1.1.1.16  root     3031: echo "nss used          $smartcard_nss"
                   3032: echo "usb net redir     $usb_redir"
                   3033: echo "OpenGL support    $opengl"
1.1.1.17  root     3034: echo "libiscsi support  $libiscsi"
1.1.1.16  root     3035: echo "build guest agent $guest_agent"
1.1.1.18! root     3036: echo "coroutine backend $coroutine_backend"
1.1       root     3037: 
1.1.1.17  root     3038: if test "$sdl_too_old" = "yes"; then
1.1       root     3039: echo "-> Your SDL version is too old - please upgrade to have SDL support"
                   3040: fi
                   3041: 
1.1.1.9   root     3042: config_host_mak="config-host.mak"
1.1.1.11  root     3043: config_host_ld="config-host.ld"
1.1.1.9   root     3044: 
                   3045: echo "# Automatically generated by configure - do not modify" > $config_host_mak
                   3046: printf "# Configured with:" >> $config_host_mak
                   3047: printf " '%s'" "$0" "$@" >> $config_host_mak
                   3048: echo >> $config_host_mak
                   3049: 
1.1.1.14  root     3050: echo all: >> $config_host_mak
1.1.1.13  root     3051: echo "prefix=$prefix" >> $config_host_mak
                   3052: echo "bindir=$bindir" >> $config_host_mak
1.1.1.16  root     3053: echo "libdir=$libdir" >> $config_host_mak
1.1.1.17  root     3054: echo "includedir=$includedir" >> $config_host_mak
1.1.1.13  root     3055: echo "mandir=$mandir" >> $config_host_mak
                   3056: echo "sysconfdir=$sysconfdir" >> $config_host_mak
1.1.1.18! root     3057: echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
        !          3058: echo "qemu_datadir=$qemu_datadir" >> $config_host_mak
        !          3059: echo "qemu_docdir=$qemu_docdir" >> $config_host_mak
        !          3060: echo "libexecdir=\${prefix}/libexec" >> $config_host_mak
        !          3061: echo "CONFIG_QEMU_HELPERDIR=\"$prefix/libexec\"" >> $config_host_mak
1.1.1.11  root     3062: 
1.1.1.9   root     3063: echo "ARCH=$ARCH" >> $config_host_mak
                   3064: if test "$debug_tcg" = "yes" ; then
1.1.1.11  root     3065:   echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
1.1.1.9   root     3066: fi
1.1.1.13  root     3067: if test "$debug_mon" = "yes" ; then
                   3068:   echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak
                   3069: fi
1.1.1.9   root     3070: if test "$debug" = "yes" ; then
1.1.1.11  root     3071:   echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
1.1.1.9   root     3072: fi
                   3073: if test "$strip_opt" = "yes" ; then
1.1.1.14  root     3074:   echo "STRIP=${strip}" >> $config_host_mak
1.1       root     3075: fi
                   3076: if test "$bigendian" = "yes" ; then
1.1.1.11  root     3077:   echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
1.1       root     3078: fi
                   3079: if test "$mingw32" = "yes" ; then
1.1.1.9   root     3080:   echo "CONFIG_WIN32=y" >> $config_host_mak
1.1.1.14  root     3081:   rc_version=`cat $source_path/VERSION`
                   3082:   version_major=${rc_version%%.*}
                   3083:   rc_version=${rc_version#*.}
                   3084:   version_minor=${rc_version%%.*}
                   3085:   rc_version=${rc_version#*.}
                   3086:   version_subminor=${rc_version%%.*}
                   3087:   version_micro=0
                   3088:   echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
                   3089:   echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
1.1.1.6   root     3090: else
1.1.1.11  root     3091:   echo "CONFIG_POSIX=y" >> $config_host_mak
1.1.1.7   root     3092: fi
                   3093: 
1.1.1.11  root     3094: if test "$linux" = "yes" ; then
                   3095:   echo "CONFIG_LINUX=y" >> $config_host_mak
1.1       root     3096: fi
1.1.1.7   root     3097: 
1.1       root     3098: if test "$darwin" = "yes" ; then
1.1.1.9   root     3099:   echo "CONFIG_DARWIN=y" >> $config_host_mak
1.1       root     3100: fi
1.1.1.7   root     3101: 
                   3102: if test "$aix" = "yes" ; then
1.1.1.9   root     3103:   echo "CONFIG_AIX=y" >> $config_host_mak
1.1.1.7   root     3104: fi
                   3105: 
1.1.1.3   root     3106: if test "$solaris" = "yes" ; then
1.1.1.9   root     3107:   echo "CONFIG_SOLARIS=y" >> $config_host_mak
1.1.1.11  root     3108:   echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
1.1.1.6   root     3109:   if test "$needs_libsunmath" = "yes" ; then
1.1.1.11  root     3110:     echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
1.1.1.6   root     3111:   fi
                   3112: fi
1.1.1.14  root     3113: if test "$haiku" = "yes" ; then
                   3114:   echo "CONFIG_HAIKU=y" >> $config_host_mak
                   3115: fi
1.1       root     3116: if test "$static" = "yes" ; then
1.1.1.9   root     3117:   echo "CONFIG_STATIC=y" >> $config_host_mak
1.1       root     3118: fi
1.1.1.17  root     3119: if test "$profiler" = "yes" ; then
1.1.1.11  root     3120:   echo "CONFIG_PROFILER=y" >> $config_host_mak
1.1.1.3   root     3121: fi
1.1       root     3122: if test "$slirp" = "yes" ; then
1.1.1.9   root     3123:   echo "CONFIG_SLIRP=y" >> $config_host_mak
1.1.1.16  root     3124:   echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
1.1.1.14  root     3125:   QEMU_INCLUDES="-I\$(SRC_PATH)/slirp $QEMU_INCLUDES"
1.1       root     3126: fi
1.1.1.7   root     3127: if test "$vde" = "yes" ; then
1.1.1.9   root     3128:   echo "CONFIG_VDE=y" >> $config_host_mak
1.1.1.7   root     3129: fi
1.1.1.18! root     3130: if test "$cap_ng" = "yes" ; then
        !          3131:   echo "CONFIG_LIBCAP=y" >> $config_host_mak
        !          3132: fi
1.1.1.7   root     3133: for card in $audio_card_list; do
1.1.1.18! root     3134:     def=CONFIG_`echo $card | LC_ALL=C tr '[a-z]' '[A-Z]'`
1.1.1.9   root     3135:     echo "$def=y" >> $config_host_mak
1.1.1.7   root     3136: done
1.1.1.11  root     3137: echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
1.1.1.7   root     3138: for drv in $audio_drv_list; do
1.1.1.18! root     3139:     def=CONFIG_`echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]'`
1.1.1.9   root     3140:     echo "$def=y" >> $config_host_mak
1.1.1.7   root     3141:     if test "$drv" = "fmod"; then
1.1.1.11  root     3142:         echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak
1.1.1.7   root     3143:     fi
                   3144: done
1.1.1.11  root     3145: if test "$audio_pt_int" = "yes" ; then
                   3146:   echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
                   3147: fi
                   3148: if test "$audio_win_int" = "yes" ; then
                   3149:   echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
                   3150: fi
                   3151: echo "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak
1.1.1.7   root     3152: if test "$mixemu" = "yes" ; then
1.1.1.9   root     3153:   echo "CONFIG_MIXEMU=y" >> $config_host_mak
1.1       root     3154: fi
1.1.1.16  root     3155: if test "$vnc" = "yes" ; then
                   3156:   echo "CONFIG_VNC=y" >> $config_host_mak
                   3157: fi
1.1.1.6   root     3158: if test "$vnc_tls" = "yes" ; then
1.1.1.9   root     3159:   echo "CONFIG_VNC_TLS=y" >> $config_host_mak
1.1.1.11  root     3160:   echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
1.1.1.9   root     3161: fi
                   3162: if test "$vnc_sasl" = "yes" ; then
                   3163:   echo "CONFIG_VNC_SASL=y" >> $config_host_mak
1.1.1.11  root     3164:   echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
1.1.1.9   root     3165: fi
1.1.1.16  root     3166: if test "$vnc_jpeg" = "yes" ; then
1.1.1.13  root     3167:   echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
                   3168:   echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak
                   3169: fi
1.1.1.16  root     3170: if test "$vnc_png" = "yes" ; then
1.1.1.13  root     3171:   echo "CONFIG_VNC_PNG=y" >> $config_host_mak
                   3172:   echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
                   3173: fi
1.1.1.16  root     3174: if test "$vnc_thread" = "yes" ; then
1.1.1.13  root     3175:   echo "CONFIG_VNC_THREAD=y" >> $config_host_mak
                   3176: fi
1.1.1.9   root     3177: if test "$fnmatch" = "yes" ; then
1.1.1.11  root     3178:   echo "CONFIG_FNMATCH=y" >> $config_host_mak
                   3179: fi
                   3180: if test "$uuid" = "yes" ; then
                   3181:   echo "CONFIG_UUID=y" >> $config_host_mak
1.1.1.6   root     3182: fi
1.1.1.14  root     3183: if test "$xfs" = "yes" ; then
                   3184:   echo "CONFIG_XFS=y" >> $config_host_mak
                   3185: fi
1.1.1.3   root     3186: qemu_version=`head $source_path/VERSION`
1.1.1.9   root     3187: echo "VERSION=$qemu_version" >>$config_host_mak
1.1.1.11  root     3188: echo "PKGVERSION=$pkgversion" >>$config_host_mak
1.1.1.9   root     3189: echo "SRC_PATH=$source_path" >> $config_host_mak
                   3190: echo "TARGET_DIRS=$target_list" >> $config_host_mak
1.1.1.11  root     3191: if [ "$docs" = "yes" ] ; then
1.1.1.9   root     3192:   echo "BUILD_DOCS=yes" >> $config_host_mak
1.1.1.3   root     3193: fi
1.1.1.11  root     3194: if test "$sdl" = "yes" ; then
1.1.1.9   root     3195:   echo "CONFIG_SDL=y" >> $config_host_mak
1.1.1.11  root     3196:   echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
1.1.1.6   root     3197: fi
                   3198: if test "$cocoa" = "yes" ; then
1.1.1.9   root     3199:   echo "CONFIG_COCOA=y" >> $config_host_mak
1.1.1.7   root     3200: fi
                   3201: if test "$curses" = "yes" ; then
1.1.1.9   root     3202:   echo "CONFIG_CURSES=y" >> $config_host_mak
                   3203: fi
                   3204: if test "$atfile" = "yes" ; then
1.1.1.11  root     3205:   echo "CONFIG_ATFILE=y" >> $config_host_mak
1.1.1.9   root     3206: fi
                   3207: if test "$utimens" = "yes" ; then
1.1.1.11  root     3208:   echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
1.1.1.9   root     3209: fi
                   3210: if test "$pipe2" = "yes" ; then
1.1.1.11  root     3211:   echo "CONFIG_PIPE2=y" >> $config_host_mak
                   3212: fi
                   3213: if test "$accept4" = "yes" ; then
                   3214:   echo "CONFIG_ACCEPT4=y" >> $config_host_mak
1.1.1.9   root     3215: fi
                   3216: if test "$splice" = "yes" ; then
1.1.1.11  root     3217:   echo "CONFIG_SPLICE=y" >> $config_host_mak
                   3218: fi
                   3219: if test "$eventfd" = "yes" ; then
                   3220:   echo "CONFIG_EVENTFD=y" >> $config_host_mak
                   3221: fi
                   3222: if test "$fallocate" = "yes" ; then
                   3223:   echo "CONFIG_FALLOCATE=y" >> $config_host_mak
                   3224: fi
1.1.1.14  root     3225: if test "$sync_file_range" = "yes" ; then
                   3226:   echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
                   3227: fi
                   3228: if test "$fiemap" = "yes" ; then
                   3229:   echo "CONFIG_FIEMAP=y" >> $config_host_mak
                   3230: fi
1.1.1.11  root     3231: if test "$dup3" = "yes" ; then
                   3232:   echo "CONFIG_DUP3=y" >> $config_host_mak
1.1.1.9   root     3233: fi
1.1.1.16  root     3234: if test "$epoll" = "yes" ; then
                   3235:   echo "CONFIG_EPOLL=y" >> $config_host_mak
                   3236: fi
                   3237: if test "$epoll_create1" = "yes" ; then
                   3238:   echo "CONFIG_EPOLL_CREATE1=y" >> $config_host_mak
                   3239: fi
                   3240: if test "$epoll_pwait" = "yes" ; then
                   3241:   echo "CONFIG_EPOLL_PWAIT=y" >> $config_host_mak
                   3242: fi
1.1.1.9   root     3243: if test "$inotify" = "yes" ; then
1.1.1.11  root     3244:   echo "CONFIG_INOTIFY=y" >> $config_host_mak
                   3245: fi
1.1.1.13  root     3246: if test "$inotify1" = "yes" ; then
                   3247:   echo "CONFIG_INOTIFY1=y" >> $config_host_mak
                   3248: fi
1.1.1.11  root     3249: if test "$byteswap_h" = "yes" ; then
                   3250:   echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
                   3251: fi
                   3252: if test "$bswap_h" = "yes" ; then
                   3253:   echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
1.1.1.9   root     3254: fi
                   3255: if test "$curl" = "yes" ; then
                   3256:   echo "CONFIG_CURL=y" >> $config_host_mak
1.1.1.11  root     3257:   echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
1.1.1.7   root     3258: fi
                   3259: if test "$brlapi" = "yes" ; then
1.1.1.9   root     3260:   echo "CONFIG_BRLAPI=y" >> $config_host_mak
1.1.1.7   root     3261: fi
                   3262: if test "$bluez" = "yes" ; then
1.1.1.9   root     3263:   echo "CONFIG_BLUEZ=y" >> $config_host_mak
1.1.1.11  root     3264:   echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
1.1.1.9   root     3265: fi
1.1.1.16  root     3266: echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
1.1.1.9   root     3267: if test "$xen" = "yes" ; then
1.1.1.16  root     3268:   echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
                   3269:   echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak
1.1.1.9   root     3270: fi
1.1.1.11  root     3271: if test "$linux_aio" = "yes" ; then
                   3272:   echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
1.1.1.7   root     3273: fi
1.1.1.13  root     3274: if test "$attr" = "yes" ; then
                   3275:   echo "CONFIG_ATTR=y" >> $config_host_mak
                   3276: fi
1.1.1.17  root     3277: if test "$libattr" = "yes" ; then
                   3278:   echo "CONFIG_LIBATTR=y" >> $config_host_mak
                   3279: fi
1.1.1.18! root     3280: if test "$virtfs" = "yes" ; then
        !          3281:   echo "CONFIG_VIRTFS=y" >> $config_host_mak
1.1.1.13  root     3282: fi
1.1.1.7   root     3283: if test "$blobs" = "yes" ; then
1.1.1.9   root     3284:   echo "INSTALL_BLOBS=yes" >> $config_host_mak
1.1.1.7   root     3285: fi
                   3286: if test "$iovec" = "yes" ; then
1.1.1.11  root     3287:   echo "CONFIG_IOVEC=y" >> $config_host_mak
1.1.1.9   root     3288: fi
                   3289: if test "$preadv" = "yes" ; then
1.1.1.11  root     3290:   echo "CONFIG_PREADV=y" >> $config_host_mak
1.1.1.7   root     3291: fi
                   3292: if test "$fdt" = "yes" ; then
1.1.1.11  root     3293:   echo "CONFIG_FDT=y" >> $config_host_mak
                   3294: fi
1.1.1.14  root     3295: if test "$signalfd" = "yes" ; then
                   3296:   echo "CONFIG_SIGNALFD=y" >> $config_host_mak
                   3297: fi
1.1.1.17  root     3298: if test "$tcg_interpreter" = "yes" ; then
                   3299:   echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
                   3300: fi
1.1.1.11  root     3301: if test "$fdatasync" = "yes" ; then
                   3302:   echo "CONFIG_FDATASYNC=y" >> $config_host_mak
1.1.1.6   root     3303: fi
1.1.1.14  root     3304: if test "$madvise" = "yes" ; then
                   3305:   echo "CONFIG_MADVISE=y" >> $config_host_mak
                   3306: fi
                   3307: if test "$posix_madvise" = "yes" ; then
                   3308:   echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
                   3309: fi
                   3310: 
                   3311: if test "$spice" = "yes" ; then
                   3312:   echo "CONFIG_SPICE=y" >> $config_host_mak
                   3313: fi
1.1       root     3314: 
1.1.1.16  root     3315: if test "$smartcard" = "yes" ; then
                   3316:   echo "CONFIG_SMARTCARD=y" >> $config_host_mak
                   3317: fi
                   3318: 
                   3319: if test "$smartcard_nss" = "yes" ; then
                   3320:   echo "CONFIG_SMARTCARD_NSS=y" >> $config_host_mak
1.1.1.18! root     3321:   echo "libcacard_libs=$libcacard_libs" >> $config_host_mak
        !          3322:   echo "libcacard_cflags=$libcacard_cflags" >> $config_host_mak
1.1.1.16  root     3323: fi
                   3324: 
                   3325: if test "$usb_redir" = "yes" ; then
                   3326:   echo "CONFIG_USB_REDIR=y" >> $config_host_mak
                   3327: fi
                   3328: 
                   3329: if test "$opengl" = "yes" ; then
                   3330:   echo "CONFIG_OPENGL=y" >> $config_host_mak
                   3331: fi
                   3332: 
1.1.1.17  root     3333: if test "$libiscsi" = "yes" ; then
                   3334:   echo "CONFIG_LIBISCSI=y" >> $config_host_mak
                   3335: fi
                   3336: 
1.1       root     3337: # XXX: suppress that
                   3338: if [ "$bsd" = "yes" ] ; then
1.1.1.11  root     3339:   echo "CONFIG_BSD=y" >> $config_host_mak
1.1       root     3340: fi
                   3341: 
1.1.1.11  root     3342: echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
                   3343: 
                   3344: if test "$zero_malloc" = "yes" ; then
                   3345:   echo "CONFIG_ZERO_MALLOC=y" >> $config_host_mak
                   3346: fi
1.1.1.14  root     3347: if test "$rbd" = "yes" ; then
                   3348:   echo "CONFIG_RBD=y" >> $config_host_mak
                   3349: fi
1.1.1.4   root     3350: 
1.1.1.18! root     3351: if test "$coroutine_backend" = "ucontext" ; then
1.1.1.17  root     3352:   echo "CONFIG_UCONTEXT_COROUTINE=y" >> $config_host_mak
1.1.1.18! root     3353: elif test "$coroutine_backend" = "sigaltstack" ; then
        !          3354:   echo "CONFIG_SIGALTSTACK_COROUTINE=y" >> $config_host_mak
1.1.1.17  root     3355: fi
                   3356: 
                   3357: if test "$open_by_handle_at" = "yes" ; then
                   3358:   echo "CONFIG_OPEN_BY_HANDLE=y" >> $config_host_mak
                   3359: fi
                   3360: 
                   3361: if test "$linux_magic_h" = "yes" ; then
                   3362:   echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak
                   3363: fi
                   3364: 
1.1.1.18! root     3365: if test "$has_environ" = "yes" ; then
        !          3366:   echo "CONFIG_HAS_ENVIRON=y" >> $config_host_mak
        !          3367: fi
        !          3368: 
1.1.1.7   root     3369: # USB host support
                   3370: case "$usb" in
                   3371: linux)
1.1.1.9   root     3372:   echo "HOST_USB=linux" >> $config_host_mak
1.1.1.7   root     3373: ;;
                   3374: bsd)
1.1.1.9   root     3375:   echo "HOST_USB=bsd" >> $config_host_mak
1.1.1.7   root     3376: ;;
                   3377: *)
1.1.1.9   root     3378:   echo "HOST_USB=stub" >> $config_host_mak
1.1.1.7   root     3379: ;;
                   3380: esac
                   3381: 
1.1.1.17  root     3382: # use default implementation for tracing backend-specific routines
                   3383: trace_default=yes
1.1.1.14  root     3384: echo "TRACE_BACKEND=$trace_backend" >> $config_host_mak
1.1.1.17  root     3385: if test "$trace_backend" = "nop"; then
                   3386:   echo "CONFIG_TRACE_NOP=y" >> $config_host_mak
1.1.1.14  root     3387: fi
                   3388: if test "$trace_backend" = "simple"; then
1.1.1.17  root     3389:   echo "CONFIG_TRACE_SIMPLE=y" >> $config_host_mak
                   3390:   trace_default=no
                   3391:   # Set the appropriate trace file.
1.1.1.16  root     3392:   trace_file="\"$trace_file-\" FMT_pid"
1.1.1.14  root     3393: fi
1.1.1.17  root     3394: if test "$trace_backend" = "stderr"; then
                   3395:   echo "CONFIG_TRACE_STDERR=y" >> $config_host_mak
                   3396:   trace_default=no
                   3397: fi
                   3398: if test "$trace_backend" = "ust"; then
                   3399:   echo "CONFIG_TRACE_UST=y" >> $config_host_mak
                   3400: fi
                   3401: if test "$trace_backend" = "dtrace"; then
                   3402:   echo "CONFIG_TRACE_DTRACE=y" >> $config_host_mak
                   3403:   if test "$trace_backend_stap" = "yes" ; then
                   3404:     echo "CONFIG_TRACE_SYSTEMTAP=y" >> $config_host_mak
                   3405:   fi
1.1.1.14  root     3406: fi
                   3407: echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
1.1.1.17  root     3408: if test "$trace_default" = "yes"; then
                   3409:   echo "CONFIG_TRACE_DEFAULT=y" >> $config_host_mak
                   3410: fi
1.1.1.14  root     3411: 
1.1.1.9   root     3412: echo "TOOLS=$tools" >> $config_host_mak
                   3413: echo "ROMS=$roms" >> $config_host_mak
1.1.1.11  root     3414: echo "MAKE=$make" >> $config_host_mak
                   3415: echo "INSTALL=$install" >> $config_host_mak
1.1.1.16  root     3416: echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak
                   3417: echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
                   3418: echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
                   3419: echo "PYTHON=$python" >> $config_host_mak
1.1.1.11  root     3420: echo "CC=$cc" >> $config_host_mak
1.1.1.14  root     3421: echo "CC_I386=$cc_i386" >> $config_host_mak
1.1.1.11  root     3422: echo "HOST_CC=$host_cc" >> $config_host_mak
                   3423: echo "AR=$ar" >> $config_host_mak
                   3424: echo "OBJCOPY=$objcopy" >> $config_host_mak
                   3425: echo "LD=$ld" >> $config_host_mak
1.1.1.14  root     3426: echo "WINDRES=$windres" >> $config_host_mak
1.1.1.16  root     3427: echo "LIBTOOL=$libtool" >> $config_host_mak
1.1.1.11  root     3428: echo "CFLAGS=$CFLAGS" >> $config_host_mak
                   3429: echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
1.1.1.14  root     3430: echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
                   3431: if test "$sparse" = "yes" ; then
                   3432:   echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
                   3433:   echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
                   3434:   echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
                   3435: fi
1.1.1.11  root     3436: echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
                   3437: echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
                   3438: echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
                   3439: echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
                   3440: echo "LIBS+=$LIBS" >> $config_host_mak
                   3441: echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
                   3442: echo "EXESUF=$EXESUF" >> $config_host_mak
1.1.1.17  root     3443: echo "LIBS_QGA+=$libs_qga" >> $config_host_mak
1.1.1.18! root     3444: echo "POD2MAN=$POD2MAN" >> $config_host_mak
1.1.1.11  root     3445: 
                   3446: # generate list of library paths for linker script
                   3447: 
                   3448: $ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}
                   3449: 
                   3450: if test -f ${config_host_ld}~ ; then
                   3451:   if cmp -s $config_host_ld ${config_host_ld}~ ; then
                   3452:     mv ${config_host_ld}~ $config_host_ld
1.1.1.9   root     3453:   else
1.1.1.11  root     3454:     rm ${config_host_ld}~
1.1.1.9   root     3455:   fi
                   3456: fi
1.1.1.6   root     3457: 
1.1.1.13  root     3458: for d in libdis libdis-user; do
                   3459:     mkdir -p $d
1.1.1.18! root     3460:     symlink "$source_path/Makefile.dis" "$d/Makefile"
1.1.1.13  root     3461:     echo > $d/config.mak
                   3462: done
                   3463: 
1.1.1.18! root     3464: # use included Linux headers
        !          3465: if test "$linux" = "yes" ; then
        !          3466:   mkdir -p linux-headers
        !          3467:   case "$cpu" in
        !          3468:   i386|x86_64)
        !          3469:     symlink "$source_path/linux-headers/asm-x86" linux-headers/asm
        !          3470:     ;;
        !          3471:   ppcemb|ppc|ppc64)
        !          3472:     symlink "$source_path/linux-headers/asm-powerpc" linux-headers/asm
        !          3473:     ;;
        !          3474:   s390x)
        !          3475:     symlink "$source_path/linux-headers/asm-s390" linux-headers/asm
        !          3476:     ;;
        !          3477:   esac
        !          3478: fi
        !          3479: 
1.1.1.2   root     3480: for target in $target_list; do
1.1       root     3481: target_dir="$target"
1.1.1.11  root     3482: config_target_mak=$target_dir/config-target.mak
1.1.1.9   root     3483: target_arch2=`echo $target | cut -d '-' -f 1`
1.1       root     3484: target_bigendian="no"
1.1.1.11  root     3485: 
1.1.1.9   root     3486: case "$target_arch2" in
1.1.1.17  root     3487:   armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb)
1.1.1.9   root     3488:   target_bigendian=yes
                   3489:   ;;
                   3490: esac
1.1       root     3491: target_softmmu="no"
                   3492: target_user_only="no"
1.1.1.5   root     3493: target_linux_user="no"
1.1.1.7   root     3494: target_bsd_user="no"
1.1.1.6   root     3495: case "$target" in
1.1.1.9   root     3496:   ${target_arch2}-softmmu)
1.1.1.6   root     3497:     target_softmmu="yes"
                   3498:     ;;
1.1.1.9   root     3499:   ${target_arch2}-linux-user)
1.1.1.11  root     3500:     if test "$linux" != "yes" ; then
                   3501:       echo "ERROR: Target '$target' is only available on a Linux host"
                   3502:       exit 1
                   3503:     fi
1.1.1.6   root     3504:     target_user_only="yes"
                   3505:     target_linux_user="yes"
                   3506:     ;;
1.1.1.9   root     3507:   ${target_arch2}-bsd-user)
1.1.1.11  root     3508:     if test "$bsd" != "yes" ; then
                   3509:       echo "ERROR: Target '$target' is only available on a BSD host"
                   3510:       exit 1
                   3511:     fi
1.1.1.7   root     3512:     target_user_only="yes"
                   3513:     target_bsd_user="yes"
                   3514:     ;;
1.1.1.6   root     3515:   *)
                   3516:     echo "ERROR: Target '$target' not recognised"
                   3517:     exit 1
                   3518:     ;;
                   3519: esac
1.1.1.5   root     3520: 
1.1       root     3521: mkdir -p $target_dir
                   3522: mkdir -p $target_dir/fpu
1.1.1.7   root     3523: mkdir -p $target_dir/tcg
1.1.1.11  root     3524: mkdir -p $target_dir/ide
1.1.1.18! root     3525: mkdir -p $target_dir/usb
1.1.1.16  root     3526: mkdir -p $target_dir/9pfs
1.1.1.18! root     3527: mkdir -p $target_dir/kvm
1.1.1.7   root     3528: if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
1.1       root     3529:   mkdir -p $target_dir/nwfpe
                   3530: fi
1.1.1.18! root     3531: symlink "$source_path/Makefile.target" "$target_dir/Makefile"
1.1.1.3   root     3532: 
1.1       root     3533: 
1.1.1.11  root     3534: echo "# Automatically generated by configure - do not modify" > $config_target_mak
1.1       root     3535: 
1.1.1.4   root     3536: bflt="no"
1.1.1.7   root     3537: target_nptl="no"
1.1.1.9   root     3538: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
1.1.1.7   root     3539: gdb_xml_files=""
1.1.1.16  root     3540: target_short_alignment=2
                   3541: target_int_alignment=4
                   3542: target_long_alignment=4
                   3543: target_llong_alignment=8
                   3544: target_libs_softmmu=
1.1       root     3545: 
1.1.1.9   root     3546: TARGET_ARCH="$target_arch2"
                   3547: TARGET_BASE_ARCH=""
                   3548: TARGET_ABI_DIR=""
1.1.1.7   root     3549: 
1.1.1.9   root     3550: case "$target_arch2" in
1.1.1.7   root     3551:   i386)
1.1.1.16  root     3552:     target_phys_bits=64
1.1.1.7   root     3553:   ;;
                   3554:   x86_64)
1.1.1.9   root     3555:     TARGET_BASE_ARCH=i386
                   3556:     target_phys_bits=64
1.1.1.16  root     3557:     target_long_alignment=8
1.1.1.7   root     3558:   ;;
                   3559:   alpha)
1.1.1.9   root     3560:     target_phys_bits=64
1.1.1.16  root     3561:     target_long_alignment=8
1.1.1.13  root     3562:     target_nptl="yes"
1.1.1.7   root     3563:   ;;
                   3564:   arm|armeb)
1.1.1.9   root     3565:     TARGET_ARCH=arm
1.1.1.7   root     3566:     bflt="yes"
                   3567:     target_nptl="yes"
                   3568:     gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
1.1.1.9   root     3569:     target_phys_bits=32
1.1.1.16  root     3570:     target_llong_alignment=4
1.1.1.18! root     3571:     target_libs_softmmu="$fdt_libs"
1.1.1.7   root     3572:   ;;
                   3573:   cris)
                   3574:     target_nptl="yes"
1.1.1.9   root     3575:     target_phys_bits=32
1.1.1.7   root     3576:   ;;
1.1.1.16  root     3577:   lm32)
                   3578:     target_phys_bits=32
                   3579:     target_libs_softmmu="$opengl_libs"
                   3580:   ;;
1.1.1.7   root     3581:   m68k)
                   3582:     bflt="yes"
                   3583:     gdb_xml_files="cf-core.xml cf-fp.xml"
1.1.1.9   root     3584:     target_phys_bits=32
1.1.1.16  root     3585:     target_int_alignment=2
                   3586:     target_long_alignment=2
                   3587:     target_llong_alignment=2
1.1.1.9   root     3588:   ;;
1.1.1.16  root     3589:   microblaze|microblazeel)
                   3590:     TARGET_ARCH=microblaze
1.1.1.9   root     3591:     bflt="yes"
                   3592:     target_nptl="yes"
                   3593:     target_phys_bits=32
1.1.1.16  root     3594:     target_libs_softmmu="$fdt_libs"
1.1.1.7   root     3595:   ;;
                   3596:   mips|mipsel)
1.1.1.9   root     3597:     TARGET_ARCH=mips
1.1.1.11  root     3598:     echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
1.1.1.9   root     3599:     target_nptl="yes"
                   3600:     target_phys_bits=64
1.1.1.7   root     3601:   ;;
                   3602:   mipsn32|mipsn32el)
1.1.1.9   root     3603:     TARGET_ARCH=mipsn32
                   3604:     TARGET_BASE_ARCH=mips
1.1.1.11  root     3605:     echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
1.1.1.9   root     3606:     target_phys_bits=64
1.1.1.7   root     3607:   ;;
                   3608:   mips64|mips64el)
1.1.1.9   root     3609:     TARGET_ARCH=mips64
                   3610:     TARGET_BASE_ARCH=mips
1.1.1.11  root     3611:     echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
1.1.1.9   root     3612:     target_phys_bits=64
1.1.1.16  root     3613:     target_long_alignment=8
1.1.1.7   root     3614:   ;;
                   3615:   ppc)
                   3616:     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.17  root     3617:     target_phys_bits=64
1.1.1.11  root     3618:     target_nptl="yes"
1.1.1.16  root     3619:     target_libs_softmmu="$fdt_libs"
1.1.1.7   root     3620:   ;;
                   3621:   ppcemb)
1.1.1.9   root     3622:     TARGET_BASE_ARCH=ppc
                   3623:     TARGET_ABI_DIR=ppc
1.1.1.7   root     3624:     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9   root     3625:     target_phys_bits=64
1.1.1.11  root     3626:     target_nptl="yes"
1.1.1.16  root     3627:     target_libs_softmmu="$fdt_libs"
1.1.1.7   root     3628:   ;;
                   3629:   ppc64)
1.1.1.9   root     3630:     TARGET_BASE_ARCH=ppc
                   3631:     TARGET_ABI_DIR=ppc
1.1.1.7   root     3632:     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9   root     3633:     target_phys_bits=64
1.1.1.16  root     3634:     target_long_alignment=8
                   3635:     target_libs_softmmu="$fdt_libs"
1.1.1.7   root     3636:   ;;
                   3637:   ppc64abi32)
1.1.1.9   root     3638:     TARGET_ARCH=ppc64
                   3639:     TARGET_BASE_ARCH=ppc
                   3640:     TARGET_ABI_DIR=ppc
1.1.1.11  root     3641:     echo "TARGET_ABI32=y" >> $config_target_mak
1.1.1.7   root     3642:     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9   root     3643:     target_phys_bits=64
1.1.1.16  root     3644:     target_libs_softmmu="$fdt_libs"
1.1.1.7   root     3645:   ;;
                   3646:   sh4|sh4eb)
1.1.1.9   root     3647:     TARGET_ARCH=sh4
1.1.1.7   root     3648:     bflt="yes"
                   3649:     target_nptl="yes"
1.1.1.9   root     3650:     target_phys_bits=32
1.1.1.7   root     3651:   ;;
                   3652:   sparc)
1.1.1.9   root     3653:     target_phys_bits=64
1.1.1.7   root     3654:   ;;
                   3655:   sparc64)
1.1.1.9   root     3656:     TARGET_BASE_ARCH=sparc
                   3657:     target_phys_bits=64
1.1.1.16  root     3658:     target_long_alignment=8
1.1.1.7   root     3659:   ;;
                   3660:   sparc32plus)
1.1.1.9   root     3661:     TARGET_ARCH=sparc64
                   3662:     TARGET_BASE_ARCH=sparc
                   3663:     TARGET_ABI_DIR=sparc
1.1.1.11  root     3664:     echo "TARGET_ABI32=y" >> $config_target_mak
                   3665:     target_phys_bits=64
                   3666:   ;;
                   3667:   s390x)
1.1.1.16  root     3668:     target_nptl="yes"
1.1.1.9   root     3669:     target_phys_bits=64
1.1.1.16  root     3670:     target_long_alignment=8
                   3671:   ;;
                   3672:   unicore32)
                   3673:     target_phys_bits=32
1.1.1.7   root     3674:   ;;
1.1.1.17  root     3675:   xtensa|xtensaeb)
                   3676:     TARGET_ARCH=xtensa
                   3677:     target_phys_bits=32
                   3678:   ;;
1.1.1.7   root     3679:   *)
                   3680:     echo "Unsupported target CPU"
                   3681:     exit 1
                   3682:   ;;
                   3683: esac
1.1.1.18! root     3684: 
        !          3685: case "$target_arch2" in
        !          3686:   alpha | sparc*)
        !          3687:     echo "CONFIG_TCG_PASS_AREG0=y" >> $config_target_mak
        !          3688:   ;;
        !          3689: esac
        !          3690: 
1.1.1.16  root     3691: echo "TARGET_SHORT_ALIGNMENT=$target_short_alignment" >> $config_target_mak
                   3692: echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak
                   3693: echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
                   3694: echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
1.1.1.11  root     3695: echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
1.1.1.18! root     3696: target_arch_name="`echo $TARGET_ARCH | LC_ALL=C tr '[a-z]' '[A-Z]'`"
1.1.1.11  root     3697: echo "TARGET_$target_arch_name=y" >> $config_target_mak
                   3698: echo "TARGET_ARCH2=$target_arch2" >> $config_target_mak
1.1.1.9   root     3699: # TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
                   3700: if [ "$TARGET_BASE_ARCH" = "" ]; then
                   3701:   TARGET_BASE_ARCH=$TARGET_ARCH
                   3702: fi
1.1.1.11  root     3703: echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
1.1.1.9   root     3704: if [ "$TARGET_ABI_DIR" = "" ]; then
                   3705:   TARGET_ABI_DIR=$TARGET_ARCH
                   3706: fi
1.1.1.11  root     3707: echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
1.1.1.9   root     3708: case "$target_arch2" in
                   3709:   i386|x86_64)
                   3710:     if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
1.1.1.16  root     3711:       target_phys_bits=64
1.1.1.11  root     3712:       echo "CONFIG_XEN=y" >> $config_target_mak
1.1.1.17  root     3713:     else
                   3714:       echo "CONFIG_NO_XEN=y" >> $config_target_mak
1.1.1.9   root     3715:     fi
1.1.1.17  root     3716:     ;;
                   3717:   *)
                   3718:     echo "CONFIG_NO_XEN=y" >> $config_target_mak
1.1.1.9   root     3719: esac
                   3720: case "$target_arch2" in
1.1.1.11  root     3721:   i386|x86_64|ppcemb|ppc|ppc64|s390x)
1.1.1.9   root     3722:     # Make sure the target and host cpus are compatible
                   3723:     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
                   3724:       \( "$target_arch2" = "$cpu" -o \
                   3725:       \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \
1.1.1.11  root     3726:       \( "$target_arch2" = "ppc64"  -a "$cpu" = "ppc" \) -o \
1.1.1.16  root     3727:       \( "$target_arch2" = "ppc"    -a "$cpu" = "ppc64" \) -o \
                   3728:       \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc64" \) -o \
1.1.1.9   root     3729:       \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
                   3730:       \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
1.1.1.11  root     3731:       echo "CONFIG_KVM=y" >> $config_target_mak
1.1.1.17  root     3732:       if test "$vhost_net" = "yes" ; then
1.1.1.13  root     3733:         echo "CONFIG_VHOST_NET=y" >> $config_target_mak
                   3734:       fi
1.1.1.9   root     3735:     fi
                   3736: esac
1.1.1.17  root     3737: if test "$target_arch2" = "ppc64" -a "$fdt" = "yes"; then
                   3738:   echo "CONFIG_PSERIES=y" >> $config_target_mak
                   3739: fi
1.1       root     3740: if test "$target_bigendian" = "yes" ; then
1.1.1.11  root     3741:   echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
1.1       root     3742: fi
                   3743: if test "$target_softmmu" = "yes" ; then
1.1.1.13  root     3744:   echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak
1.1.1.11  root     3745:   echo "CONFIG_SOFTMMU=y" >> $config_target_mak
1.1.1.16  root     3746:   echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak
1.1.1.13  root     3747:   echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak
1.1.1.11  root     3748:   echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
1.1.1.18! root     3749:   if test "$smartcard_nss" = "yes" ; then
        !          3750:     echo "subdir-$target: subdir-libcacard" >> $config_host_mak
        !          3751:   fi
1.1       root     3752: fi
                   3753: if test "$target_user_only" = "yes" ; then
1.1.1.11  root     3754:   echo "CONFIG_USER_ONLY=y" >> $config_target_mak
1.1.1.18! root     3755:   echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
1.1       root     3756: fi
1.1.1.5   root     3757: if test "$target_linux_user" = "yes" ; then
1.1.1.11  root     3758:   echo "CONFIG_LINUX_USER=y" >> $config_target_mak
1.1.1.5   root     3759: fi
1.1.1.7   root     3760: list=""
                   3761: if test ! -z "$gdb_xml_files" ; then
                   3762:   for x in $gdb_xml_files; do
                   3763:     list="$list $source_path/gdb-xml/$x"
                   3764:   done
1.1.1.11  root     3765:   echo "TARGET_XML_FILES=$list" >> $config_target_mak
1.1.1.7   root     3766: fi
                   3767: 
1.1.1.4   root     3768: if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1.1.1.11  root     3769:   echo "TARGET_HAS_BFLT=y" >> $config_target_mak
1.1.1.4   root     3770: fi
1.1.1.7   root     3771: if test "$target_user_only" = "yes" \
                   3772:         -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1.1.1.11  root     3773:   echo "CONFIG_USE_NPTL=y" >> $config_target_mak
1.1.1.7   root     3774: fi
1.1.1.11  root     3775: if test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then
                   3776:   echo "CONFIG_USE_GUEST_BASE=y" >> $config_target_mak
1.1       root     3777: fi
1.1.1.7   root     3778: if test "$target_bsd_user" = "yes" ; then
1.1.1.11  root     3779:   echo "CONFIG_BSD_USER=y" >> $config_target_mak
                   3780: fi
                   3781: 
                   3782: # generate QEMU_CFLAGS/LDFLAGS for targets
                   3783: 
                   3784: cflags=""
1.1.1.14  root     3785: includes=""
1.1.1.11  root     3786: ldflags=""
                   3787: 
1.1.1.17  root     3788: if test "$tcg_interpreter" = "yes"; then
                   3789:   includes="-I\$(SRC_PATH)/tcg/tci $includes"
                   3790: elif test "$ARCH" = "sparc64" ; then
1.1.1.14  root     3791:   includes="-I\$(SRC_PATH)/tcg/sparc $includes"
1.1.1.11  root     3792: elif test "$ARCH" = "s390x" ; then
1.1.1.14  root     3793:   includes="-I\$(SRC_PATH)/tcg/s390 $includes"
1.1.1.13  root     3794: elif test "$ARCH" = "x86_64" ; then
1.1.1.14  root     3795:   includes="-I\$(SRC_PATH)/tcg/i386 $includes"
1.1.1.11  root     3796: else
1.1.1.14  root     3797:   includes="-I\$(SRC_PATH)/tcg/\$(ARCH) $includes"
1.1.1.11  root     3798: fi
1.1.1.14  root     3799: includes="-I\$(SRC_PATH)/tcg $includes"
1.1.1.11  root     3800: 
1.1.1.18! root     3801: if test "$linux" = "yes" ; then
        !          3802:   includes="-I\$(SRC_PATH)/linux-headers $includes"
        !          3803: fi
        !          3804: 
1.1.1.13  root     3805: if test "$target_user_only" = "yes" ; then
                   3806:     libdis_config_mak=libdis-user/config.mak
                   3807: else
                   3808:     libdis_config_mak=libdis/config.mak
                   3809: fi
                   3810: 
1.1.1.11  root     3811: for i in $ARCH $TARGET_BASE_ARCH ; do
                   3812:   case "$i" in
                   3813:   alpha)
                   3814:     echo "CONFIG_ALPHA_DIS=y"  >> $config_target_mak
1.1.1.13  root     3815:     echo "CONFIG_ALPHA_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3816:   ;;
                   3817:   arm)
                   3818:     echo "CONFIG_ARM_DIS=y"  >> $config_target_mak
1.1.1.13  root     3819:     echo "CONFIG_ARM_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3820:   ;;
                   3821:   cris)
                   3822:     echo "CONFIG_CRIS_DIS=y"  >> $config_target_mak
1.1.1.13  root     3823:     echo "CONFIG_CRIS_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3824:   ;;
                   3825:   hppa)
                   3826:     echo "CONFIG_HPPA_DIS=y"  >> $config_target_mak
1.1.1.13  root     3827:     echo "CONFIG_HPPA_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3828:   ;;
                   3829:   i386|x86_64)
                   3830:     echo "CONFIG_I386_DIS=y"  >> $config_target_mak
1.1.1.13  root     3831:     echo "CONFIG_I386_DIS=y"  >> $libdis_config_mak
                   3832:   ;;
                   3833:   ia64*)
                   3834:     echo "CONFIG_IA64_DIS=y"  >> $config_target_mak
                   3835:     echo "CONFIG_IA64_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3836:   ;;
1.1.1.18! root     3837:   lm32)
        !          3838:     echo "CONFIG_LM32_DIS=y"  >> $config_target_mak
        !          3839:     echo "CONFIG_LM32_DIS=y"  >> $libdis_config_mak
        !          3840:   ;;
1.1.1.11  root     3841:   m68k)
                   3842:     echo "CONFIG_M68K_DIS=y"  >> $config_target_mak
1.1.1.13  root     3843:     echo "CONFIG_M68K_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3844:   ;;
1.1.1.16  root     3845:   microblaze*)
1.1.1.11  root     3846:     echo "CONFIG_MICROBLAZE_DIS=y"  >> $config_target_mak
1.1.1.13  root     3847:     echo "CONFIG_MICROBLAZE_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3848:   ;;
                   3849:   mips*)
                   3850:     echo "CONFIG_MIPS_DIS=y"  >> $config_target_mak
1.1.1.13  root     3851:     echo "CONFIG_MIPS_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3852:   ;;
                   3853:   ppc*)
                   3854:     echo "CONFIG_PPC_DIS=y"  >> $config_target_mak
1.1.1.13  root     3855:     echo "CONFIG_PPC_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3856:   ;;
                   3857:   s390*)
                   3858:     echo "CONFIG_S390_DIS=y"  >> $config_target_mak
1.1.1.13  root     3859:     echo "CONFIG_S390_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3860:   ;;
                   3861:   sh4)
                   3862:     echo "CONFIG_SH4_DIS=y"  >> $config_target_mak
1.1.1.13  root     3863:     echo "CONFIG_SH4_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3864:   ;;
                   3865:   sparc*)
                   3866:     echo "CONFIG_SPARC_DIS=y"  >> $config_target_mak
1.1.1.13  root     3867:     echo "CONFIG_SPARC_DIS=y"  >> $libdis_config_mak
1.1.1.11  root     3868:   ;;
1.1.1.17  root     3869:   xtensa*)
                   3870:     echo "CONFIG_XTENSA_DIS=y"  >> $config_target_mak
                   3871:     echo "CONFIG_XTENSA_DIS=y"  >> $libdis_config_mak
                   3872:   ;;
1.1.1.11  root     3873:   esac
                   3874: done
1.1.1.17  root     3875: if test "$tcg_interpreter" = "yes" ; then
                   3876:   echo "CONFIG_TCI_DIS=y"  >> $config_target_mak
                   3877:   echo "CONFIG_TCI_DIS=y"  >> $libdis_config_mak
                   3878: fi
1.1.1.11  root     3879: 
                   3880: case "$ARCH" in
                   3881: alpha)
                   3882:   # Ensure there's only a single GP
                   3883:   cflags="-msmall-data $cflags"
                   3884: ;;
                   3885: esac
                   3886: 
                   3887: if test "$target_softmmu" = "yes" ; then
                   3888:   case "$TARGET_BASE_ARCH" in
                   3889:   arm)
                   3890:     cflags="-DHAS_AUDIO $cflags"
                   3891:   ;;
1.1.1.16  root     3892:   lm32)
                   3893:     cflags="-DHAS_AUDIO $cflags"
                   3894:   ;;
1.1.1.11  root     3895:   i386|mips|ppc)
                   3896:     cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags"
                   3897:   ;;
                   3898:   esac
1.1.1.7   root     3899: fi
1.1       root     3900: 
1.1.1.11  root     3901: if test "$target_softmmu" = "yes" -a \( \
                   3902:         "$TARGET_ARCH" = "microblaze" -o \
                   3903:         "$TARGET_ARCH" = "cris" \) ; then
                   3904:   echo "CONFIG_NEED_MMU=y" >> $config_target_mak
                   3905: fi
                   3906: 
                   3907: if test "$gprof" = "yes" ; then
                   3908:   echo "TARGET_GPROF=yes" >> $config_target_mak
                   3909:   if test "$target_linux_user" = "yes" ; then
                   3910:     cflags="-p $cflags"
                   3911:     ldflags="-p $ldflags"
                   3912:   fi
                   3913:   if test "$target_softmmu" = "yes" ; then
                   3914:     ldflags="-p $ldflags"
                   3915:     echo "GPROF_CFLAGS=-p" >> $config_target_mak
                   3916:   fi
                   3917: fi
                   3918: 
1.1.1.17  root     3919: if test "$ARCH" = "tci"; then
                   3920:   linker_script=""
                   3921: else
                   3922:   linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
                   3923: fi
                   3924: 
1.1.1.11  root     3925: if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
                   3926:   case "$ARCH" in
                   3927:   sparc)
                   3928:     # -static is used to avoid g1/g3 usage by the dynamic linker
                   3929:     ldflags="$linker_script -static $ldflags"
                   3930:     ;;
1.1.1.13  root     3931:   alpha | s390x)
                   3932:     # The default placement of the application is fine.
1.1.1.11  root     3933:     ;;
1.1.1.13  root     3934:   *)
1.1.1.11  root     3935:     ldflags="$linker_script $ldflags"
                   3936:     ;;
                   3937:   esac
                   3938: fi
                   3939: 
                   3940: echo "LDFLAGS+=$ldflags" >> $config_target_mak
                   3941: echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
1.1.1.14  root     3942: echo "QEMU_INCLUDES+=$includes" >> $config_target_mak
1.1       root     3943: 
                   3944: done # for target in $targets
                   3945: 
1.1.1.14  root     3946: # build tree in object directory in case the source is not in the current directory
1.1.1.18! root     3947: DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32"
        !          3948: DIRS="$DIRS slirp audio block net pc-bios/optionrom"
1.1.1.16  root     3949: DIRS="$DIRS pc-bios/spapr-rtas"
1.1.1.14  root     3950: DIRS="$DIRS roms/seabios roms/vgabios"
1.1.1.18! root     3951: DIRS="$DIRS fsdev ui usb"
1.1.1.17  root     3952: DIRS="$DIRS qapi qapi-generated"
1.1.1.18! root     3953: DIRS="$DIRS qga trace qom"
        !          3954: FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
        !          3955: FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
        !          3956: FILES="$FILES tests/tcg/lm32/Makefile"
1.1.1.14  root     3957: FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
1.1.1.16  root     3958: FILES="$FILES pc-bios/spapr-rtas/Makefile"
1.1.1.14  root     3959: FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
1.1.1.17  root     3960: for bios_file in \
                   3961:     $source_path/pc-bios/*.bin \
                   3962:     $source_path/pc-bios/*.rom \
                   3963:     $source_path/pc-bios/*.dtb \
                   3964:     $source_path/pc-bios/openbios-* \
                   3965:     $source_path/pc-bios/palcode-*
                   3966: do
1.1.1.14  root     3967:     FILES="$FILES pc-bios/`basename $bios_file`"
                   3968: done
                   3969: mkdir -p $DIRS
                   3970: for f in $FILES ; do
1.1.1.18! root     3971:     if [ -e "$source_path/$f" ] && [ "$source_path" != `pwd` ]; then
1.1.1.16  root     3972:         symlink "$source_path/$f" "$f"
                   3973:     fi
1.1.1.14  root     3974: done
1.1.1.9   root     3975: 
1.1.1.11  root     3976: # temporary config to build submodules
                   3977: for rom in seabios vgabios ; do
                   3978:     config_mak=roms/$rom/config.mak
1.1.1.13  root     3979:     echo "# Automatically generated by configure - do not modify" > $config_mak
1.1.1.11  root     3980:     echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
                   3981:     echo "CC=$cc" >> $config_mak
                   3982:     echo "BCC=bcc" >> $config_mak
                   3983:     echo "CPP=${cross_prefix}cpp" >> $config_mak
                   3984:     echo "OBJCOPY=objcopy" >> $config_mak
                   3985:     echo "IASL=iasl" >> $config_mak
                   3986:     echo "LD=$ld" >> $config_mak
                   3987: done
                   3988: 
1.1.1.9   root     3989: for hwlib in 32 64; do
                   3990:   d=libhw$hwlib
                   3991:   mkdir -p $d
1.1.1.13  root     3992:   mkdir -p $d/ide
1.1.1.18! root     3993:   mkdir -p $d/usb
        !          3994:   symlink "$source_path/Makefile.hw" "$d/Makefile"
1.1.1.16  root     3995:   mkdir -p $d/9pfs
1.1.1.13  root     3996:   echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak
1.1.1.9   root     3997: done
1.1.1.11  root     3998: 
1.1.1.16  root     3999: if [ "$source_path" != `pwd` ]; then
                   4000:     # out of tree build
                   4001:     mkdir -p libcacard
                   4002:     symlink "$source_path/libcacard/Makefile" libcacard/Makefile
                   4003: fi
                   4004: 
1.1.1.11  root     4005: d=libuser
                   4006: mkdir -p $d
1.1.1.17  root     4007: mkdir -p $d/trace
1.1.1.18! root     4008: mkdir -p $d/qom
        !          4009: symlink "$source_path/Makefile.user" "$d/Makefile"
1.1.1.13  root     4010: 
                   4011: if test "$docs" = "yes" ; then
                   4012:   mkdir -p QMP
                   4013: fi

unix.superglobalmegacorp.com