File:  [Qemu by Fabrice Bellard] / qemu / configure
Revision 1.1.1.15 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:43:35 2018 UTC (18 months, 4 weeks ago) by root
Branches: qemu, MAIN
CVS tags: qemu0150, qemu0141, HEAD
qemu 0.14.1

    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"
   16: TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe"
   17: 
   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
   22: 
   23: compile_object() {
   24:   echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
   25:   $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
   26: }
   27: 
   28: compile_prog() {
   29:   local_cflags="$1"
   30:   local_ldflags="$2"
   31:   echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
   32:   $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
   33: }
   34: 
   35: # symbolically link $1 to $2.  Portable version of "ln -sf".
   36: symlink() {
   37:   rm -f $2
   38:   ln -s $1 $2
   39: }
   40: 
   41: # check whether a command is available to this shell (may be either an
   42: # executable or a builtin)
   43: has() {
   44:     type "$1" >/dev/null 2>&1
   45: }
   46: 
   47: # search for an executable in PATH
   48: path_of() {
   49:     local_command="$1"
   50:     local_ifs="$IFS"
   51:     local_dir=""
   52: 
   53:     # pathname has a dir component?
   54:     if [ "${local_command#*/}" != "$local_command" ]; then
   55:         if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then
   56:             echo "$local_command"
   57:             return 0
   58:         fi
   59:     fi
   60:     if [ -z "$local_command" ]; then
   61:         return 1
   62:     fi
   63: 
   64:     IFS=:
   65:     for local_dir in $PATH; do
   66:         if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then
   67:             echo "$local_dir/$local_command"
   68:             IFS="${local_ifs:-$(printf ' \t\n')}"
   69:             return 0
   70:         fi
   71:     done
   72:     # not found
   73:     IFS="${local_ifs:-$(printf ' \t\n')}"
   74:     return 1
   75: }
   76: 
   77: # default parameters
   78: source_path=`dirname "$0"`
   79: cpu=""
   80: interp_prefix="/usr/gnemul/qemu-%M"
   81: static="no"
   82: sparc_cpu=""
   83: cross_prefix=""
   84: audio_drv_list=""
   85: audio_card_list="ac97 es1370 sb16 hda"
   86: audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus hda"
   87: block_drv_whitelist=""
   88: host_cc="gcc"
   89: helper_cflags=""
   90: libs_softmmu=""
   91: libs_tools=""
   92: audio_pt_int=""
   93: audio_win_int=""
   94: cc_i386=i386-pc-linux-gnu-gcc
   95: 
   96: target_list=""
   97: 
   98: # Default value for a variable defining feature "foo".
   99: #  * foo="no"  feature will only be used if --enable-foo arg is given
  100: #  * foo=""    feature will be searched for, and if found, will be used
  101: #              unless --disable-foo is given
  102: #  * foo="yes" this value will only be set by --enable-foo flag.
  103: #              feature will searched for,
  104: #              if not found, configure exits with error
  105: #
  106: # Always add --enable-foo and --disable-foo command line args.
  107: # Distributions want to ensure that several features are compiled in, and it
  108: # is impossible without a --enable-foo that exits if a feature is not found.
  109: 
  110: bluez=""
  111: brlapi=""
  112: curl=""
  113: curses=""
  114: docs=""
  115: fdt=""
  116: kvm=""
  117: kvm_para=""
  118: nptl=""
  119: sdl=""
  120: sparse="no"
  121: uuid=""
  122: vde=""
  123: vnc_tls=""
  124: vnc_sasl=""
  125: vnc_jpeg=""
  126: vnc_png=""
  127: vnc_thread="no"
  128: xen=""
  129: linux_aio=""
  130: attr=""
  131: vhost_net=""
  132: xfs=""
  133: 
  134: gprof="no"
  135: debug_tcg="no"
  136: debug_mon="no"
  137: debug="no"
  138: strip_opt="yes"
  139: bigendian="no"
  140: mingw32="no"
  141: EXESUF=""
  142: prefix="/usr/local"
  143: mandir="\${prefix}/share/man"
  144: datadir="\${prefix}/share/qemu"
  145: docdir="\${prefix}/share/doc/qemu"
  146: bindir="\${prefix}/bin"
  147: sysconfdir="\${prefix}/etc"
  148: confsuffix="/qemu"
  149: slirp="yes"
  150: fmod_lib=""
  151: fmod_inc=""
  152: oss_lib=""
  153: bsd="no"
  154: linux="no"
  155: solaris="no"
  156: profiler="no"
  157: cocoa="no"
  158: softmmu="yes"
  159: linux_user="no"
  160: darwin_user="no"
  161: bsd_user="no"
  162: guest_base=""
  163: uname_release=""
  164: io_thread="no"
  165: mixemu="no"
  166: kerneldir=""
  167: aix="no"
  168: blobs="yes"
  169: pkgversion=""
  170: check_utests="no"
  171: user_pie="no"
  172: zero_malloc=""
  173: trace_backend="nop"
  174: trace_file="trace"
  175: spice=""
  176: rbd=""
  177: 
  178: # parse CC options first
  179: for opt do
  180:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
  181:   case "$opt" in
  182:   --cross-prefix=*) cross_prefix="$optarg"
  183:   ;;
  184:   --cc=*) CC="$optarg"
  185:   ;;
  186:   --source-path=*) source_path="$optarg"
  187:   ;;
  188:   --cpu=*) cpu="$optarg"
  189:   ;;
  190:   --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
  191:   ;;
  192:   --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
  193:   ;;
  194:   --sparc_cpu=*)
  195:     sparc_cpu="$optarg"
  196:     case $sparc_cpu in
  197:     v7|v8|v8plus|v8plusa)
  198:       cpu="sparc"
  199:     ;;
  200:     v9)
  201:       cpu="sparc64"
  202:     ;;
  203:     *)
  204:       echo "undefined SPARC architecture. Exiting";
  205:       exit 1
  206:     ;;
  207:     esac
  208:   ;;
  209:   esac
  210: done
  211: # OS specific
  212: # Using uname is really, really broken.  Once we have the right set of checks
  213: # we can eliminate it's usage altogether
  214: 
  215: cc="${cross_prefix}${CC-gcc}"
  216: ar="${cross_prefix}${AR-ar}"
  217: objcopy="${cross_prefix}${OBJCOPY-objcopy}"
  218: ld="${cross_prefix}${LD-ld}"
  219: strip="${cross_prefix}${STRIP-strip}"
  220: windres="${cross_prefix}${WINDRES-windres}"
  221: pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
  222: sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
  223: 
  224: # default flags for all hosts
  225: QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
  226: CFLAGS="-g $CFLAGS"
  227: QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
  228: QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
  229: QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
  230: QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
  231: QEMU_INCLUDES="-I. -I\$(SRC_PATH)"
  232: LDFLAGS="-g $LDFLAGS"
  233: 
  234: # make source path absolute
  235: source_path=`cd "$source_path"; pwd`
  236: 
  237: check_define() {
  238: cat > $TMPC <<EOF
  239: #if !defined($1)
  240: #error Not defined
  241: #endif
  242: int main(void) { return 0; }
  243: EOF
  244:   compile_object
  245: }
  246: 
  247: if test ! -z "$cpu" ; then
  248:   # command line argument
  249:   :
  250: elif check_define __i386__ ; then
  251:   cpu="i386"
  252: elif check_define __x86_64__ ; then
  253:   cpu="x86_64"
  254: elif check_define __sparc__ ; then
  255:   # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
  256:   # They must be specified using --sparc_cpu
  257:   if check_define __arch64__ ; then
  258:     cpu="sparc64"
  259:   else
  260:     cpu="sparc"
  261:   fi
  262: elif check_define _ARCH_PPC ; then
  263:   if check_define _ARCH_PPC64 ; then
  264:     cpu="ppc64"
  265:   else
  266:     cpu="ppc"
  267:   fi
  268: elif check_define __mips__ ; then
  269:   cpu="mips"
  270: elif check_define __ia64__ ; then
  271:   cpu="ia64"
  272: elif check_define __s390__ ; then
  273:   if check_define __s390x__ ; then
  274:     cpu="s390x"
  275:   else
  276:     cpu="s390"
  277:   fi
  278: else
  279:   cpu=`uname -m`
  280: fi
  281: 
  282: case "$cpu" in
  283:   alpha|cris|ia64|m68k|microblaze|ppc|ppc64|sparc64)
  284:     cpu="$cpu"
  285:   ;;
  286:   i386|i486|i586|i686|i86pc|BePC)
  287:     cpu="i386"
  288:   ;;
  289:   x86_64|amd64)
  290:     cpu="x86_64"
  291:   ;;
  292:   armv*b)
  293:     cpu="armv4b"
  294:   ;;
  295:   armv*l)
  296:     cpu="armv4l"
  297:   ;;
  298:   parisc|parisc64)
  299:     cpu="hppa"
  300:   ;;
  301:   mips*)
  302:     cpu="mips"
  303:   ;;
  304:   s390)
  305:     cpu="s390"
  306:   ;;
  307:   s390x)
  308:     cpu="s390x"
  309:   ;;
  310:   sparc|sun4[cdmuv])
  311:     cpu="sparc"
  312:   ;;
  313:   *)
  314:     echo "Unsupported CPU = $cpu"
  315:     exit 1
  316:   ;;
  317: esac
  318: 
  319: # OS specific
  320: if check_define __linux__ ; then
  321:   targetos="Linux"
  322: elif check_define _WIN32 ; then
  323:   targetos='MINGW32'
  324: elif check_define __OpenBSD__ ; then
  325:   targetos='OpenBSD'
  326: elif check_define __sun__ ; then
  327:   targetos='SunOS'
  328: elif check_define __HAIKU__ ; then
  329:   targetos='Haiku'
  330: else
  331:   targetos=`uname -s`
  332: fi
  333: 
  334: case $targetos in
  335: CYGWIN*)
  336:   mingw32="yes"
  337:   QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
  338:   audio_possible_drivers="winwave sdl"
  339:   audio_drv_list="winwave"
  340: ;;
  341: MINGW32*)
  342:   mingw32="yes"
  343:   audio_possible_drivers="winwave dsound sdl fmod"
  344:   audio_drv_list="winwave"
  345: ;;
  346: GNU/kFreeBSD)
  347:   bsd="yes"
  348:   audio_drv_list="oss"
  349:   audio_possible_drivers="oss sdl esd pa"
  350: ;;
  351: FreeBSD)
  352:   bsd="yes"
  353:   make="${MAKE-gmake}"
  354:   audio_drv_list="oss"
  355:   audio_possible_drivers="oss sdl esd pa"
  356:   # needed for kinfo_getvmmap(3) in libutil.h
  357:   LIBS="-lutil $LIBS"
  358: ;;
  359: DragonFly)
  360:   bsd="yes"
  361:   make="${MAKE-gmake}"
  362:   audio_drv_list="oss"
  363:   audio_possible_drivers="oss sdl esd pa"
  364: ;;
  365: NetBSD)
  366:   bsd="yes"
  367:   make="${MAKE-gmake}"
  368:   audio_drv_list="oss"
  369:   audio_possible_drivers="oss sdl esd"
  370:   oss_lib="-lossaudio"
  371: ;;
  372: OpenBSD)
  373:   bsd="yes"
  374:   make="${MAKE-gmake}"
  375:   audio_drv_list="oss"
  376:   audio_possible_drivers="oss sdl esd"
  377:   oss_lib="-lossaudio"
  378: ;;
  379: Darwin)
  380:   bsd="yes"
  381:   darwin="yes"
  382:   # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can
  383:   # run 64-bit userspace code
  384:   if [ "$cpu" = "i386" ] ; then
  385:     is_x86_64=`sysctl -n hw.optional.x86_64`
  386:     [ "$is_x86_64" = "1" ] && cpu=x86_64
  387:   fi
  388:   if [ "$cpu" = "x86_64" ] ; then
  389:     QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
  390:     LDFLAGS="-arch x86_64 $LDFLAGS"
  391:   else
  392:     QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS"
  393:   fi
  394:   darwin_user="yes"
  395:   cocoa="yes"
  396:   audio_drv_list="coreaudio"
  397:   audio_possible_drivers="coreaudio sdl fmod"
  398:   LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
  399:   libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
  400: ;;
  401: SunOS)
  402:   solaris="yes"
  403:   make="${MAKE-gmake}"
  404:   install="${INSTALL-ginstall}"
  405:   ld="gld"
  406:   needs_libsunmath="no"
  407:   solarisrev=`uname -r | cut -f2 -d.`
  408:   # have to select again, because `uname -m` returns i86pc
  409:   # even on an x86_64 box.
  410:   solariscpu=`isainfo -k`
  411:   if test "${solariscpu}" = "amd64" ; then
  412:     cpu="x86_64"
  413:   fi
  414:   if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  415:     if test "$solarisrev" -le 9 ; then
  416:       if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
  417:         needs_libsunmath="yes"
  418:         QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
  419:         LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
  420:         LIBS="-lsunmath $LIBS"
  421:       else
  422:         echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
  423:         echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
  424:         echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
  425:         echo "Studio 11 can be downloaded from www.sun.com."
  426:         exit 1
  427:       fi
  428:     fi
  429:   fi
  430:   if test -f /usr/include/sys/soundcard.h ; then
  431:     audio_drv_list="oss"
  432:   fi
  433:   audio_possible_drivers="oss sdl"
  434: # needed for CMSG_ macros in sys/socket.h
  435:   QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
  436: # needed for TIOCWIN* defines in termios.h
  437:   QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
  438:   QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
  439:   LIBS="-lsocket -lnsl -lresolv $LIBS"
  440: ;;
  441: AIX)
  442:   aix="yes"
  443:   make="${MAKE-gmake}"
  444: ;;
  445: Haiku)
  446:   haiku="yes"
  447:   QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
  448:   LIBS="-lposix_error_mapper -lnetwork $LIBS"
  449: ;;
  450: *)
  451:   audio_drv_list="oss"
  452:   audio_possible_drivers="oss alsa sdl esd pa"
  453:   linux="yes"
  454:   linux_user="yes"
  455:   usb="linux"
  456:   if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  457:     audio_possible_drivers="$audio_possible_drivers fmod"
  458:   fi
  459: ;;
  460: esac
  461: 
  462: if [ "$bsd" = "yes" ] ; then
  463:   if [ "$darwin" != "yes" ] ; then
  464:     usb="bsd"
  465:   fi
  466:   bsd_user="yes"
  467: fi
  468: 
  469: : ${make=${MAKE-make}}
  470: : ${install=${INSTALL-install}}
  471: 
  472: if test "$mingw32" = "yes" ; then
  473:   EXESUF=".exe"
  474:   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
  475:   # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
  476:   QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
  477:   LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
  478:   prefix="c:/Program Files/Qemu"
  479:   mandir="\${prefix}"
  480:   datadir="\${prefix}"
  481:   docdir="\${prefix}"
  482:   bindir="\${prefix}"
  483:   sysconfdir="\${prefix}"
  484:   confsuffix=""
  485: fi
  486: 
  487: werror=""
  488: 
  489: for opt do
  490:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
  491:   case "$opt" in
  492:   --help|-h) show_help=yes
  493:   ;;
  494:   --prefix=*) prefix="$optarg"
  495:   ;;
  496:   --interp-prefix=*) interp_prefix="$optarg"
  497:   ;;
  498:   --source-path=*)
  499:   ;;
  500:   --cross-prefix=*)
  501:   ;;
  502:   --cc=*)
  503:   ;;
  504:   --host-cc=*) host_cc="$optarg"
  505:   ;;
  506:   --make=*) make="$optarg"
  507:   ;;
  508:   --install=*) install="$optarg"
  509:   ;;
  510:   --extra-cflags=*)
  511:   ;;
  512:   --extra-ldflags=*)
  513:   ;;
  514:   --cpu=*)
  515:   ;;
  516:   --target-list=*) target_list="$optarg"
  517:   ;;
  518:   --enable-trace-backend=*) trace_backend="$optarg"
  519:   ;;
  520:   --with-trace-file=*) trace_file="$optarg"
  521:   ;;
  522:   --enable-gprof) gprof="yes"
  523:   ;;
  524:   --static)
  525:     static="yes"
  526:     LDFLAGS="-static $LDFLAGS"
  527:   ;;
  528:   --mandir=*) mandir="$optarg"
  529:   ;;
  530:   --bindir=*) bindir="$optarg"
  531:   ;;
  532:   --datadir=*) datadir="$optarg"
  533:   ;;
  534:   --docdir=*) docdir="$optarg"
  535:   ;;
  536:   --sysconfdir=*) sysconfdir="$optarg"
  537:   ;;
  538:   --disable-sdl) sdl="no"
  539:   ;;
  540:   --enable-sdl) sdl="yes"
  541:   ;;
  542:   --fmod-lib=*) fmod_lib="$optarg"
  543:   ;;
  544:   --fmod-inc=*) fmod_inc="$optarg"
  545:   ;;
  546:   --oss-lib=*) oss_lib="$optarg"
  547:   ;;
  548:   --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
  549:   ;;
  550:   --audio-drv-list=*) audio_drv_list="$optarg"
  551:   ;;
  552:   --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
  553:   ;;
  554:   --enable-debug-tcg) debug_tcg="yes"
  555:   ;;
  556:   --disable-debug-tcg) debug_tcg="no"
  557:   ;;
  558:   --enable-debug-mon) debug_mon="yes"
  559:   ;;
  560:   --disable-debug-mon) debug_mon="no"
  561:   ;;
  562:   --enable-debug)
  563:       # Enable debugging options that aren't excessively noisy
  564:       debug_tcg="yes"
  565:       debug_mon="yes"
  566:       debug="yes"
  567:       strip_opt="no"
  568:   ;;
  569:   --enable-sparse) sparse="yes"
  570:   ;;
  571:   --disable-sparse) sparse="no"
  572:   ;;
  573:   --disable-strip) strip_opt="no"
  574:   ;;
  575:   --disable-vnc-tls) vnc_tls="no"
  576:   ;;
  577:   --enable-vnc-tls) vnc_tls="yes"
  578:   ;;
  579:   --disable-vnc-sasl) vnc_sasl="no"
  580:   ;;
  581:   --enable-vnc-sasl) vnc_sasl="yes"
  582:   ;;
  583:   --disable-vnc-jpeg) vnc_jpeg="no"
  584:   ;;
  585:   --enable-vnc-jpeg) vnc_jpeg="yes"
  586:   ;;
  587:   --disable-vnc-png) vnc_png="no"
  588:   ;;
  589:   --enable-vnc-png) vnc_png="yes"
  590:   ;;
  591:   --disable-vnc-thread) vnc_thread="no"
  592:   ;;
  593:   --enable-vnc-thread) vnc_thread="yes"
  594:   ;;
  595:   --disable-slirp) slirp="no"
  596:   ;;
  597:   --disable-uuid) uuid="no"
  598:   ;;
  599:   --enable-uuid) uuid="yes"
  600:   ;;
  601:   --disable-vde) vde="no"
  602:   ;;
  603:   --enable-vde) vde="yes"
  604:   ;;
  605:   --disable-xen) xen="no"
  606:   ;;
  607:   --enable-xen) xen="yes"
  608:   ;;
  609:   --disable-brlapi) brlapi="no"
  610:   ;;
  611:   --enable-brlapi) brlapi="yes"
  612:   ;;
  613:   --disable-bluez) bluez="no"
  614:   ;;
  615:   --enable-bluez) bluez="yes"
  616:   ;;
  617:   --disable-kvm) kvm="no"
  618:   ;;
  619:   --enable-kvm) kvm="yes"
  620:   ;;
  621:   --disable-spice) spice="no"
  622:   ;;
  623:   --enable-spice) spice="yes"
  624:   ;;
  625:   --enable-profiler) profiler="yes"
  626:   ;;
  627:   --enable-cocoa)
  628:       cocoa="yes" ;
  629:       sdl="no" ;
  630:       audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
  631:   ;;
  632:   --disable-system) softmmu="no"
  633:   ;;
  634:   --enable-system) softmmu="yes"
  635:   ;;
  636:   --disable-user)
  637:       linux_user="no" ;
  638:       bsd_user="no" ;
  639:       darwin_user="no"
  640:   ;;
  641:   --enable-user) ;;
  642:   --disable-linux-user) linux_user="no"
  643:   ;;
  644:   --enable-linux-user) linux_user="yes"
  645:   ;;
  646:   --disable-darwin-user) darwin_user="no"
  647:   ;;
  648:   --enable-darwin-user) darwin_user="yes"
  649:   ;;
  650:   --disable-bsd-user) bsd_user="no"
  651:   ;;
  652:   --enable-bsd-user) bsd_user="yes"
  653:   ;;
  654:   --enable-guest-base) guest_base="yes"
  655:   ;;
  656:   --disable-guest-base) guest_base="no"
  657:   ;;
  658:   --enable-user-pie) user_pie="yes"
  659:   ;;
  660:   --disable-user-pie) user_pie="no"
  661:   ;;
  662:   --enable-uname-release=*) uname_release="$optarg"
  663:   ;;
  664:   --sparc_cpu=*)
  665:   ;;
  666:   --enable-werror) werror="yes"
  667:   ;;
  668:   --disable-werror) werror="no"
  669:   ;;
  670:   --disable-curses) curses="no"
  671:   ;;
  672:   --enable-curses) curses="yes"
  673:   ;;
  674:   --disable-curl) curl="no"
  675:   ;;
  676:   --enable-curl) curl="yes"
  677:   ;;
  678:   --disable-fdt) fdt="no"
  679:   ;;
  680:   --enable-fdt) fdt="yes"
  681:   ;;
  682:   --disable-check-utests) check_utests="no"
  683:   ;;
  684:   --enable-check-utests) check_utests="yes"
  685:   ;;
  686:   --disable-nptl) nptl="no"
  687:   ;;
  688:   --enable-nptl) nptl="yes"
  689:   ;;
  690:   --enable-mixemu) mixemu="yes"
  691:   ;;
  692:   --disable-linux-aio) linux_aio="no"
  693:   ;;
  694:   --enable-linux-aio) linux_aio="yes"
  695:   ;;
  696:   --disable-attr) attr="no"
  697:   ;;
  698:   --enable-attr) attr="yes"
  699:   ;;
  700:   --enable-io-thread) io_thread="yes"
  701:   ;;
  702:   --disable-blobs) blobs="no"
  703:   ;;
  704:   --kerneldir=*) kerneldir="$optarg"
  705:   ;;
  706:   --with-pkgversion=*) pkgversion=" ($optarg)"
  707:   ;;
  708:   --disable-docs) docs="no"
  709:   ;;
  710:   --enable-docs) docs="yes"
  711:   ;;
  712:   --disable-vhost-net) vhost_net="no"
  713:   ;;
  714:   --enable-vhost-net) vhost_net="yes"
  715:   ;;
  716:   --*dir)
  717:   ;;
  718:   --disable-rbd) rbd="no"
  719:   ;;
  720:   --enable-rbd) rbd="yes"
  721:   ;;
  722:   *) echo "ERROR: unknown option $opt"; show_help="yes"
  723:   ;;
  724:   esac
  725: done
  726: 
  727: #
  728: # If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
  729: # QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
  730: #
  731: host_guest_base="no"
  732: case "$cpu" in
  733:     sparc) case $sparc_cpu in
  734:            v7|v8)
  735:              QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
  736:            ;;
  737:            v8plus|v8plusa)
  738:              QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
  739:            ;;
  740:            *) # sparc_cpu not defined in the command line
  741:              QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
  742:            esac
  743:            LDFLAGS="-m32 $LDFLAGS"
  744:            QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
  745:            if test "$solaris" = "no" ; then
  746:              QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS"
  747:              helper_cflags="-ffixed-i0"
  748:            fi
  749:            ;;
  750:     sparc64)
  751:            QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
  752:            LDFLAGS="-m64 $LDFLAGS"
  753:            QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
  754:            if test "$solaris" != "no" ; then
  755:              QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
  756:            fi
  757:            ;;
  758:     s390)
  759:            QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS"
  760:            LDFLAGS="-m31 $LDFLAGS"
  761:            host_guest_base="yes"
  762:            ;;
  763:     s390x)
  764:            QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS"
  765:            LDFLAGS="-m64 $LDFLAGS"
  766:            host_guest_base="yes"
  767:            ;;
  768:     i386)
  769:            QEMU_CFLAGS="-m32 $QEMU_CFLAGS"
  770:            LDFLAGS="-m32 $LDFLAGS"
  771:            cc_i386='$(CC) -m32'
  772:            helper_cflags="-fomit-frame-pointer"
  773:            host_guest_base="yes"
  774:            ;;
  775:     x86_64)
  776:            QEMU_CFLAGS="-m64 $QEMU_CFLAGS"
  777:            LDFLAGS="-m64 $LDFLAGS"
  778:            cc_i386='$(CC) -m32'
  779:            host_guest_base="yes"
  780:            ;;
  781:     arm*)
  782:            host_guest_base="yes"
  783:            ;;
  784:     ppc*)
  785:            host_guest_base="yes"
  786:            ;;
  787:     mips*)
  788:            host_guest_base="yes"
  789:            ;;
  790:     ia64*)
  791:            host_guest_base="yes"
  792:            ;;
  793:     hppa*)
  794:            host_guest_base="yes"
  795:            ;;
  796: esac
  797: 
  798: [ -z "$guest_base" ] && guest_base="$host_guest_base"
  799: 
  800: if test x"$show_help" = x"yes" ; then
  801: cat << EOF
  802: 
  803: Usage: configure [options]
  804: Options: [defaults in brackets after descriptions]
  805: 
  806: EOF
  807: echo "Standard options:"
  808: echo "  --help                   print this message"
  809: echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
  810: echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
  811: echo "                           use %M for cpu name [$interp_prefix]"
  812: echo "  --target-list=LIST       set target list [$target_list]"
  813: echo ""
  814: echo "Advanced options (experts only):"
  815: echo "  --source-path=PATH       path of source code [$source_path]"
  816: echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
  817: echo "  --cc=CC                  use C compiler CC [$cc]"
  818: echo "  --host-cc=CC             use C compiler CC [$host_cc] for code run at"
  819: echo "                           build time"
  820: echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
  821: echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
  822: echo "  --make=MAKE              use specified make [$make]"
  823: echo "  --install=INSTALL        use specified install [$install]"
  824: echo "  --static                 enable static build [$static]"
  825: echo "  --mandir=PATH            install man pages in PATH"
  826: echo "  --datadir=PATH           install firmware in PATH"
  827: echo "  --docdir=PATH            install documentation in PATH"
  828: echo "  --bindir=PATH            install binaries in PATH"
  829: echo "  --sysconfdir=PATH        install config in PATH/qemu"
  830: echo "  --enable-debug-tcg       enable TCG debugging"
  831: echo "  --disable-debug-tcg      disable TCG debugging (default)"
  832: echo "  --enable-debug           enable common debug build options"
  833: echo "  --enable-sparse          enable sparse checker"
  834: echo "  --disable-sparse         disable sparse checker (default)"
  835: echo "  --disable-strip          disable stripping binaries"
  836: echo "  --disable-werror         disable compilation abort on warning"
  837: echo "  --disable-sdl            disable SDL"
  838: echo "  --enable-sdl             enable SDL"
  839: echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
  840: echo "  --audio-drv-list=LIST    set audio drivers list:"
  841: echo "                           Available drivers: $audio_possible_drivers"
  842: echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
  843: echo "                           Available cards: $audio_possible_cards"
  844: echo "  --block-drv-whitelist=L  set block driver whitelist"
  845: echo "                           (affects only QEMU, not qemu-img)"
  846: echo "  --enable-mixemu          enable mixer emulation"
  847: echo "  --disable-xen            disable xen backend driver support"
  848: echo "  --enable-xen             enable xen backend driver support"
  849: echo "  --disable-brlapi         disable BrlAPI"
  850: echo "  --enable-brlapi          enable BrlAPI"
  851: echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
  852: echo "  --enable-vnc-tls         enable TLS encryption for VNC server"
  853: echo "  --disable-vnc-sasl       disable SASL encryption for VNC server"
  854: echo "  --enable-vnc-sasl        enable SASL encryption for VNC server"
  855: echo "  --disable-vnc-jpeg       disable JPEG lossy compression for VNC server"
  856: echo "  --enable-vnc-jpeg        enable JPEG lossy compression for VNC server"
  857: echo "  --disable-vnc-png        disable PNG compression for VNC server (default)"
  858: echo "  --enable-vnc-png         enable PNG compression for VNC server"
  859: echo "  --disable-vnc-thread     disable threaded VNC server"
  860: echo "  --enable-vnc-thread      enable threaded VNC server"
  861: echo "  --disable-curses         disable curses output"
  862: echo "  --enable-curses          enable curses output"
  863: echo "  --disable-curl           disable curl connectivity"
  864: echo "  --enable-curl            enable curl connectivity"
  865: echo "  --disable-fdt            disable fdt device tree"
  866: echo "  --enable-fdt             enable fdt device tree"
  867: echo "  --disable-check-utests   disable check unit-tests"
  868: echo "  --enable-check-utests    enable check unit-tests"
  869: echo "  --disable-bluez          disable bluez stack connectivity"
  870: echo "  --enable-bluez           enable bluez stack connectivity"
  871: echo "  --disable-kvm            disable KVM acceleration support"
  872: echo "  --enable-kvm             enable KVM acceleration support"
  873: echo "  --disable-nptl           disable usermode NPTL support"
  874: echo "  --enable-nptl            enable usermode NPTL support"
  875: echo "  --enable-system          enable all system emulation targets"
  876: echo "  --disable-system         disable all system emulation targets"
  877: echo "  --enable-user            enable supported user emulation targets"
  878: echo "  --disable-user           disable all user emulation targets"
  879: echo "  --enable-linux-user      enable all linux usermode emulation targets"
  880: echo "  --disable-linux-user     disable all linux usermode emulation targets"
  881: echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
  882: echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
  883: echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
  884: echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
  885: echo "  --enable-guest-base      enable GUEST_BASE support for usermode"
  886: echo "                           emulation targets"
  887: echo "  --disable-guest-base     disable GUEST_BASE support"
  888: echo "  --enable-user-pie        build usermode emulation targets as PIE"
  889: echo "  --disable-user-pie       do not build usermode emulation targets as PIE"
  890: echo "  --fmod-lib               path to FMOD library"
  891: echo "  --fmod-inc               path to FMOD includes"
  892: echo "  --oss-lib                path to OSS library"
  893: echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
  894: echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
  895: echo "  --disable-uuid           disable uuid support"
  896: echo "  --enable-uuid            enable uuid support"
  897: echo "  --disable-vde            disable support for vde network"
  898: echo "  --enable-vde             enable support for vde network"
  899: echo "  --disable-linux-aio      disable Linux AIO support"
  900: echo "  --enable-linux-aio       enable Linux AIO support"
  901: echo "  --disable-attr           disables attr and xattr support"
  902: echo "  --enable-attr            enable attr and xattr support"
  903: echo "  --enable-io-thread       enable IO thread"
  904: echo "  --disable-blobs          disable installing provided firmware blobs"
  905: echo "  --kerneldir=PATH         look for kernel includes in PATH"
  906: echo "  --enable-docs            enable documentation build"
  907: echo "  --disable-docs           disable documentation build"
  908: echo "  --disable-vhost-net      disable vhost-net acceleration support"
  909: echo "  --enable-vhost-net       enable vhost-net acceleration support"
  910: echo "  --enable-trace-backend=B Set trace backend"
  911: echo "                           Available backends:" $("$source_path"/scripts/tracetool --list-backends)
  912: echo "  --with-trace-file=NAME   Full PATH,NAME of file to store traces"
  913: echo "                           Default:trace-<pid>"
  914: echo "  --disable-spice          disable spice"
  915: echo "  --enable-spice           enable spice"
  916: echo "  --enable-rbd             enable building the rados block device (rbd)"
  917: echo ""
  918: echo "NOTE: The object files are built at the place where configure is launched"
  919: exit 1
  920: fi
  921: 
  922: # check that the C compiler works.
  923: cat > $TMPC <<EOF
  924: int main(void) {}
  925: EOF
  926: 
  927: if compile_object ; then
  928:   : C compiler works ok
  929: else
  930:     echo "ERROR: \"$cc\" either does not exist or does not work"
  931:     exit 1
  932: fi
  933: 
  934: gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
  935: gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
  936: gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
  937: gcc_flags="-fstack-protector-all $gcc_flags"
  938: cat > $TMPC << EOF
  939: int main(void) { return 0; }
  940: EOF
  941: for flag in $gcc_flags; do
  942:     if compile_prog "-Werror $QEMU_CFLAGS" "-Werror $flag" ; then
  943: 	QEMU_CFLAGS="$QEMU_CFLAGS $flag"
  944:     fi
  945: done
  946: 
  947: #
  948: # Solaris specific configure tool chain decisions
  949: #
  950: if test "$solaris" = "yes" ; then
  951:   if has $install; then
  952:     :
  953:   else
  954:     echo "Solaris install program not found. Use --install=/usr/ucb/install or"
  955:     echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
  956:     echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
  957:     exit 1
  958:   fi
  959:   if test "`path_of $install`" = "/usr/sbin/install" ; then
  960:     echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
  961:     echo "try ginstall from the GNU fileutils available from www.blastwave.org"
  962:     echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
  963:     exit 1
  964:   fi
  965:   if has ar; then
  966:     :
  967:   else
  968:     echo "Error: No path includes ar"
  969:     if test -f /usr/ccs/bin/ar ; then
  970:       echo "Add /usr/ccs/bin to your path and rerun configure"
  971:     fi
  972:     exit 1
  973:   fi
  974: fi
  975: 
  976: 
  977: if test -z "$target_list" ; then
  978: # these targets are portable
  979:     if [ "$softmmu" = "yes" ] ; then
  980:         target_list="\
  981: i386-softmmu \
  982: x86_64-softmmu \
  983: arm-softmmu \
  984: cris-softmmu \
  985: m68k-softmmu \
  986: microblaze-softmmu \
  987: mips-softmmu \
  988: mipsel-softmmu \
  989: mips64-softmmu \
  990: mips64el-softmmu \
  991: ppc-softmmu \
  992: ppcemb-softmmu \
  993: ppc64-softmmu \
  994: sh4-softmmu \
  995: sh4eb-softmmu \
  996: sparc-softmmu \
  997: sparc64-softmmu \
  998: "
  999:     fi
 1000: # the following are Linux specific
 1001:     if [ "$linux_user" = "yes" ] ; then
 1002:         target_list="${target_list}\
 1003: i386-linux-user \
 1004: x86_64-linux-user \
 1005: alpha-linux-user \
 1006: arm-linux-user \
 1007: armeb-linux-user \
 1008: cris-linux-user \
 1009: m68k-linux-user \
 1010: microblaze-linux-user \
 1011: mips-linux-user \
 1012: mipsel-linux-user \
 1013: ppc-linux-user \
 1014: ppc64-linux-user \
 1015: ppc64abi32-linux-user \
 1016: sh4-linux-user \
 1017: sh4eb-linux-user \
 1018: sparc-linux-user \
 1019: sparc64-linux-user \
 1020: sparc32plus-linux-user \
 1021: "
 1022:     fi
 1023: # the following are Darwin specific
 1024:     if [ "$darwin_user" = "yes" ] ; then
 1025:         target_list="$target_list i386-darwin-user ppc-darwin-user "
 1026:     fi
 1027: # the following are BSD specific
 1028:     if [ "$bsd_user" = "yes" ] ; then
 1029:         target_list="${target_list}\
 1030: i386-bsd-user \
 1031: x86_64-bsd-user \
 1032: sparc-bsd-user \
 1033: sparc64-bsd-user \
 1034: "
 1035:     fi
 1036: else
 1037:     target_list=`echo "$target_list" | sed -e 's/,/ /g'`
 1038: fi
 1039: if test -z "$target_list" ; then
 1040:     echo "No targets enabled"
 1041:     exit 1
 1042: fi
 1043: # see if system emulation was really requested
 1044: case " $target_list " in
 1045:   *"-softmmu "*) softmmu=yes
 1046:   ;;
 1047:   *) softmmu=no
 1048:   ;;
 1049: esac
 1050: 
 1051: feature_not_found() {
 1052:   feature=$1
 1053: 
 1054:   echo "ERROR"
 1055:   echo "ERROR: User requested feature $feature"
 1056:   echo "ERROR: configure was not able to find it"
 1057:   echo "ERROR"
 1058:   exit 1;
 1059: }
 1060: 
 1061: if test -z "$cross_prefix" ; then
 1062: 
 1063: # ---
 1064: # big/little endian test
 1065: cat > $TMPC << EOF
 1066: #include <inttypes.h>
 1067: int main(int argc, char ** argv){
 1068:         volatile uint32_t i=0x01234567;
 1069:         return (*((uint8_t*)(&i))) == 0x67;
 1070: }
 1071: EOF
 1072: 
 1073: if compile_prog "" "" ; then
 1074: $TMPE && bigendian="yes"
 1075: else
 1076: echo big/little test failed
 1077: fi
 1078: 
 1079: else
 1080: 
 1081: # if cross compiling, cannot launch a program, so make a static guess
 1082: case "$cpu" in
 1083:   armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
 1084:     bigendian=yes
 1085:   ;;
 1086: esac
 1087: 
 1088: fi
 1089: 
 1090: # host long bits test, actually a pointer size test
 1091: cat > $TMPC << EOF
 1092: int sizeof_pointer_is_8[sizeof(void *) == 8 ? 1 : -1];
 1093: EOF
 1094: if compile_object; then
 1095: hostlongbits=64
 1096: else
 1097: hostlongbits=32
 1098: fi
 1099: 
 1100: 
 1101: ##########################################
 1102: # NPTL probe
 1103: 
 1104: if test "$nptl" != "no" ; then
 1105:   cat > $TMPC <<EOF
 1106: #include <sched.h>
 1107: #include <linux/futex.h>
 1108: void foo()
 1109: {
 1110: #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
 1111: #error bork
 1112: #endif
 1113: }
 1114: EOF
 1115: 
 1116:   if compile_object ; then
 1117:     nptl=yes
 1118:   else
 1119:     if test "$nptl" = "yes" ; then
 1120:       feature_not_found "nptl"
 1121:     fi
 1122:     nptl=no
 1123:   fi
 1124: fi
 1125: 
 1126: ##########################################
 1127: # zlib check
 1128: 
 1129: cat > $TMPC << EOF
 1130: #include <zlib.h>
 1131: int main(void) { zlibVersion(); return 0; }
 1132: EOF
 1133: if compile_prog "" "-lz" ; then
 1134:     :
 1135: else
 1136:     echo
 1137:     echo "Error: zlib check failed"
 1138:     echo "Make sure to have the zlib libs and headers installed."
 1139:     echo
 1140:     exit 1
 1141: fi
 1142: 
 1143: ##########################################
 1144: # xen probe
 1145: 
 1146: if test "$xen" != "no" ; then
 1147:   xen_libs="-lxenstore -lxenctrl -lxenguest"
 1148:   cat > $TMPC <<EOF
 1149: #include <xenctrl.h>
 1150: #include <xs.h>
 1151: int main(void) { xs_daemon_open(); xc_interface_open(); return 0; }
 1152: EOF
 1153:   if compile_prog "" "$xen_libs" ; then
 1154:     xen=yes
 1155:     libs_softmmu="$xen_libs $libs_softmmu"
 1156:   else
 1157:     if test "$xen" = "yes" ; then
 1158:       feature_not_found "xen"
 1159:     fi
 1160:     xen=no
 1161:   fi
 1162: fi
 1163: 
 1164: ##########################################
 1165: # pkg-config probe
 1166: 
 1167: if ! has $pkg_config; then
 1168:   echo warning: proceeding without "$pkg_config" >&2
 1169:   pkg_config=/bin/false
 1170: fi
 1171: 
 1172: ##########################################
 1173: # Sparse probe
 1174: if test "$sparse" != "no" ; then
 1175:   if has cgcc; then
 1176:     sparse=yes
 1177:   else
 1178:     if test "$sparse" = "yes" ; then
 1179:       feature_not_found "sparse"
 1180:     fi
 1181:     sparse=no
 1182:   fi
 1183: fi
 1184: 
 1185: ##########################################
 1186: # SDL probe
 1187: 
 1188: # Look for sdl configuration program (pkg-config or sdl-config).  Try
 1189: # sdl-config even without cross prefix, and favour pkg-config over sdl-config.
 1190: if test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then
 1191:   sdl_config=sdl-config
 1192: fi
 1193: 
 1194: if $pkg_config sdl --modversion >/dev/null 2>&1; then
 1195:   sdlconfig="$pkg_config sdl"
 1196:   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
 1197: elif has ${sdl_config}; then
 1198:   sdlconfig="$sdl_config"
 1199:   _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
 1200: else
 1201:   if test "$sdl" = "yes" ; then
 1202:     feature_not_found "sdl"
 1203:   fi
 1204:   sdl=no
 1205: fi
 1206: if test -n "$cross_prefix" && test "`basename $sdlconfig`" = sdl-config; then
 1207:   echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
 1208: fi
 1209: 
 1210: sdl_too_old=no
 1211: if test "$sdl" != "no" ; then
 1212:   cat > $TMPC << EOF
 1213: #include <SDL.h>
 1214: #undef main /* We don't want SDL to override our main() */
 1215: int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
 1216: EOF
 1217:   sdl_cflags=`$sdlconfig --cflags 2> /dev/null`
 1218:   if test "$static" = "yes" ; then
 1219:     sdl_libs=`$sdlconfig --static-libs 2>/dev/null`
 1220:   else
 1221:     sdl_libs=`$sdlconfig --libs 2> /dev/null`
 1222:   fi
 1223:   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
 1224:     if test "$_sdlversion" -lt 121 ; then
 1225:       sdl_too_old=yes
 1226:     else
 1227:       if test "$cocoa" = "no" ; then
 1228:         sdl=yes
 1229:       fi
 1230:     fi
 1231: 
 1232:     # static link with sdl ? (note: sdl.pc's --static --libs is broken)
 1233:     if test "$sdl" = "yes" -a "$static" = "yes" ; then
 1234:       if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then
 1235:          sdl_libs="$sdl_libs `aalib-config --static-libs 2>/dev/null`"
 1236:          sdl_cflags="$sdl_cflags `aalib-config --cflags 2>/dev/null`"
 1237:       fi
 1238:       if compile_prog "$sdl_cflags" "$sdl_libs" ; then
 1239: 	:
 1240:       else
 1241:         sdl=no
 1242:       fi
 1243:     fi # static link
 1244:   else # sdl not found
 1245:     if test "$sdl" = "yes" ; then
 1246:       feature_not_found "sdl"
 1247:     fi
 1248:     sdl=no
 1249:   fi # sdl compile test
 1250: fi
 1251: 
 1252: if test "$sdl" = "yes" ; then
 1253:   cat > $TMPC <<EOF
 1254: #include <SDL.h>
 1255: #if defined(SDL_VIDEO_DRIVER_X11)
 1256: #include <X11/XKBlib.h>
 1257: #else
 1258: #error No x11 support
 1259: #endif
 1260: int main(void) { return 0; }
 1261: EOF
 1262:   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
 1263:     sdl_libs="$sdl_libs -lX11"
 1264:   fi
 1265:   if test "$mingw32" = "yes" ; then
 1266:     sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole"
 1267:   fi
 1268:   libs_softmmu="$sdl_libs $libs_softmmu"
 1269: fi
 1270: 
 1271: ##########################################
 1272: # VNC TLS detection
 1273: if test "$vnc_tls" != "no" ; then
 1274:   cat > $TMPC <<EOF
 1275: #include <gnutls/gnutls.h>
 1276: int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
 1277: EOF
 1278:   vnc_tls_cflags=`$pkg_config --cflags gnutls 2> /dev/null`
 1279:   vnc_tls_libs=`$pkg_config --libs gnutls 2> /dev/null`
 1280:   if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
 1281:     vnc_tls=yes
 1282:     libs_softmmu="$vnc_tls_libs $libs_softmmu"
 1283:   else
 1284:     if test "$vnc_tls" = "yes" ; then
 1285:       feature_not_found "vnc-tls"
 1286:     fi
 1287:     vnc_tls=no
 1288:   fi
 1289: fi
 1290: 
 1291: ##########################################
 1292: # VNC SASL detection
 1293: if test "$vnc_sasl" != "no" ; then
 1294:   cat > $TMPC <<EOF
 1295: #include <sasl/sasl.h>
 1296: #include <stdio.h>
 1297: int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
 1298: EOF
 1299:   # Assuming Cyrus-SASL installed in /usr prefix
 1300:   vnc_sasl_cflags=""
 1301:   vnc_sasl_libs="-lsasl2"
 1302:   if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
 1303:     vnc_sasl=yes
 1304:     libs_softmmu="$vnc_sasl_libs $libs_softmmu"
 1305:   else
 1306:     if test "$vnc_sasl" = "yes" ; then
 1307:       feature_not_found "vnc-sasl"
 1308:     fi
 1309:     vnc_sasl=no
 1310:   fi
 1311: fi
 1312: 
 1313: ##########################################
 1314: # VNC JPEG detection
 1315: if test "$vnc_jpeg" != "no" ; then
 1316: cat > $TMPC <<EOF
 1317: #include <stdio.h>
 1318: #include <jpeglib.h>
 1319: int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
 1320: EOF
 1321:     vnc_jpeg_cflags=""
 1322:     vnc_jpeg_libs="-ljpeg"
 1323:   if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
 1324:     vnc_jpeg=yes
 1325:     libs_softmmu="$vnc_jpeg_libs $libs_softmmu"
 1326:   else
 1327:     if test "$vnc_jpeg" = "yes" ; then
 1328:       feature_not_found "vnc-jpeg"
 1329:     fi
 1330:     vnc_jpeg=no
 1331:   fi
 1332: fi
 1333: 
 1334: ##########################################
 1335: # VNC PNG detection
 1336: if test "$vnc_png" != "no" ; then
 1337: cat > $TMPC <<EOF
 1338: //#include <stdio.h>
 1339: #include <png.h>
 1340: #include <stddef.h>
 1341: int main(void) {
 1342:     png_structp png_ptr;
 1343:     png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
 1344:     return 0;
 1345: }
 1346: EOF
 1347:     vnc_png_cflags=""
 1348:     vnc_png_libs="-lpng"
 1349:   if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then
 1350:     vnc_png=yes
 1351:     libs_softmmu="$vnc_png_libs $libs_softmmu"
 1352:   else
 1353:     if test "$vnc_png" = "yes" ; then
 1354:       feature_not_found "vnc-png"
 1355:     fi
 1356:     vnc_png=no
 1357:   fi
 1358: fi
 1359: 
 1360: ##########################################
 1361: # fnmatch() probe, used for ACL routines
 1362: fnmatch="no"
 1363: cat > $TMPC << EOF
 1364: #include <fnmatch.h>
 1365: int main(void)
 1366: {
 1367:     fnmatch("foo", "foo", 0);
 1368:     return 0;
 1369: }
 1370: EOF
 1371: if compile_prog "" "" ; then
 1372:    fnmatch="yes"
 1373: fi
 1374: 
 1375: ##########################################
 1376: # uuid_generate() probe, used for vdi block driver
 1377: if test "$uuid" != "no" ; then
 1378:   uuid_libs="-luuid"
 1379:   cat > $TMPC << EOF
 1380: #include <uuid/uuid.h>
 1381: int main(void)
 1382: {
 1383:     uuid_t my_uuid;
 1384:     uuid_generate(my_uuid);
 1385:     return 0;
 1386: }
 1387: EOF
 1388:   if compile_prog "" "$uuid_libs" ; then
 1389:     uuid="yes"
 1390:     libs_softmmu="$uuid_libs $libs_softmmu"
 1391:     libs_tools="$uuid_libs $libs_tools"
 1392:   else
 1393:     if test "$uuid" = "yes" ; then
 1394:       feature_not_found "uuid"
 1395:     fi
 1396:     uuid=no
 1397:   fi
 1398: fi
 1399: 
 1400: ##########################################
 1401: # xfsctl() probe, used for raw-posix
 1402: if test "$xfs" != "no" ; then
 1403:   cat > $TMPC << EOF
 1404: #include <xfs/xfs.h>
 1405: int main(void)
 1406: {
 1407:     xfsctl(NULL, 0, 0, NULL);
 1408:     return 0;
 1409: }
 1410: EOF
 1411:   if compile_prog "" "" ; then
 1412:     xfs="yes"
 1413:   else
 1414:     if test "$xfs" = "yes" ; then
 1415:       feature_not_found "xfs"
 1416:     fi
 1417:     xfs=no
 1418:   fi
 1419: fi
 1420: 
 1421: ##########################################
 1422: # vde libraries probe
 1423: if test "$vde" != "no" ; then
 1424:   vde_libs="-lvdeplug"
 1425:   cat > $TMPC << EOF
 1426: #include <libvdeplug.h>
 1427: int main(void)
 1428: {
 1429:     struct vde_open_args a = {0, 0, 0};
 1430:     vde_open("", "", &a);
 1431:     return 0;
 1432: }
 1433: EOF
 1434:   if compile_prog "" "$vde_libs" ; then
 1435:     vde=yes
 1436:     libs_softmmu="$vde_libs $libs_softmmu"
 1437:     libs_tools="$vde_libs $libs_tools"
 1438:   else
 1439:     if test "$vde" = "yes" ; then
 1440:       feature_not_found "vde"
 1441:     fi
 1442:     vde=no
 1443:   fi
 1444: fi
 1445: 
 1446: ##########################################
 1447: # Sound support libraries probe
 1448: 
 1449: audio_drv_probe()
 1450: {
 1451:     drv=$1
 1452:     hdr=$2
 1453:     lib=$3
 1454:     exp=$4
 1455:     cfl=$5
 1456:         cat > $TMPC << EOF
 1457: #include <$hdr>
 1458: int main(void) { $exp }
 1459: EOF
 1460:     if compile_prog "$cfl" "$lib" ; then
 1461:         :
 1462:     else
 1463:         echo
 1464:         echo "Error: $drv check failed"
 1465:         echo "Make sure to have the $drv libs and headers installed."
 1466:         echo
 1467:         exit 1
 1468:     fi
 1469: }
 1470: 
 1471: audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
 1472: for drv in $audio_drv_list; do
 1473:     case $drv in
 1474:     alsa)
 1475:     audio_drv_probe $drv alsa/asoundlib.h -lasound \
 1476:         "snd_pcm_t **handle; return snd_pcm_close(*handle);"
 1477:     libs_softmmu="-lasound $libs_softmmu"
 1478:     ;;
 1479: 
 1480:     fmod)
 1481:     if test -z $fmod_lib || test -z $fmod_inc; then
 1482:         echo
 1483:         echo "Error: You must specify path to FMOD library and headers"
 1484:         echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
 1485:         echo
 1486:         exit 1
 1487:     fi
 1488:     audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
 1489:     libs_softmmu="$fmod_lib $libs_softmmu"
 1490:     ;;
 1491: 
 1492:     esd)
 1493:     audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
 1494:     libs_softmmu="-lesd $libs_softmmu"
 1495:     audio_pt_int="yes"
 1496:     ;;
 1497: 
 1498:     pa)
 1499:     audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \
 1500:         "pa_simple *s = NULL; pa_simple_free(s); return 0;"
 1501:     libs_softmmu="-lpulse -lpulse-simple $libs_softmmu"
 1502:     audio_pt_int="yes"
 1503:     ;;
 1504: 
 1505:     coreaudio)
 1506:       libs_softmmu="-framework CoreAudio $libs_softmmu"
 1507:     ;;
 1508: 
 1509:     dsound)
 1510:       libs_softmmu="-lole32 -ldxguid $libs_softmmu"
 1511:       audio_win_int="yes"
 1512:     ;;
 1513: 
 1514:     oss)
 1515:       libs_softmmu="$oss_lib $libs_softmmu"
 1516:     ;;
 1517: 
 1518:     sdl|wav)
 1519:     # XXX: Probes for CoreAudio, DirectSound, SDL(?)
 1520:     ;;
 1521: 
 1522:     winwave)
 1523:       libs_softmmu="-lwinmm $libs_softmmu"
 1524:       audio_win_int="yes"
 1525:     ;;
 1526: 
 1527:     *)
 1528:     echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
 1529:         echo
 1530:         echo "Error: Unknown driver '$drv' selected"
 1531:         echo "Possible drivers are: $audio_possible_drivers"
 1532:         echo
 1533:         exit 1
 1534:     }
 1535:     ;;
 1536:     esac
 1537: done
 1538: 
 1539: ##########################################
 1540: # BrlAPI probe
 1541: 
 1542: if test "$brlapi" != "no" ; then
 1543:   brlapi_libs="-lbrlapi"
 1544:   cat > $TMPC << EOF
 1545: #include <brlapi.h>
 1546: #include <stddef.h>
 1547: int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
 1548: EOF
 1549:   if compile_prog "" "$brlapi_libs" ; then
 1550:     brlapi=yes
 1551:     libs_softmmu="$brlapi_libs $libs_softmmu"
 1552:   else
 1553:     if test "$brlapi" = "yes" ; then
 1554:       feature_not_found "brlapi"
 1555:     fi
 1556:     brlapi=no
 1557:   fi
 1558: fi
 1559: 
 1560: ##########################################
 1561: # curses probe
 1562: curses_list="-lncurses -lcurses"
 1563: 
 1564: if test "$curses" != "no" ; then
 1565:   curses_found=no
 1566:   cat > $TMPC << EOF
 1567: #include <curses.h>
 1568: #ifdef __OpenBSD__
 1569: #define resize_term resizeterm
 1570: #endif
 1571: int main(void) { resize_term(0, 0); return curses_version(); }
 1572: EOF
 1573:   for curses_lib in $curses_list; do
 1574:     if compile_prog "" "$curses_lib" ; then
 1575:       curses_found=yes
 1576:       libs_softmmu="$curses_lib $libs_softmmu"
 1577:       break
 1578:     fi
 1579:   done
 1580:   if test "$curses_found" = "yes" ; then
 1581:     curses=yes
 1582:   else
 1583:     if test "$curses" = "yes" ; then
 1584:       feature_not_found "curses"
 1585:     fi
 1586:     curses=no
 1587:   fi
 1588: fi
 1589: 
 1590: ##########################################
 1591: # curl probe
 1592: 
 1593: if $pkg_config libcurl --modversion >/dev/null 2>&1; then
 1594:   curlconfig="$pkg_config libcurl"
 1595: else
 1596:   curlconfig=curl-config
 1597: fi
 1598: 
 1599: if test "$curl" != "no" ; then
 1600:   cat > $TMPC << EOF
 1601: #include <curl/curl.h>
 1602: int main(void) { return curl_easy_init(); }
 1603: EOF
 1604:   curl_cflags=`$curlconfig --cflags 2>/dev/null`
 1605:   curl_libs=`$curlconfig --libs 2>/dev/null`
 1606:   if compile_prog "$curl_cflags" "$curl_libs" ; then
 1607:     curl=yes
 1608:     libs_tools="$curl_libs $libs_tools"
 1609:     libs_softmmu="$curl_libs $libs_softmmu"
 1610:   else
 1611:     if test "$curl" = "yes" ; then
 1612:       feature_not_found "curl"
 1613:     fi
 1614:     curl=no
 1615:   fi
 1616: fi # test "$curl"
 1617: 
 1618: ##########################################
 1619: # check framework probe
 1620: 
 1621: if test "$check_utests" != "no" ; then
 1622:   cat > $TMPC << EOF
 1623: #include <check.h>
 1624: int main(void) { suite_create("qemu test"); return 0; }
 1625: EOF
 1626:   check_libs=`$pkg_config --libs check`
 1627:   if compile_prog "" $check_libs ; then
 1628:     check_utests=yes
 1629:     libs_tools="$check_libs $libs_tools"
 1630:   else
 1631:     if test "$check_utests" = "yes" ; then
 1632:       feature_not_found "check"
 1633:     fi
 1634:     check_utests=no
 1635:   fi
 1636: fi # test "$check_utests"
 1637: 
 1638: ##########################################
 1639: # bluez support probe
 1640: if test "$bluez" != "no" ; then
 1641:   cat > $TMPC << EOF
 1642: #include <bluetooth/bluetooth.h>
 1643: int main(void) { return bt_error(0); }
 1644: EOF
 1645:   bluez_cflags=`$pkg_config --cflags bluez 2> /dev/null`
 1646:   bluez_libs=`$pkg_config --libs bluez 2> /dev/null`
 1647:   if compile_prog "$bluez_cflags" "$bluez_libs" ; then
 1648:     bluez=yes
 1649:     libs_softmmu="$bluez_libs $libs_softmmu"
 1650:   else
 1651:     if test "$bluez" = "yes" ; then
 1652:       feature_not_found "bluez"
 1653:     fi
 1654:     bluez="no"
 1655:   fi
 1656: fi
 1657: 
 1658: ##########################################
 1659: # kvm probe
 1660: if test "$kvm" != "no" ; then
 1661:     cat > $TMPC <<EOF
 1662: #include <linux/kvm.h>
 1663: #if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
 1664: #error Invalid KVM version
 1665: #endif
 1666: EOF
 1667:     must_have_caps="KVM_CAP_USER_MEMORY \
 1668:                     KVM_CAP_DESTROY_MEMORY_REGION_WORKS \
 1669:                     KVM_CAP_COALESCED_MMIO \
 1670:                     KVM_CAP_SYNC_MMU \
 1671:                    "
 1672:     if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) ; then
 1673:       must_have_caps="$caps \
 1674:                       KVM_CAP_SET_TSS_ADDR \
 1675:                       KVM_CAP_EXT_CPUID \
 1676:                       KVM_CAP_CLOCKSOURCE \
 1677:                       KVM_CAP_NOP_IO_DELAY \
 1678:                       KVM_CAP_PV_MMU \
 1679:                       KVM_CAP_MP_STATE \
 1680:                       KVM_CAP_USER_NMI \
 1681:                      "
 1682:     fi
 1683:     for c in $must_have_caps ; do
 1684:       cat >> $TMPC <<EOF
 1685: #if !defined($c)
 1686: #error Missing KVM capability $c
 1687: #endif
 1688: EOF
 1689:     done
 1690:     cat >> $TMPC <<EOF
 1691: int main(void) { return 0; }
 1692: EOF
 1693:   if test "$kerneldir" != "" ; then
 1694:       kvm_cflags=-I"$kerneldir"/include
 1695:       if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \
 1696:          -a -d "$kerneldir/arch/x86/include" ; then
 1697:             kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include"
 1698: 	elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then
 1699: 	    kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include"
 1700: 	elif test "$cpu" = "s390x" -a -d "$kerneldir/arch/s390/include" ; then
 1701: 	    kvm_cflags="$kvm_cflags -I$kerneldir/arch/s390/include"
 1702:         elif test -d "$kerneldir/arch/$cpu/include" ; then
 1703:             kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
 1704:       fi
 1705:   else
 1706:     kvm_cflags=`$pkg_config --cflags kvm-kmod 2>/dev/null`
 1707:   fi
 1708:   if compile_prog "$kvm_cflags" "" ; then
 1709:     kvm=yes
 1710:     cat > $TMPC <<EOF
 1711: #include <linux/kvm_para.h>
 1712: int main(void) { return 0; }
 1713: EOF
 1714:     if compile_prog "$kvm_cflags" "" ; then
 1715:       kvm_para=yes
 1716:     fi
 1717:   else
 1718:     if test "$kvm" = "yes" ; then
 1719:       if has awk && has grep; then
 1720:         kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \
 1721: 	| grep "error: " \
 1722: 	| awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
 1723:         if test "$kvmerr" != "" ; then
 1724:           echo -e "${kvmerr}\n\
 1725: NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \
 1726: recent kvm-kmod from http://sourceforge.net/projects/kvm."
 1727:         fi
 1728:       fi
 1729:       feature_not_found "kvm"
 1730:     fi
 1731:     kvm=no
 1732:   fi
 1733: fi
 1734: 
 1735: ##########################################
 1736: # test for vhost net
 1737: 
 1738: if test "$vhost_net" != "no"; then
 1739:     if test "$kvm" != "no"; then
 1740:             cat > $TMPC <<EOF
 1741:     #include <linux/vhost.h>
 1742:     int main(void) { return 0; }
 1743: EOF
 1744:             if compile_prog "$kvm_cflags" "" ; then
 1745:                 vhost_net=yes
 1746:             else
 1747:                 if test "$vhost_net" = "yes" ; then
 1748:                     feature_not_found "vhost-net"
 1749:                 fi
 1750:                 vhost_net=no
 1751:             fi
 1752:     else
 1753:             if test "$vhost_net" = "yes" ; then
 1754:                 echo "NOTE: vhost-net feature requires KVM (--enable-kvm)."
 1755:                 feature_not_found "vhost-net"
 1756:             fi
 1757:             vhost_net=no
 1758:     fi
 1759: fi
 1760: 
 1761: ##########################################
 1762: # pthread probe
 1763: PTHREADLIBS_LIST="-lpthread -lpthreadGC2"
 1764: 
 1765: pthread=no
 1766: cat > $TMPC << EOF
 1767: #include <pthread.h>
 1768: int main(void) { pthread_create(0,0,0,0); return 0; }
 1769: EOF
 1770: if compile_prog "" "" ; then
 1771:   pthread=yes
 1772: else
 1773:   for pthread_lib in $PTHREADLIBS_LIST; do
 1774:     if compile_prog "" "$pthread_lib" ; then
 1775:       pthread=yes
 1776:       LIBS="$pthread_lib $LIBS"
 1777:       break
 1778:     fi
 1779:   done
 1780: fi
 1781: 
 1782: if test "$mingw32" != yes -a "$pthread" = no; then
 1783:   echo
 1784:   echo "Error: pthread check failed"
 1785:   echo "Make sure to have the pthread libs and headers installed."
 1786:   echo
 1787:   exit 1
 1788: fi
 1789: 
 1790: ##########################################
 1791: # rbd probe
 1792: if test "$rbd" != "no" ; then
 1793:   cat > $TMPC <<EOF
 1794: #include <stdio.h>
 1795: #include <rados/librados.h>
 1796: int main(void) { rados_initialize(0, NULL); return 0; }
 1797: EOF
 1798:   rbd_libs="-lrados"
 1799:   if compile_prog "" "$rbd_libs" ; then
 1800:     librados_too_old=no
 1801:     cat > $TMPC <<EOF
 1802: #include <stdio.h>
 1803: #include <rados/librados.h>
 1804: #ifndef CEPH_OSD_TMAP_SET
 1805: #error missing CEPH_OSD_TMAP_SET
 1806: #endif
 1807: int main(void) {
 1808:     int (*func)(const rados_pool_t pool, uint64_t *snapid) = rados_selfmanaged_snap_create;
 1809:     rados_initialize(0, NULL);
 1810:     return 0;
 1811: }
 1812: EOF
 1813:     if compile_prog "" "$rbd_libs" ; then
 1814:       rbd=yes
 1815:       libs_tools="$rbd_libs $libs_tools"
 1816:       libs_softmmu="$rbd_libs $libs_softmmu"
 1817:     else
 1818:       rbd=no
 1819:       librados_too_old=yes
 1820:     fi
 1821:   else
 1822:     if test "$rbd" = "yes" ; then
 1823:       feature_not_found "rados block device"
 1824:     fi
 1825:     rbd=no
 1826:   fi
 1827:   if test "$librados_too_old" = "yes" ; then
 1828:     echo "-> Your librados version is too old - upgrade needed to have rbd support"
 1829:   fi
 1830: fi
 1831: 
 1832: ##########################################
 1833: # linux-aio probe
 1834: 
 1835: if test "$linux_aio" != "no" ; then
 1836:   cat > $TMPC <<EOF
 1837: #include <libaio.h>
 1838: #include <sys/eventfd.h>
 1839: #include <stddef.h>
 1840: int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
 1841: EOF
 1842:   if compile_prog "" "-laio" ; then
 1843:     linux_aio=yes
 1844:     libs_softmmu="$libs_softmmu -laio"
 1845:     libs_tools="$libs_tools -laio"
 1846:   else
 1847:     if test "$linux_aio" = "yes" ; then
 1848:       feature_not_found "linux AIO"
 1849:     fi
 1850:     linux_aio=no
 1851:   fi
 1852: fi
 1853: 
 1854: ##########################################
 1855: # attr probe
 1856: 
 1857: if test "$attr" != "no" ; then
 1858:   cat > $TMPC <<EOF
 1859: #include <stdio.h>
 1860: #include <sys/types.h>
 1861: #include <attr/xattr.h>
 1862: int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
 1863: EOF
 1864:   if compile_prog "" "-lattr" ; then
 1865:     attr=yes
 1866:     LIBS="-lattr $LIBS"
 1867:   else
 1868:     if test "$attr" = "yes" ; then
 1869:       feature_not_found "ATTR"
 1870:     fi
 1871:     attr=no
 1872:   fi
 1873: fi
 1874: 
 1875: ##########################################
 1876: # iovec probe
 1877: cat > $TMPC <<EOF
 1878: #include <sys/types.h>
 1879: #include <sys/uio.h>
 1880: #include <unistd.h>
 1881: int main(void) { struct iovec iov; return 0; }
 1882: EOF
 1883: iovec=no
 1884: if compile_prog "" "" ; then
 1885:   iovec=yes
 1886: fi
 1887: 
 1888: ##########################################
 1889: # preadv probe
 1890: cat > $TMPC <<EOF
 1891: #include <sys/types.h>
 1892: #include <sys/uio.h>
 1893: #include <unistd.h>
 1894: int main(void) { preadv; }
 1895: EOF
 1896: preadv=no
 1897: if compile_prog "" "" ; then
 1898:   preadv=yes
 1899: fi
 1900: 
 1901: ##########################################
 1902: # fdt probe
 1903: if test "$fdt" != "no" ; then
 1904:   fdt_libs="-lfdt"
 1905:   cat > $TMPC << EOF
 1906: int main(void) { return 0; }
 1907: EOF
 1908:   if compile_prog "" "$fdt_libs" ; then
 1909:     fdt=yes
 1910:     libs_softmmu="$fdt_libs $libs_softmmu"
 1911:   else
 1912:     if test "$fdt" = "yes" ; then
 1913:       feature_not_found "fdt"
 1914:     fi
 1915:     fdt=no
 1916:   fi
 1917: fi
 1918: 
 1919: #
 1920: # Check for xxxat() functions when we are building linux-user
 1921: # emulator.  This is done because older glibc versions don't
 1922: # have syscall stubs for these implemented.
 1923: #
 1924: atfile=no
 1925: cat > $TMPC << EOF
 1926: #define _ATFILE_SOURCE
 1927: #include <sys/types.h>
 1928: #include <fcntl.h>
 1929: #include <unistd.h>
 1930: 
 1931: int
 1932: main(void)
 1933: {
 1934: 	/* try to unlink nonexisting file */
 1935: 	return (unlinkat(AT_FDCWD, "nonexistent_file", 0));
 1936: }
 1937: EOF
 1938: if compile_prog "" "" ; then
 1939:   atfile=yes
 1940: fi
 1941: 
 1942: # Check for inotify functions when we are building linux-user
 1943: # emulator.  This is done because older glibc versions don't
 1944: # have syscall stubs for these implemented.  In that case we
 1945: # don't provide them even if kernel supports them.
 1946: #
 1947: inotify=no
 1948: cat > $TMPC << EOF
 1949: #include <sys/inotify.h>
 1950: 
 1951: int
 1952: main(void)
 1953: {
 1954: 	/* try to start inotify */
 1955: 	return inotify_init();
 1956: }
 1957: EOF
 1958: if compile_prog "" "" ; then
 1959:   inotify=yes
 1960: fi
 1961: 
 1962: inotify1=no
 1963: cat > $TMPC << EOF
 1964: #include <sys/inotify.h>
 1965: 
 1966: int
 1967: main(void)
 1968: {
 1969:     /* try to start inotify */
 1970:     return inotify_init1(0);
 1971: }
 1972: EOF
 1973: if compile_prog "" "" ; then
 1974:   inotify1=yes
 1975: fi
 1976: 
 1977: # check if utimensat and futimens are supported
 1978: utimens=no
 1979: cat > $TMPC << EOF
 1980: #define _ATFILE_SOURCE
 1981: #include <stddef.h>
 1982: #include <fcntl.h>
 1983: 
 1984: int main(void)
 1985: {
 1986:     utimensat(AT_FDCWD, "foo", NULL, 0);
 1987:     futimens(0, NULL);
 1988:     return 0;
 1989: }
 1990: EOF
 1991: if compile_prog "" "" ; then
 1992:   utimens=yes
 1993: fi
 1994: 
 1995: # check if pipe2 is there
 1996: pipe2=no
 1997: cat > $TMPC << EOF
 1998: #include <unistd.h>
 1999: #include <fcntl.h>
 2000: 
 2001: int main(void)
 2002: {
 2003:     int pipefd[2];
 2004:     pipe2(pipefd, O_CLOEXEC);
 2005:     return 0;
 2006: }
 2007: EOF
 2008: if compile_prog "" "" ; then
 2009:   pipe2=yes
 2010: fi
 2011: 
 2012: # check if accept4 is there
 2013: accept4=no
 2014: cat > $TMPC << EOF
 2015: #include <sys/socket.h>
 2016: #include <stddef.h>
 2017: 
 2018: int main(void)
 2019: {
 2020:     accept4(0, NULL, NULL, SOCK_CLOEXEC);
 2021:     return 0;
 2022: }
 2023: EOF
 2024: if compile_prog "" "" ; then
 2025:   accept4=yes
 2026: fi
 2027: 
 2028: # check if tee/splice is there. vmsplice was added same time.
 2029: splice=no
 2030: cat > $TMPC << EOF
 2031: #include <unistd.h>
 2032: #include <fcntl.h>
 2033: #include <limits.h>
 2034: 
 2035: int main(void)
 2036: {
 2037:     int len, fd;
 2038:     len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
 2039:     splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
 2040:     return 0;
 2041: }
 2042: EOF
 2043: if compile_prog "" "" ; then
 2044:   splice=yes
 2045: fi
 2046: 
 2047: ##########################################
 2048: # signalfd probe
 2049: signalfd="no"
 2050: cat > $TMPC << EOF
 2051: #define _GNU_SOURCE
 2052: #include <unistd.h>
 2053: #include <sys/syscall.h>
 2054: #include <signal.h>
 2055: int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
 2056: EOF
 2057: 
 2058: if compile_prog "" "" ; then
 2059:   signalfd=yes
 2060: fi
 2061: 
 2062: # check if eventfd is supported
 2063: eventfd=no
 2064: cat > $TMPC << EOF
 2065: #include <sys/eventfd.h>
 2066: 
 2067: int main(void)
 2068: {
 2069:     int efd = eventfd(0, 0);
 2070:     return 0;
 2071: }
 2072: EOF
 2073: if compile_prog "" "" ; then
 2074:   eventfd=yes
 2075: fi
 2076: 
 2077: # check for fallocate
 2078: fallocate=no
 2079: cat > $TMPC << EOF
 2080: #include <fcntl.h>
 2081: 
 2082: int main(void)
 2083: {
 2084:     fallocate(0, 0, 0, 0);
 2085:     return 0;
 2086: }
 2087: EOF
 2088: if compile_prog "$ARCH_CFLAGS" "" ; then
 2089:   fallocate=yes
 2090: fi
 2091: 
 2092: # check for sync_file_range
 2093: sync_file_range=no
 2094: cat > $TMPC << EOF
 2095: #include <fcntl.h>
 2096: 
 2097: int main(void)
 2098: {
 2099:     sync_file_range(0, 0, 0, 0);
 2100:     return 0;
 2101: }
 2102: EOF
 2103: if compile_prog "$ARCH_CFLAGS" "" ; then
 2104:   sync_file_range=yes
 2105: fi
 2106: 
 2107: # check for linux/fiemap.h and FS_IOC_FIEMAP
 2108: fiemap=no
 2109: cat > $TMPC << EOF
 2110: #include <sys/ioctl.h>
 2111: #include <linux/fs.h>
 2112: #include <linux/fiemap.h>
 2113: 
 2114: int main(void)
 2115: {
 2116:     ioctl(0, FS_IOC_FIEMAP, 0);
 2117:     return 0;
 2118: }
 2119: EOF
 2120: if compile_prog "$ARCH_CFLAGS" "" ; then
 2121:   fiemap=yes
 2122: fi
 2123: 
 2124: # check for dup3
 2125: dup3=no
 2126: cat > $TMPC << EOF
 2127: #include <unistd.h>
 2128: 
 2129: int main(void)
 2130: {
 2131:     dup3(0, 0, 0);
 2132:     return 0;
 2133: }
 2134: EOF
 2135: if compile_prog "" "" ; then
 2136:   dup3=yes
 2137: fi
 2138: 
 2139: # Check if tools are available to build documentation.
 2140: if test "$docs" != "no" ; then
 2141:   if has makeinfo && has pod2man; then
 2142:     docs=yes
 2143:   else
 2144:     if test "$docs" = "yes" ; then
 2145:       feature_not_found "docs"
 2146:     fi
 2147:     docs=no
 2148:   fi
 2149: fi
 2150: 
 2151: # Search for bswap_32 function
 2152: byteswap_h=no
 2153: cat > $TMPC << EOF
 2154: #include <byteswap.h>
 2155: int main(void) { return bswap_32(0); }
 2156: EOF
 2157: if compile_prog "" "" ; then
 2158:   byteswap_h=yes
 2159: fi
 2160: 
 2161: # Search for bswap_32 function
 2162: bswap_h=no
 2163: cat > $TMPC << EOF
 2164: #include <sys/endian.h>
 2165: #include <sys/types.h>
 2166: #include <machine/bswap.h>
 2167: int main(void) { return bswap32(0); }
 2168: EOF
 2169: if compile_prog "" "" ; then
 2170:   bswap_h=yes
 2171: fi
 2172: 
 2173: ##########################################
 2174: # Do we need librt
 2175: cat > $TMPC <<EOF
 2176: #include <signal.h>
 2177: #include <time.h>
 2178: int main(void) { clockid_t id; return clock_gettime(id, NULL); }
 2179: EOF
 2180: 
 2181: if compile_prog "" "" ; then
 2182:   :
 2183: elif compile_prog "" "-lrt" ; then
 2184:   LIBS="-lrt $LIBS"
 2185: fi
 2186: 
 2187: if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
 2188:         "$aix" != "yes" -a "$haiku" != "yes" ; then
 2189:     libs_softmmu="-lutil $libs_softmmu"
 2190: fi
 2191: 
 2192: ##########################################
 2193: # check if the compiler defines offsetof
 2194: 
 2195: need_offsetof=yes
 2196: cat > $TMPC << EOF
 2197: #include <stddef.h>
 2198: int main(void) { struct s { int f; }; return offsetof(struct s, f); }
 2199: EOF
 2200: if compile_prog "" "" ; then
 2201:     need_offsetof=no
 2202: fi
 2203: 
 2204: ##########################################
 2205: # check if the compiler understands attribute warn_unused_result
 2206: #
 2207: # This could be smarter, but gcc -Werror does not error out even when warning
 2208: # about attribute warn_unused_result
 2209: 
 2210: gcc_attribute_warn_unused_result=no
 2211: cat > $TMPC << EOF
 2212: #if defined(__GNUC__) && (__GNUC__ < 4) && defined(__GNUC_MINOR__) && (__GNUC__ < 4)
 2213: #error gcc 3.3 or older
 2214: #endif
 2215: int main(void) { return 0;}
 2216: EOF
 2217: if compile_prog "" ""; then
 2218:     gcc_attribute_warn_unused_result=yes
 2219: fi
 2220: 
 2221: # spice probe
 2222: if test "$spice" != "no" ; then
 2223:   cat > $TMPC << EOF
 2224: #include <spice.h>
 2225: int main(void) { spice_server_new(); return 0; }
 2226: EOF
 2227:   spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
 2228:   spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
 2229:   if $pkg_config --atleast-version=0.5.3 spice-server >/dev/null 2>&1 && \
 2230:      compile_prog "$spice_cflags" "$spice_libs" ; then
 2231:     spice="yes"
 2232:     libs_softmmu="$libs_softmmu $spice_libs"
 2233:     QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags"
 2234:   else
 2235:     if test "$spice" = "yes" ; then
 2236:       feature_not_found "spice"
 2237:     fi
 2238:     spice="no"
 2239:   fi
 2240: fi
 2241: 
 2242: ##########################################
 2243: 
 2244: ##########################################
 2245: # check if we have fdatasync
 2246: 
 2247: fdatasync=no
 2248: cat > $TMPC << EOF
 2249: #include <unistd.h>
 2250: int main(void) { return fdatasync(0); }
 2251: EOF
 2252: if compile_prog "" "" ; then
 2253:     fdatasync=yes
 2254: fi
 2255: 
 2256: ##########################################
 2257: # check if we have madvise
 2258: 
 2259: madvise=no
 2260: cat > $TMPC << EOF
 2261: #include <sys/types.h>
 2262: #include <sys/mman.h>
 2263: #include <stddef.h>
 2264: int main(void) { return madvise(NULL, 0, MADV_DONTNEED); }
 2265: EOF
 2266: if compile_prog "" "" ; then
 2267:     madvise=yes
 2268: fi
 2269: 
 2270: ##########################################
 2271: # check if we have posix_madvise
 2272: 
 2273: posix_madvise=no
 2274: cat > $TMPC << EOF
 2275: #include <sys/mman.h>
 2276: #include <stddef.h>
 2277: int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }
 2278: EOF
 2279: if compile_prog "" "" ; then
 2280:     posix_madvise=yes
 2281: fi
 2282: 
 2283: ##########################################
 2284: # check if trace backend exists
 2285: 
 2286: sh "$source_path/scripts/tracetool" "--$trace_backend" --check-backend > /dev/null 2> /dev/null
 2287: if test "$?" -ne 0 ; then
 2288:   echo
 2289:   echo "Error: invalid trace backend"
 2290:   echo "Please choose a supported trace backend."
 2291:   echo
 2292:   exit 1
 2293: fi
 2294: 
 2295: ##########################################
 2296: # For 'ust' backend, test if ust headers are present
 2297: if test "$trace_backend" = "ust"; then
 2298:   cat > $TMPC << EOF
 2299: #include <ust/tracepoint.h>
 2300: #include <ust/marker.h>
 2301: int main(void) { return 0; }
 2302: EOF
 2303:   if compile_prog "" "" ; then
 2304:     LIBS="-lust $LIBS"
 2305:   else
 2306:     echo
 2307:     echo "Error: Trace backend 'ust' missing libust header files"
 2308:     echo
 2309:     exit 1
 2310:   fi
 2311: fi
 2312: 
 2313: ##########################################
 2314: # For 'dtrace' backend, test if 'dtrace' command is present
 2315: if test "$trace_backend" = "dtrace"; then
 2316:   if ! has 'dtrace' ; then
 2317:     echo
 2318:     echo "Error: dtrace command is not found in PATH $PATH"
 2319:     echo
 2320:     exit 1
 2321:   fi
 2322:   trace_backend_stap="no"
 2323:   if has 'stap' ; then
 2324:     trace_backend_stap="yes"
 2325:   fi
 2326: fi
 2327: 
 2328: ##########################################
 2329: # End of CC checks
 2330: # After here, no more $cc or $ld runs
 2331: 
 2332: if test "$debug" = "no" ; then
 2333:   CFLAGS="-O2 $CFLAGS"
 2334: fi
 2335: 
 2336: # Consult white-list to determine whether to enable werror
 2337: # by default.  Only enable by default for git builds
 2338: z_version=`cut -f3 -d. $source_path/VERSION`
 2339: 
 2340: if test -z "$werror" ; then
 2341:     if test "$z_version" = "50" -a \
 2342:         "$linux" = "yes" ; then
 2343:         werror="yes"
 2344:     else
 2345:         werror="no"
 2346:     fi
 2347: fi
 2348: 
 2349: # Disable zero malloc errors for official releases unless explicitly told to
 2350: # enable/disable
 2351: if test -z "$zero_malloc" ; then
 2352:     if test "$z_version" = "50" ; then
 2353: 	zero_malloc="no"
 2354:     else
 2355: 	zero_malloc="yes"
 2356:     fi
 2357: fi
 2358: 
 2359: if test "$werror" = "yes" ; then
 2360:     QEMU_CFLAGS="-Werror $QEMU_CFLAGS"
 2361: fi
 2362: 
 2363: if test "$solaris" = "no" ; then
 2364:     if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
 2365:         LDFLAGS="-Wl,--warn-common $LDFLAGS"
 2366:     fi
 2367: fi
 2368: 
 2369: # Use ASLR, no-SEH and DEP if available
 2370: if test "$mingw32" = "yes" ; then
 2371:     for flag in --dynamicbase --no-seh --nxcompat; do
 2372:         if $ld --help 2>/dev/null | grep ".$flag" >/dev/null 2>/dev/null ; then
 2373:             LDFLAGS="-Wl,$flag $LDFLAGS"
 2374:         fi
 2375:     done
 2376: fi
 2377: 
 2378: confdir=$sysconfdir$confsuffix
 2379: 
 2380: tools=
 2381: if test "$softmmu" = yes ; then
 2382:   tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
 2383:   if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
 2384:       tools="qemu-nbd\$(EXESUF) $tools"
 2385:     if [ "$check_utests" = "yes" ]; then
 2386:       tools="check-qint check-qstring check-qdict check-qlist $tools"
 2387:       tools="check-qfloat check-qjson $tools"
 2388:     fi
 2389:   fi
 2390: fi
 2391: 
 2392: # Mac OS X ships with a broken assembler
 2393: roms=
 2394: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
 2395:         "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
 2396:         "$softmmu" = yes ; then
 2397:   roms="optionrom"
 2398: fi
 2399: 
 2400: 
 2401: echo "Install prefix    $prefix"
 2402: echo "BIOS directory    `eval echo $datadir`"
 2403: echo "binary directory  `eval echo $bindir`"
 2404: echo "config directory  `eval echo $sysconfdir`"
 2405: if test "$mingw32" = "no" ; then
 2406: echo "Manual directory  `eval echo $mandir`"
 2407: echo "ELF interp prefix $interp_prefix"
 2408: fi
 2409: echo "Source path       $source_path"
 2410: echo "C compiler        $cc"
 2411: echo "Host C compiler   $host_cc"
 2412: echo "CFLAGS            $CFLAGS"
 2413: echo "QEMU_CFLAGS       $QEMU_CFLAGS"
 2414: echo "LDFLAGS           $LDFLAGS"
 2415: echo "make              $make"
 2416: echo "install           $install"
 2417: echo "host CPU          $cpu"
 2418: echo "host big endian   $bigendian"
 2419: echo "target list       $target_list"
 2420: echo "tcg debug enabled $debug_tcg"
 2421: echo "Mon debug enabled $debug_mon"
 2422: echo "gprof enabled     $gprof"
 2423: echo "sparse enabled    $sparse"
 2424: echo "strip binaries    $strip_opt"
 2425: echo "profiler          $profiler"
 2426: echo "static build      $static"
 2427: echo "-Werror enabled   $werror"
 2428: if test "$darwin" = "yes" ; then
 2429:     echo "Cocoa support     $cocoa"
 2430: fi
 2431: echo "SDL support       $sdl"
 2432: echo "curses support    $curses"
 2433: echo "curl support      $curl"
 2434: echo "check support     $check_utests"
 2435: echo "mingw32 support   $mingw32"
 2436: echo "Audio drivers     $audio_drv_list"
 2437: echo "Extra audio cards $audio_card_list"
 2438: echo "Block whitelist   $block_drv_whitelist"
 2439: echo "Mixer emulation   $mixemu"
 2440: echo "VNC TLS support   $vnc_tls"
 2441: echo "VNC SASL support  $vnc_sasl"
 2442: echo "VNC JPEG support  $vnc_jpeg"
 2443: echo "VNC PNG support   $vnc_png"
 2444: echo "VNC thread        $vnc_thread"
 2445: if test -n "$sparc_cpu"; then
 2446:     echo "Target Sparc Arch $sparc_cpu"
 2447: fi
 2448: echo "xen support       $xen"
 2449: echo "brlapi support    $brlapi"
 2450: echo "bluez  support    $bluez"
 2451: echo "Documentation     $docs"
 2452: [ ! -z "$uname_release" ] && \
 2453: echo "uname -r          $uname_release"
 2454: echo "NPTL support      $nptl"
 2455: echo "GUEST_BASE        $guest_base"
 2456: echo "PIE user targets  $user_pie"
 2457: echo "vde support       $vde"
 2458: echo "IO thread         $io_thread"
 2459: echo "Linux AIO support $linux_aio"
 2460: echo "ATTR/XATTR support $attr"
 2461: echo "Install blobs     $blobs"
 2462: echo "KVM support       $kvm"
 2463: echo "fdt support       $fdt"
 2464: echo "preadv support    $preadv"
 2465: echo "fdatasync         $fdatasync"
 2466: echo "madvise           $madvise"
 2467: echo "posix_madvise     $posix_madvise"
 2468: echo "uuid support      $uuid"
 2469: echo "vhost-net support $vhost_net"
 2470: echo "Trace backend     $trace_backend"
 2471: echo "Trace output file $trace_file-<pid>"
 2472: echo "spice support     $spice"
 2473: echo "rbd support       $rbd"
 2474: echo "xfsctl support    $xfs"
 2475: 
 2476: if test $sdl_too_old = "yes"; then
 2477: echo "-> Your SDL version is too old - please upgrade to have SDL support"
 2478: fi
 2479: 
 2480: config_host_mak="config-host.mak"
 2481: config_host_ld="config-host.ld"
 2482: 
 2483: echo "# Automatically generated by configure - do not modify" > $config_host_mak
 2484: printf "# Configured with:" >> $config_host_mak
 2485: printf " '%s'" "$0" "$@" >> $config_host_mak
 2486: echo >> $config_host_mak
 2487: 
 2488: echo all: >> $config_host_mak
 2489: echo "prefix=$prefix" >> $config_host_mak
 2490: echo "bindir=$bindir" >> $config_host_mak
 2491: echo "mandir=$mandir" >> $config_host_mak
 2492: echo "datadir=$datadir" >> $config_host_mak
 2493: echo "sysconfdir=$sysconfdir" >> $config_host_mak
 2494: echo "docdir=$docdir" >> $config_host_mak
 2495: echo "confdir=$confdir" >> $config_host_mak
 2496: 
 2497: case "$cpu" in
 2498:   i386|x86_64|alpha|cris|hppa|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
 2499:     ARCH=$cpu
 2500:   ;;
 2501:   armv4b|armv4l)
 2502:     ARCH=arm
 2503:   ;;
 2504: esac
 2505: echo "ARCH=$ARCH" >> $config_host_mak
 2506: if test "$debug_tcg" = "yes" ; then
 2507:   echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
 2508: fi
 2509: if test "$debug_mon" = "yes" ; then
 2510:   echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak
 2511: fi
 2512: if test "$debug" = "yes" ; then
 2513:   echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
 2514: fi
 2515: if test "$strip_opt" = "yes" ; then
 2516:   echo "STRIP=${strip}" >> $config_host_mak
 2517: fi
 2518: if test "$bigendian" = "yes" ; then
 2519:   echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
 2520: fi
 2521: echo "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak
 2522: if test "$mingw32" = "yes" ; then
 2523:   echo "CONFIG_WIN32=y" >> $config_host_mak
 2524:   rc_version=`cat $source_path/VERSION`
 2525:   version_major=${rc_version%%.*}
 2526:   rc_version=${rc_version#*.}
 2527:   version_minor=${rc_version%%.*}
 2528:   rc_version=${rc_version#*.}
 2529:   version_subminor=${rc_version%%.*}
 2530:   version_micro=0
 2531:   echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
 2532:   echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
 2533: else
 2534:   echo "CONFIG_POSIX=y" >> $config_host_mak
 2535: fi
 2536: 
 2537: if test "$linux" = "yes" ; then
 2538:   echo "CONFIG_LINUX=y" >> $config_host_mak
 2539: fi
 2540: 
 2541: if test "$darwin" = "yes" ; then
 2542:   echo "CONFIG_DARWIN=y" >> $config_host_mak
 2543: fi
 2544: 
 2545: if test "$aix" = "yes" ; then
 2546:   echo "CONFIG_AIX=y" >> $config_host_mak
 2547: fi
 2548: 
 2549: if test "$solaris" = "yes" ; then
 2550:   echo "CONFIG_SOLARIS=y" >> $config_host_mak
 2551:   echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
 2552:   if test "$needs_libsunmath" = "yes" ; then
 2553:     echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
 2554:   fi
 2555: fi
 2556: if test "$haiku" = "yes" ; then
 2557:   echo "CONFIG_HAIKU=y" >> $config_host_mak
 2558: fi
 2559: if test "$static" = "yes" ; then
 2560:   echo "CONFIG_STATIC=y" >> $config_host_mak
 2561: fi
 2562: if test $profiler = "yes" ; then
 2563:   echo "CONFIG_PROFILER=y" >> $config_host_mak
 2564: fi
 2565: if test "$slirp" = "yes" ; then
 2566:   echo "CONFIG_SLIRP=y" >> $config_host_mak
 2567:   QEMU_INCLUDES="-I\$(SRC_PATH)/slirp $QEMU_INCLUDES"
 2568: fi
 2569: if test "$vde" = "yes" ; then
 2570:   echo "CONFIG_VDE=y" >> $config_host_mak
 2571: fi
 2572: for card in $audio_card_list; do
 2573:     def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
 2574:     echo "$def=y" >> $config_host_mak
 2575: done
 2576: echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
 2577: for drv in $audio_drv_list; do
 2578:     def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
 2579:     echo "$def=y" >> $config_host_mak
 2580:     if test "$drv" = "fmod"; then
 2581:         echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak
 2582:     fi
 2583: done
 2584: if test "$audio_pt_int" = "yes" ; then
 2585:   echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
 2586: fi
 2587: if test "$audio_win_int" = "yes" ; then
 2588:   echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
 2589: fi
 2590: echo "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak
 2591: if test "$mixemu" = "yes" ; then
 2592:   echo "CONFIG_MIXEMU=y" >> $config_host_mak
 2593: fi
 2594: if test "$vnc_tls" = "yes" ; then
 2595:   echo "CONFIG_VNC_TLS=y" >> $config_host_mak
 2596:   echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
 2597: fi
 2598: if test "$vnc_sasl" = "yes" ; then
 2599:   echo "CONFIG_VNC_SASL=y" >> $config_host_mak
 2600:   echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
 2601: fi
 2602: if test "$vnc_jpeg" != "no" ; then
 2603:   echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
 2604:   echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak
 2605: fi
 2606: if test "$vnc_png" != "no" ; then
 2607:   echo "CONFIG_VNC_PNG=y" >> $config_host_mak
 2608:   echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
 2609: fi
 2610: if test "$vnc_thread" != "no" ; then
 2611:   echo "CONFIG_VNC_THREAD=y" >> $config_host_mak
 2612:   echo "CONFIG_THREAD=y" >> $config_host_mak
 2613: fi
 2614: if test "$fnmatch" = "yes" ; then
 2615:   echo "CONFIG_FNMATCH=y" >> $config_host_mak
 2616: fi
 2617: if test "$uuid" = "yes" ; then
 2618:   echo "CONFIG_UUID=y" >> $config_host_mak
 2619: fi
 2620: if test "$xfs" = "yes" ; then
 2621:   echo "CONFIG_XFS=y" >> $config_host_mak
 2622: fi
 2623: qemu_version=`head $source_path/VERSION`
 2624: echo "VERSION=$qemu_version" >>$config_host_mak
 2625: echo "PKGVERSION=$pkgversion" >>$config_host_mak
 2626: echo "SRC_PATH=$source_path" >> $config_host_mak
 2627: echo "TARGET_DIRS=$target_list" >> $config_host_mak
 2628: if [ "$docs" = "yes" ] ; then
 2629:   echo "BUILD_DOCS=yes" >> $config_host_mak
 2630: fi
 2631: if test "$sdl" = "yes" ; then
 2632:   echo "CONFIG_SDL=y" >> $config_host_mak
 2633:   echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
 2634: fi
 2635: if test "$cocoa" = "yes" ; then
 2636:   echo "CONFIG_COCOA=y" >> $config_host_mak
 2637: fi
 2638: if test "$curses" = "yes" ; then
 2639:   echo "CONFIG_CURSES=y" >> $config_host_mak
 2640: fi
 2641: if test "$atfile" = "yes" ; then
 2642:   echo "CONFIG_ATFILE=y" >> $config_host_mak
 2643: fi
 2644: if test "$utimens" = "yes" ; then
 2645:   echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
 2646: fi
 2647: if test "$pipe2" = "yes" ; then
 2648:   echo "CONFIG_PIPE2=y" >> $config_host_mak
 2649: fi
 2650: if test "$accept4" = "yes" ; then
 2651:   echo "CONFIG_ACCEPT4=y" >> $config_host_mak
 2652: fi
 2653: if test "$splice" = "yes" ; then
 2654:   echo "CONFIG_SPLICE=y" >> $config_host_mak
 2655: fi
 2656: if test "$eventfd" = "yes" ; then
 2657:   echo "CONFIG_EVENTFD=y" >> $config_host_mak
 2658: fi
 2659: if test "$fallocate" = "yes" ; then
 2660:   echo "CONFIG_FALLOCATE=y" >> $config_host_mak
 2661: fi
 2662: if test "$sync_file_range" = "yes" ; then
 2663:   echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
 2664: fi
 2665: if test "$fiemap" = "yes" ; then
 2666:   echo "CONFIG_FIEMAP=y" >> $config_host_mak
 2667: fi
 2668: if test "$dup3" = "yes" ; then
 2669:   echo "CONFIG_DUP3=y" >> $config_host_mak
 2670: fi
 2671: if test "$inotify" = "yes" ; then
 2672:   echo "CONFIG_INOTIFY=y" >> $config_host_mak
 2673: fi
 2674: if test "$inotify1" = "yes" ; then
 2675:   echo "CONFIG_INOTIFY1=y" >> $config_host_mak
 2676: fi
 2677: if test "$byteswap_h" = "yes" ; then
 2678:   echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
 2679: fi
 2680: if test "$bswap_h" = "yes" ; then
 2681:   echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
 2682: fi
 2683: if test "$curl" = "yes" ; then
 2684:   echo "CONFIG_CURL=y" >> $config_host_mak
 2685:   echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
 2686: fi
 2687: if test "$brlapi" = "yes" ; then
 2688:   echo "CONFIG_BRLAPI=y" >> $config_host_mak
 2689: fi
 2690: if test "$bluez" = "yes" ; then
 2691:   echo "CONFIG_BLUEZ=y" >> $config_host_mak
 2692:   echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
 2693: fi
 2694: if test "$xen" = "yes" ; then
 2695:   echo "CONFIG_XEN=y" >> $config_host_mak
 2696: fi
 2697: if test "$io_thread" = "yes" ; then
 2698:   echo "CONFIG_IOTHREAD=y" >> $config_host_mak
 2699:   echo "CONFIG_THREAD=y" >> $config_host_mak
 2700: fi
 2701: if test "$linux_aio" = "yes" ; then
 2702:   echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
 2703: fi
 2704: if test "$attr" = "yes" ; then
 2705:   echo "CONFIG_ATTR=y" >> $config_host_mak
 2706: fi
 2707: if test "$linux" = "yes" ; then
 2708:   if test "$attr" = "yes" ; then
 2709:     echo "CONFIG_VIRTFS=y" >> $config_host_mak
 2710:   fi
 2711: fi
 2712: if test "$blobs" = "yes" ; then
 2713:   echo "INSTALL_BLOBS=yes" >> $config_host_mak
 2714: fi
 2715: if test "$iovec" = "yes" ; then
 2716:   echo "CONFIG_IOVEC=y" >> $config_host_mak
 2717: fi
 2718: if test "$preadv" = "yes" ; then
 2719:   echo "CONFIG_PREADV=y" >> $config_host_mak
 2720: fi
 2721: if test "$fdt" = "yes" ; then
 2722:   echo "CONFIG_FDT=y" >> $config_host_mak
 2723: fi
 2724: if test "$signalfd" = "yes" ; then
 2725:   echo "CONFIG_SIGNALFD=y" >> $config_host_mak
 2726: fi
 2727: if test "$need_offsetof" = "yes" ; then
 2728:   echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
 2729: fi
 2730: if test "$gcc_attribute_warn_unused_result" = "yes" ; then
 2731:   echo "CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT=y" >> $config_host_mak
 2732: fi
 2733: if test "$fdatasync" = "yes" ; then
 2734:   echo "CONFIG_FDATASYNC=y" >> $config_host_mak
 2735: fi
 2736: if test "$madvise" = "yes" ; then
 2737:   echo "CONFIG_MADVISE=y" >> $config_host_mak
 2738: fi
 2739: if test "$posix_madvise" = "yes" ; then
 2740:   echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
 2741: fi
 2742: 
 2743: if test "$spice" = "yes" ; then
 2744:   echo "CONFIG_SPICE=y" >> $config_host_mak
 2745: fi
 2746: 
 2747: # XXX: suppress that
 2748: if [ "$bsd" = "yes" ] ; then
 2749:   echo "CONFIG_BSD=y" >> $config_host_mak
 2750: fi
 2751: 
 2752: echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
 2753: 
 2754: if test "$zero_malloc" = "yes" ; then
 2755:   echo "CONFIG_ZERO_MALLOC=y" >> $config_host_mak
 2756: fi
 2757: if test "$rbd" = "yes" ; then
 2758:   echo "CONFIG_RBD=y" >> $config_host_mak
 2759: fi
 2760: 
 2761: # USB host support
 2762: case "$usb" in
 2763: linux)
 2764:   echo "HOST_USB=linux" >> $config_host_mak
 2765: ;;
 2766: bsd)
 2767:   echo "HOST_USB=bsd" >> $config_host_mak
 2768: ;;
 2769: *)
 2770:   echo "HOST_USB=stub" >> $config_host_mak
 2771: ;;
 2772: esac
 2773: 
 2774: echo "TRACE_BACKEND=$trace_backend" >> $config_host_mak
 2775: if test "$trace_backend" = "simple"; then
 2776:   echo "CONFIG_SIMPLE_TRACE=y" >> $config_host_mak
 2777: fi
 2778: # Set the appropriate trace file.
 2779: if test "$trace_backend" = "simple"; then
 2780:   trace_file="\"$trace_file-%u\""
 2781: fi
 2782: if test "$trace_backend" = "dtrace" -a "$trace_backend_stap" = "yes" ; then
 2783:   echo "CONFIG_SYSTEMTAP_TRACE=y" >> $config_host_mak
 2784: fi
 2785: echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
 2786: 
 2787: echo "TOOLS=$tools" >> $config_host_mak
 2788: echo "ROMS=$roms" >> $config_host_mak
 2789: echo "MAKE=$make" >> $config_host_mak
 2790: echo "INSTALL=$install" >> $config_host_mak
 2791: echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
 2792: echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
 2793: echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
 2794: echo "CC=$cc" >> $config_host_mak
 2795: echo "CC_I386=$cc_i386" >> $config_host_mak
 2796: echo "HOST_CC=$host_cc" >> $config_host_mak
 2797: echo "AR=$ar" >> $config_host_mak
 2798: echo "OBJCOPY=$objcopy" >> $config_host_mak
 2799: echo "LD=$ld" >> $config_host_mak
 2800: echo "WINDRES=$windres" >> $config_host_mak
 2801: echo "CFLAGS=$CFLAGS" >> $config_host_mak
 2802: echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
 2803: echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
 2804: if test "$sparse" = "yes" ; then
 2805:   echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
 2806:   echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
 2807:   echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
 2808: fi
 2809: echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
 2810: echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
 2811: echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
 2812: echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
 2813: echo "LIBS+=$LIBS" >> $config_host_mak
 2814: echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
 2815: echo "EXESUF=$EXESUF" >> $config_host_mak
 2816: 
 2817: # generate list of library paths for linker script
 2818: 
 2819: $ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}
 2820: 
 2821: if test -f ${config_host_ld}~ ; then
 2822:   if cmp -s $config_host_ld ${config_host_ld}~ ; then
 2823:     mv ${config_host_ld}~ $config_host_ld
 2824:   else
 2825:     rm ${config_host_ld}~
 2826:   fi
 2827: fi
 2828: 
 2829: for d in libdis libdis-user; do
 2830:     mkdir -p $d
 2831:     symlink $source_path/Makefile.dis $d/Makefile
 2832:     echo > $d/config.mak
 2833: done
 2834: if test "$static" = "no" -a "$user_pie" = "yes" ; then
 2835:   echo "QEMU_CFLAGS+=-fpie" > libdis-user/config.mak
 2836: fi
 2837: 
 2838: for target in $target_list; do
 2839: target_dir="$target"
 2840: config_target_mak=$target_dir/config-target.mak
 2841: target_arch2=`echo $target | cut -d '-' -f 1`
 2842: target_bigendian="no"
 2843: 
 2844: case "$target_arch2" in
 2845:   armeb|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus)
 2846:   target_bigendian=yes
 2847:   ;;
 2848: esac
 2849: target_softmmu="no"
 2850: target_user_only="no"
 2851: target_linux_user="no"
 2852: target_darwin_user="no"
 2853: target_bsd_user="no"
 2854: case "$target" in
 2855:   ${target_arch2}-softmmu)
 2856:     target_softmmu="yes"
 2857:     ;;
 2858:   ${target_arch2}-linux-user)
 2859:     if test "$linux" != "yes" ; then
 2860:       echo "ERROR: Target '$target' is only available on a Linux host"
 2861:       exit 1
 2862:     fi
 2863:     target_user_only="yes"
 2864:     target_linux_user="yes"
 2865:     ;;
 2866:   ${target_arch2}-darwin-user)
 2867:     if test "$darwin" != "yes" ; then
 2868:       echo "ERROR: Target '$target' is only available on a Darwin host"
 2869:       exit 1
 2870:     fi
 2871:     target_user_only="yes"
 2872:     target_darwin_user="yes"
 2873:     ;;
 2874:   ${target_arch2}-bsd-user)
 2875:     if test "$bsd" != "yes" ; then
 2876:       echo "ERROR: Target '$target' is only available on a BSD host"
 2877:       exit 1
 2878:     fi
 2879:     target_user_only="yes"
 2880:     target_bsd_user="yes"
 2881:     ;;
 2882:   *)
 2883:     echo "ERROR: Target '$target' not recognised"
 2884:     exit 1
 2885:     ;;
 2886: esac
 2887: 
 2888: mkdir -p $target_dir
 2889: mkdir -p $target_dir/fpu
 2890: mkdir -p $target_dir/tcg
 2891: mkdir -p $target_dir/ide
 2892: if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
 2893:   mkdir -p $target_dir/nwfpe
 2894: fi
 2895: symlink $source_path/Makefile.target $target_dir/Makefile
 2896: 
 2897: 
 2898: echo "# Automatically generated by configure - do not modify" > $config_target_mak
 2899: 
 2900: bflt="no"
 2901: target_nptl="no"
 2902: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 2903: echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
 2904: gdb_xml_files=""
 2905: 
 2906: TARGET_ARCH="$target_arch2"
 2907: TARGET_BASE_ARCH=""
 2908: TARGET_ABI_DIR=""
 2909: 
 2910: case "$target_arch2" in
 2911:   i386)
 2912:     target_phys_bits=32
 2913:   ;;
 2914:   x86_64)
 2915:     TARGET_BASE_ARCH=i386
 2916:     target_phys_bits=64
 2917:   ;;
 2918:   alpha)
 2919:     target_phys_bits=64
 2920:     target_nptl="yes"
 2921:   ;;
 2922:   arm|armeb)
 2923:     TARGET_ARCH=arm
 2924:     bflt="yes"
 2925:     target_nptl="yes"
 2926:     gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
 2927:     target_phys_bits=32
 2928:   ;;
 2929:   cris)
 2930:     target_nptl="yes"
 2931:     target_phys_bits=32
 2932:   ;;
 2933:   m68k)
 2934:     bflt="yes"
 2935:     gdb_xml_files="cf-core.xml cf-fp.xml"
 2936:     target_phys_bits=32
 2937:   ;;
 2938:   microblaze)
 2939:     bflt="yes"
 2940:     target_nptl="yes"
 2941:     target_phys_bits=32
 2942:   ;;
 2943:   mips|mipsel)
 2944:     TARGET_ARCH=mips
 2945:     echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
 2946:     target_nptl="yes"
 2947:     target_phys_bits=64
 2948:   ;;
 2949:   mipsn32|mipsn32el)
 2950:     TARGET_ARCH=mipsn32
 2951:     TARGET_BASE_ARCH=mips
 2952:     echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
 2953:     target_phys_bits=64
 2954:   ;;
 2955:   mips64|mips64el)
 2956:     TARGET_ARCH=mips64
 2957:     TARGET_BASE_ARCH=mips
 2958:     echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
 2959:     target_phys_bits=64
 2960:   ;;
 2961:   ppc)
 2962:     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 2963:     target_phys_bits=32
 2964:     target_nptl="yes"
 2965:   ;;
 2966:   ppcemb)
 2967:     TARGET_BASE_ARCH=ppc
 2968:     TARGET_ABI_DIR=ppc
 2969:     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 2970:     target_phys_bits=64
 2971:     target_nptl="yes"
 2972:   ;;
 2973:   ppc64)
 2974:     TARGET_BASE_ARCH=ppc
 2975:     TARGET_ABI_DIR=ppc
 2976:     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 2977:     target_phys_bits=64
 2978:   ;;
 2979:   ppc64abi32)
 2980:     TARGET_ARCH=ppc64
 2981:     TARGET_BASE_ARCH=ppc
 2982:     TARGET_ABI_DIR=ppc
 2983:     echo "TARGET_ABI32=y" >> $config_target_mak
 2984:     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 2985:     target_phys_bits=64
 2986:   ;;
 2987:   sh4|sh4eb)
 2988:     TARGET_ARCH=sh4
 2989:     bflt="yes"
 2990:     target_nptl="yes"
 2991:     target_phys_bits=32
 2992:   ;;
 2993:   sparc)
 2994:     target_phys_bits=64
 2995:   ;;
 2996:   sparc64)
 2997:     TARGET_BASE_ARCH=sparc
 2998:     target_phys_bits=64
 2999:   ;;
 3000:   sparc32plus)
 3001:     TARGET_ARCH=sparc64
 3002:     TARGET_BASE_ARCH=sparc
 3003:     TARGET_ABI_DIR=sparc
 3004:     echo "TARGET_ABI32=y" >> $config_target_mak
 3005:     target_phys_bits=64
 3006:   ;;
 3007:   s390x)
 3008:     target_phys_bits=64
 3009:   ;;
 3010:   *)
 3011:     echo "Unsupported target CPU"
 3012:     exit 1
 3013:   ;;
 3014: esac
 3015: echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
 3016: target_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`"
 3017: echo "TARGET_$target_arch_name=y" >> $config_target_mak
 3018: echo "TARGET_ARCH2=$target_arch2" >> $config_target_mak
 3019: # TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
 3020: if [ "$TARGET_BASE_ARCH" = "" ]; then
 3021:   TARGET_BASE_ARCH=$TARGET_ARCH
 3022: fi
 3023: echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
 3024: if [ "$TARGET_ABI_DIR" = "" ]; then
 3025:   TARGET_ABI_DIR=$TARGET_ARCH
 3026: fi
 3027: echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
 3028: case "$target_arch2" in
 3029:   i386|x86_64)
 3030:     if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
 3031:       echo "CONFIG_XEN=y" >> $config_target_mak
 3032:     fi
 3033: esac
 3034: case "$target_arch2" in
 3035:   i386|x86_64|ppcemb|ppc|ppc64|s390x)
 3036:     # Make sure the target and host cpus are compatible
 3037:     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
 3038:       \( "$target_arch2" = "$cpu" -o \
 3039:       \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \
 3040:       \( "$target_arch2" = "ppc64"  -a "$cpu" = "ppc" \) -o \
 3041:       \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
 3042:       \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
 3043:       echo "CONFIG_KVM=y" >> $config_target_mak
 3044:       echo "KVM_CFLAGS=$kvm_cflags" >> $config_target_mak
 3045:       if test "$kvm_para" = "yes"; then
 3046:         echo "CONFIG_KVM_PARA=y" >> $config_target_mak
 3047:       fi
 3048:       if test $vhost_net = "yes" ; then
 3049:         echo "CONFIG_VHOST_NET=y" >> $config_target_mak
 3050:       fi
 3051:     fi
 3052: esac
 3053: if test "$target_bigendian" = "yes" ; then
 3054:   echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
 3055: fi
 3056: if test "$target_softmmu" = "yes" ; then
 3057:   echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak
 3058:   echo "CONFIG_SOFTMMU=y" >> $config_target_mak
 3059:   echo "LIBS+=$libs_softmmu" >> $config_target_mak
 3060:   echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak
 3061:   echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
 3062: fi
 3063: if test "$target_user_only" = "yes" ; then
 3064:   echo "CONFIG_USER_ONLY=y" >> $config_target_mak
 3065: fi
 3066: if test "$target_linux_user" = "yes" ; then
 3067:   echo "CONFIG_LINUX_USER=y" >> $config_target_mak
 3068: fi
 3069: if test "$target_darwin_user" = "yes" ; then
 3070:   echo "CONFIG_DARWIN_USER=y" >> $config_target_mak
 3071: fi
 3072: list=""
 3073: if test ! -z "$gdb_xml_files" ; then
 3074:   for x in $gdb_xml_files; do
 3075:     list="$list $source_path/gdb-xml/$x"
 3076:   done
 3077:   echo "TARGET_XML_FILES=$list" >> $config_target_mak
 3078: fi
 3079: 
 3080: case "$target_arch2" in
 3081:   i386|x86_64)
 3082:     echo "CONFIG_NOSOFTFLOAT=y" >> $config_target_mak
 3083:     ;;
 3084:   *)
 3085:     echo "CONFIG_SOFTFLOAT=y" >> $config_target_mak
 3086:     ;;
 3087: esac
 3088: 
 3089: if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
 3090:   echo "TARGET_HAS_BFLT=y" >> $config_target_mak
 3091: fi
 3092: if test "$target_user_only" = "yes" \
 3093:         -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
 3094:   echo "CONFIG_USE_NPTL=y" >> $config_target_mak
 3095: fi
 3096: if test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then
 3097:   echo "CONFIG_USE_GUEST_BASE=y" >> $config_target_mak
 3098: fi
 3099: if test "$target_bsd_user" = "yes" ; then
 3100:   echo "CONFIG_BSD_USER=y" >> $config_target_mak
 3101: fi
 3102: 
 3103: # generate QEMU_CFLAGS/LDFLAGS for targets
 3104: 
 3105: cflags=""
 3106: includes=""
 3107: ldflags=""
 3108: 
 3109: if test "$ARCH" = "sparc64" ; then
 3110:   includes="-I\$(SRC_PATH)/tcg/sparc $includes"
 3111: elif test "$ARCH" = "s390x" ; then
 3112:   includes="-I\$(SRC_PATH)/tcg/s390 $includes"
 3113: elif test "$ARCH" = "x86_64" ; then
 3114:   includes="-I\$(SRC_PATH)/tcg/i386 $includes"
 3115: else
 3116:   includes="-I\$(SRC_PATH)/tcg/\$(ARCH) $includes"
 3117: fi
 3118: includes="-I\$(SRC_PATH)/tcg $includes"
 3119: includes="-I\$(SRC_PATH)/fpu $includes"
 3120: 
 3121: if test "$target_user_only" = "yes" ; then
 3122:     libdis_config_mak=libdis-user/config.mak
 3123: else
 3124:     libdis_config_mak=libdis/config.mak
 3125: fi
 3126: 
 3127: for i in $ARCH $TARGET_BASE_ARCH ; do
 3128:   case "$i" in
 3129:   alpha)
 3130:     echo "CONFIG_ALPHA_DIS=y"  >> $config_target_mak
 3131:     echo "CONFIG_ALPHA_DIS=y"  >> $libdis_config_mak
 3132:   ;;
 3133:   arm)
 3134:     echo "CONFIG_ARM_DIS=y"  >> $config_target_mak
 3135:     echo "CONFIG_ARM_DIS=y"  >> $libdis_config_mak
 3136:   ;;
 3137:   cris)
 3138:     echo "CONFIG_CRIS_DIS=y"  >> $config_target_mak
 3139:     echo "CONFIG_CRIS_DIS=y"  >> $libdis_config_mak
 3140:   ;;
 3141:   hppa)
 3142:     echo "CONFIG_HPPA_DIS=y"  >> $config_target_mak
 3143:     echo "CONFIG_HPPA_DIS=y"  >> $libdis_config_mak
 3144:   ;;
 3145:   i386|x86_64)
 3146:     echo "CONFIG_I386_DIS=y"  >> $config_target_mak
 3147:     echo "CONFIG_I386_DIS=y"  >> $libdis_config_mak
 3148:   ;;
 3149:   ia64*)
 3150:     echo "CONFIG_IA64_DIS=y"  >> $config_target_mak
 3151:     echo "CONFIG_IA64_DIS=y"  >> $libdis_config_mak
 3152:   ;;
 3153:   m68k)
 3154:     echo "CONFIG_M68K_DIS=y"  >> $config_target_mak
 3155:     echo "CONFIG_M68K_DIS=y"  >> $libdis_config_mak
 3156:   ;;
 3157:   microblaze)
 3158:     echo "CONFIG_MICROBLAZE_DIS=y"  >> $config_target_mak
 3159:     echo "CONFIG_MICROBLAZE_DIS=y"  >> $libdis_config_mak
 3160:   ;;
 3161:   mips*)
 3162:     echo "CONFIG_MIPS_DIS=y"  >> $config_target_mak
 3163:     echo "CONFIG_MIPS_DIS=y"  >> $libdis_config_mak
 3164:   ;;
 3165:   ppc*)
 3166:     echo "CONFIG_PPC_DIS=y"  >> $config_target_mak
 3167:     echo "CONFIG_PPC_DIS=y"  >> $libdis_config_mak
 3168:   ;;
 3169:   s390*)
 3170:     echo "CONFIG_S390_DIS=y"  >> $config_target_mak
 3171:     echo "CONFIG_S390_DIS=y"  >> $libdis_config_mak
 3172:   ;;
 3173:   sh4)
 3174:     echo "CONFIG_SH4_DIS=y"  >> $config_target_mak
 3175:     echo "CONFIG_SH4_DIS=y"  >> $libdis_config_mak
 3176:   ;;
 3177:   sparc*)
 3178:     echo "CONFIG_SPARC_DIS=y"  >> $config_target_mak
 3179:     echo "CONFIG_SPARC_DIS=y"  >> $libdis_config_mak
 3180:   ;;
 3181:   esac
 3182: done
 3183: 
 3184: case "$ARCH" in
 3185: alpha)
 3186:   # Ensure there's only a single GP
 3187:   cflags="-msmall-data $cflags"
 3188: ;;
 3189: esac
 3190: 
 3191: if test "$target_softmmu" = "yes" ; then
 3192:   case "$TARGET_BASE_ARCH" in
 3193:   arm)
 3194:     cflags="-DHAS_AUDIO $cflags"
 3195:   ;;
 3196:   i386|mips|ppc)
 3197:     cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags"
 3198:   ;;
 3199:   esac
 3200: fi
 3201: 
 3202: if test "$target_user_only" = "yes" -a "$static" = "no" -a \
 3203: 	"$user_pie" = "yes" ; then
 3204:   cflags="-fpie $cflags"
 3205:   ldflags="-pie $ldflags"
 3206: fi
 3207: 
 3208: if test "$target_softmmu" = "yes" -a \( \
 3209:         "$TARGET_ARCH" = "microblaze" -o \
 3210:         "$TARGET_ARCH" = "cris" \) ; then
 3211:   echo "CONFIG_NEED_MMU=y" >> $config_target_mak
 3212: fi
 3213: 
 3214: if test "$gprof" = "yes" ; then
 3215:   echo "TARGET_GPROF=yes" >> $config_target_mak
 3216:   if test "$target_linux_user" = "yes" ; then
 3217:     cflags="-p $cflags"
 3218:     ldflags="-p $ldflags"
 3219:   fi
 3220:   if test "$target_softmmu" = "yes" ; then
 3221:     ldflags="-p $ldflags"
 3222:     echo "GPROF_CFLAGS=-p" >> $config_target_mak
 3223:   fi
 3224: fi
 3225: 
 3226: linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
 3227: if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
 3228:   case "$ARCH" in
 3229:   sparc)
 3230:     # -static is used to avoid g1/g3 usage by the dynamic linker
 3231:     ldflags="$linker_script -static $ldflags"
 3232:     ;;
 3233:   alpha | s390x)
 3234:     # The default placement of the application is fine.
 3235:     ;;
 3236:   *)
 3237:     ldflags="$linker_script $ldflags"
 3238:     ;;
 3239:   esac
 3240: fi
 3241: 
 3242: echo "LDFLAGS+=$ldflags" >> $config_target_mak
 3243: echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
 3244: echo "QEMU_INCLUDES+=$includes" >> $config_target_mak
 3245: 
 3246: done # for target in $targets
 3247: 
 3248: # build tree in object directory in case the source is not in the current directory
 3249: DIRS="tests tests/cris slirp audio block net pc-bios/optionrom"
 3250: DIRS="$DIRS roms/seabios roms/vgabios"
 3251: DIRS="$DIRS fsdev ui"
 3252: FILES="Makefile tests/Makefile"
 3253: FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
 3254: FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
 3255: FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
 3256: for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
 3257:     FILES="$FILES pc-bios/`basename $bios_file`"
 3258: done
 3259: mkdir -p $DIRS
 3260: for f in $FILES ; do
 3261:     test -e $f || symlink $source_path/$f $f
 3262: done
 3263: 
 3264: # temporary config to build submodules
 3265: for rom in seabios vgabios ; do
 3266:     config_mak=roms/$rom/config.mak
 3267:     echo "# Automatically generated by configure - do not modify" > $config_mak
 3268:     echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
 3269:     echo "CC=$cc" >> $config_mak
 3270:     echo "BCC=bcc" >> $config_mak
 3271:     echo "CPP=${cross_prefix}cpp" >> $config_mak
 3272:     echo "OBJCOPY=objcopy" >> $config_mak
 3273:     echo "IASL=iasl" >> $config_mak
 3274:     echo "LD=$ld" >> $config_mak
 3275: done
 3276: 
 3277: for hwlib in 32 64; do
 3278:   d=libhw$hwlib
 3279:   mkdir -p $d
 3280:   mkdir -p $d/ide
 3281:   symlink $source_path/Makefile.hw $d/Makefile
 3282:   echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak
 3283: done
 3284: 
 3285: d=libuser
 3286: mkdir -p $d
 3287: symlink $source_path/Makefile.user $d/Makefile
 3288: if test "$static" = "no" -a "$user_pie" = "yes" ; then
 3289:   echo "QEMU_CFLAGS+=-fpie" > $d/config.mak
 3290: fi
 3291: 
 3292: if test "$docs" = "yes" ; then
 3293:   mkdir -p QMP
 3294: fi

unix.superglobalmegacorp.com