File:  [Qemu by Fabrice Bellard] / qemu / configure
Revision 1.1.1.11 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:34:29 2018 UTC (2 years, 5 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu0121, qemu0120, HEAD
qemu 0.12.0

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

unix.superglobalmegacorp.com