File:  [Qemu by Fabrice Bellard] / qemu / configure
Revision 1.1.1.9 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:20:49 2018 UTC (2 years, 3 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu0110, HEAD
qemu 0.11.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}"
   17: TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
   18: TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
   19: TMPSDLLOG="${TMPDIR1}/qemu-conf-sdl-$$-${RANDOM}.log"
   20: 
   21: trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG; exit" 0 2 3 15
   22: 
   23: # default parameters
   24: prefix=""
   25: interp_prefix="/usr/gnemul/qemu-%M"
   26: static="no"
   27: cross_prefix=""
   28: cc="gcc"
   29: audio_drv_list=""
   30: audio_card_list="ac97 es1370 sb16"
   31: audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
   32: host_cc="gcc"
   33: ar="ar"
   34: make="make"
   35: install="install"
   36: strip="strip"
   37: objcopy="objcopy"
   38: ld="ld"
   39: 
   40: # parse CC options first
   41: for opt do
   42:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
   43:   case "$opt" in
   44:   --cross-prefix=*) cross_prefix="$optarg"
   45:   ;;
   46:   --cc=*) cc="$optarg"
   47:   ;;
   48:   esac
   49: done
   50: 
   51: # OS specific
   52: # Using uname is really, really broken.  Once we have the right set of checks
   53: # we can eliminate it's usage altogether
   54: 
   55: cc="${cross_prefix}${cc}"
   56: ar="${cross_prefix}${ar}"
   57: strip="${cross_prefix}${strip}"
   58: objcopy="${cross_prefix}${objcopy}"
   59: ld="${cross_prefix}${ld}"
   60: 
   61: # check that the C compiler works.
   62: cat > $TMPC <<EOF
   63: int main(void) {}
   64: EOF
   65: 
   66: if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then
   67:   : C compiler works ok
   68: else
   69:     echo "ERROR: \"$cc\" either does not exist or does not work"
   70:     exit 1
   71: fi
   72: 
   73: check_define() {
   74: cat > $TMPC <<EOF
   75: #if !defined($1)
   76: #error Not defined
   77: #endif
   78: int main(void) { return 0; }
   79: EOF
   80:   $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null
   81: }
   82: 
   83: if check_define __i386__ ; then
   84:   cpu="i386"
   85: elif check_define __x86_64__ ; then
   86:   cpu="x86_64"
   87: elif check_define __sparc__ ; then
   88:   # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
   89:   # They must be specified using --sparc_cpu
   90:   if check_define __arch64__ ; then
   91:     cpu="sparc64"
   92:   else
   93:     cpu="sparc"
   94:   fi
   95: elif check_define _ARCH_PPC ; then
   96:   if check_define _ARCH_PPC64 ; then
   97:     cpu="ppc64"
   98:   else
   99:     cpu="ppc"
  100:   fi
  101: else
  102:   cpu=`uname -m`
  103: fi
  104: 
  105: target_list=""
  106: case "$cpu" in
  107:   i386|i486|i586|i686|i86pc|BePC)
  108:     cpu="i386"
  109:   ;;
  110:   x86_64|amd64)
  111:     cpu="x86_64"
  112:   ;;
  113:   alpha)
  114:     cpu="alpha"
  115:   ;;
  116:   armv*b)
  117:     cpu="armv4b"
  118:   ;;
  119:   armv*l)
  120:     cpu="armv4l"
  121:   ;;
  122:   cris)
  123:     cpu="cris"
  124:   ;;
  125:   parisc|parisc64)
  126:     cpu="hppa"
  127:   ;;
  128:   ia64)
  129:     cpu="ia64"
  130:   ;;
  131:   m68k)
  132:     cpu="m68k"
  133:   ;;
  134:   microblaze)
  135:     cpu="microblaze"
  136:   ;;
  137:   mips)
  138:     cpu="mips"
  139:   ;;
  140:   mips64)
  141:     cpu="mips64"
  142:   ;;
  143:   ppc)
  144:     cpu="ppc"
  145:   ;;
  146:   ppc64)
  147:     cpu="ppc64"
  148:   ;;
  149:   s390*)
  150:     cpu="s390"
  151:   ;;
  152:   sparc|sun4[cdmuv])
  153:     cpu="sparc"
  154:   ;;
  155:   sparc64)
  156:     cpu="sparc64"
  157:   ;;
  158:   *)
  159:     cpu="unknown"
  160:   ;;
  161: esac
  162: gprof="no"
  163: debug_tcg="no"
  164: debug="no"
  165: sparse="no"
  166: strip_opt="yes"
  167: bigendian="no"
  168: mingw32="no"
  169: EXESUF=""
  170: slirp="yes"
  171: vde="yes"
  172: fmod_lib=""
  173: fmod_inc=""
  174: oss_lib=""
  175: vnc_tls="yes"
  176: vnc_sasl="yes"
  177: bsd="no"
  178: linux="no"
  179: solaris="no"
  180: kqemu="no"
  181: profiler="no"
  182: cocoa="no"
  183: softmmu="yes"
  184: linux_user="no"
  185: darwin_user="no"
  186: bsd_user="no"
  187: build_docs="yes"
  188: uname_release=""
  189: curses="yes"
  190: curl="yes"
  191: pthread="yes"
  192: aio="yes"
  193: io_thread="no"
  194: nptl="yes"
  195: mixemu="no"
  196: bluez="yes"
  197: kvm="no"
  198: kerneldir=""
  199: aix="no"
  200: blobs="yes"
  201: fdt="yes"
  202: sdl="yes"
  203: sdl_x11="no"
  204: xen="yes"
  205: pkgversion=""
  206: 
  207: # OS specific
  208: if check_define __linux__ ; then
  209:   targetos="Linux"
  210: elif check_define _WIN32 ; then
  211:   targetos='MINGW32'
  212: elif check_define __OpenBSD__ ; then
  213:   targetos='OpenBSD'
  214: elif check_define __sun__ ; then
  215:   targetos='SunOS'
  216: else
  217:   targetos=`uname -s`
  218: fi
  219: case $targetos in
  220: CYGWIN*)
  221: mingw32="yes"
  222: OS_CFLAGS="-mno-cygwin"
  223: if [ "$cpu" = "i386" ] ; then
  224:     kqemu="yes"
  225: fi
  226: audio_possible_drivers="sdl"
  227: ;;
  228: MINGW32*)
  229: mingw32="yes"
  230: if [ "$cpu" = "i386" ] ; then
  231:     kqemu="yes"
  232: fi
  233: audio_possible_drivers="dsound sdl fmod"
  234: ;;
  235: GNU/kFreeBSD)
  236: audio_drv_list="oss"
  237: audio_possible_drivers="oss sdl esd pa"
  238: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  239:     kqemu="yes"
  240: fi
  241: ;;
  242: FreeBSD)
  243: bsd="yes"
  244: audio_drv_list="oss"
  245: audio_possible_drivers="oss sdl esd pa"
  246: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  247:     kqemu="yes"
  248: fi
  249: ;;
  250: DragonFly)
  251: bsd="yes"
  252: audio_drv_list="oss"
  253: audio_possible_drivers="oss sdl esd pa"
  254: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  255:     kqemu="yes"
  256: fi
  257: aio="no"
  258: ;;
  259: NetBSD)
  260: bsd="yes"
  261: audio_drv_list="oss"
  262: audio_possible_drivers="oss sdl esd"
  263: oss_lib="-lossaudio"
  264: ;;
  265: OpenBSD)
  266: bsd="yes"
  267: openbsd="yes"
  268: audio_drv_list="oss"
  269: audio_possible_drivers="oss sdl esd"
  270: oss_lib="-lossaudio"
  271: ;;
  272: Darwin)
  273: bsd="yes"
  274: darwin="yes"
  275: # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can run 64-bit userspace code
  276: if [ "$cpu" = "i386" ] ; then
  277:     is_x86_64=`sysctl -n hw.optional.x86_64`
  278:     [ "$is_x86_64" = "1" ] && cpu=x86_64
  279: fi
  280: if [ "$cpu" = "x86_64" ] ; then
  281:     OS_CFLAGS="-arch x86_64"
  282:     LDFLAGS="-arch x86_64"
  283: else
  284:     OS_CFLAGS="-mdynamic-no-pic"
  285: fi
  286: darwin_user="yes"
  287: cocoa="yes"
  288: audio_drv_list="coreaudio"
  289: audio_possible_drivers="coreaudio sdl fmod"
  290: OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
  291: ;;
  292: SunOS)
  293:     solaris="yes"
  294:     make="gmake"
  295:     install="ginstall"
  296:     needs_libsunmath="no"
  297:     solarisrev=`uname -r | cut -f2 -d.`
  298:     # have to select again, because `uname -m` returns i86pc
  299:     # even on an x86_64 box.
  300:     solariscpu=`isainfo -k`
  301:     if test "${solariscpu}" = "amd64" ; then
  302:         cpu="x86_64"
  303:     fi
  304:     if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  305:         if test "$solarisrev" -le 9 ; then
  306:             if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
  307:                 needs_libsunmath="yes"
  308:             else
  309:                 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
  310:                 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
  311:                 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
  312:                 echo "Studio 11 can be downloaded from www.sun.com."
  313:                 exit 1
  314:             fi
  315:         fi
  316:         if test "$solarisrev" -ge 9 ; then
  317:             kqemu="yes"
  318:         fi
  319:     fi
  320:     if test -f /usr/include/sys/soundcard.h ; then
  321:         audio_drv_list="oss"
  322:     fi
  323:     audio_possible_drivers="oss sdl"
  324:     OS_CFLAGS=-std=gnu99
  325: ;;
  326: AIX)
  327: aix="yes"
  328: make="gmake"
  329: ;;
  330: *)
  331: audio_drv_list="oss"
  332: audio_possible_drivers="oss alsa sdl esd pa"
  333: linux="yes"
  334: linux_user="yes"
  335: usb="linux"
  336: kvm="yes"
  337: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  338:     kqemu="yes"
  339:     audio_possible_drivers="$audio_possible_drivers fmod"
  340: fi
  341: ;;
  342: esac
  343: 
  344: if [ "$bsd" = "yes" ] ; then
  345:   if [ "$darwin" != "yes" ] ; then
  346:     make="gmake"
  347:     usb="bsd"
  348:   fi
  349:   bsd_user="yes"
  350: fi
  351: 
  352: # find source path
  353: source_path=`dirname "$0"`
  354: source_path_used="no"
  355: workdir=`pwd`
  356: if [ -z "$source_path" ]; then
  357:     source_path=$workdir
  358: else
  359:     source_path=`cd "$source_path"; pwd`
  360: fi
  361: [ -f "$workdir/vl.c" ] || source_path_used="yes"
  362: 
  363: werror=""
  364: 
  365: for opt do
  366:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
  367:   case "$opt" in
  368:   --help|-h) show_help=yes
  369:   ;;
  370:   --prefix=*) prefix="$optarg"
  371:   ;;
  372:   --interp-prefix=*) interp_prefix="$optarg"
  373:   ;;
  374:   --source-path=*) source_path="$optarg"
  375:   source_path_used="yes"
  376:   ;;
  377:   --cross-prefix=*)
  378:   ;;
  379:   --cc=*)
  380:   ;;
  381:   --host-cc=*) host_cc="$optarg"
  382:   ;;
  383:   --make=*) make="$optarg"
  384:   ;;
  385:   --install=*) install="$optarg"
  386:   ;;
  387:   --extra-cflags=*) EXTRA_CFLAGS="$optarg"
  388:   ;;
  389:   --extra-ldflags=*) EXTRA_LDFLAGS="$optarg"
  390:   ;;
  391:   --cpu=*) cpu="$optarg"
  392:   ;;
  393:   --target-list=*) target_list="$optarg"
  394:   ;;
  395:   --enable-gprof) gprof="yes"
  396:   ;;
  397:   --static) static="yes"
  398:   ;;
  399:   --disable-sdl) sdl="no"
  400:   ;;
  401:   --fmod-lib=*) fmod_lib="$optarg"
  402:   ;;
  403:   --fmod-inc=*) fmod_inc="$optarg"
  404:   ;;
  405:   --oss-lib=*) oss_lib="$optarg"
  406:   ;;
  407:   --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
  408:   ;;
  409:   --audio-drv-list=*) audio_drv_list="$optarg"
  410:   ;;
  411:   --enable-debug-tcg) debug_tcg="yes"
  412:   ;;
  413:   --disable-debug-tcg) debug_tcg="no"
  414:   ;;
  415:   --enable-debug)
  416:       # Enable debugging options that aren't excessively noisy
  417:       debug_tcg="yes"
  418:       debug="yes"
  419:       strip_opt="no"
  420:   ;;
  421:   --enable-sparse) sparse="yes"
  422:   ;;
  423:   --disable-sparse) sparse="no"
  424:   ;;
  425:   --disable-strip) strip_opt="no"
  426:   ;;
  427:   --disable-vnc-tls) vnc_tls="no"
  428:   ;;
  429:   --disable-vnc-sasl) vnc_sasl="no"
  430:   ;;
  431:   --disable-slirp) slirp="no"
  432:   ;;
  433:   --disable-vde) vde="no"
  434:   ;;
  435:   --disable-kqemu) kqemu="no"
  436:   ;;
  437:   --disable-xen) xen="no"
  438:   ;;
  439:   --disable-brlapi) brlapi="no"
  440:   ;;
  441:   --disable-bluez) bluez="no"
  442:   ;;
  443:   --disable-kvm) kvm="no"
  444:   ;;
  445:   --enable-profiler) profiler="yes"
  446:   ;;
  447:   --enable-cocoa)
  448:       cocoa="yes" ;
  449:       sdl="no" ;
  450:       audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
  451:   ;;
  452:   --disable-system) softmmu="no"
  453:   ;;
  454:   --enable-system) softmmu="yes"
  455:   ;;
  456:   --disable-linux-user) linux_user="no"
  457:   ;;
  458:   --enable-linux-user) linux_user="yes"
  459:   ;;
  460:   --disable-darwin-user) darwin_user="no"
  461:   ;;
  462:   --enable-darwin-user) darwin_user="yes"
  463:   ;;
  464:   --disable-bsd-user) bsd_user="no"
  465:   ;;
  466:   --enable-bsd-user) bsd_user="yes"
  467:   ;;
  468:   --enable-uname-release=*) uname_release="$optarg"
  469:   ;;
  470:   --sparc_cpu=*)
  471:       sparc_cpu="$optarg"
  472:       case $sparc_cpu in
  473:         v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
  474:                  target_arch2="sparc"; cpu="sparc" ;;
  475:         v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
  476:                  target_arch2="sparc"; cpu="sparc" ;;
  477:         v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
  478:                  target_arch2="sparc64"; cpu="sparc64" ;;
  479:         *)     echo "undefined SPARC architecture. Exiting";exit 1;;
  480:       esac
  481:   ;;
  482:   --enable-werror) werror="yes"
  483:   ;;
  484:   --disable-werror) werror="no"
  485:   ;;
  486:   --disable-curses) curses="no"
  487:   ;;
  488:   --disable-curl) curl="no"
  489:   ;;
  490:   --disable-nptl) nptl="no"
  491:   ;;
  492:   --enable-mixemu) mixemu="yes"
  493:   ;;
  494:   --disable-pthread) pthread="no"
  495:   ;;
  496:   --disable-aio) aio="no"
  497:   ;;
  498:   --enable-io-thread) io_thread="yes"
  499:   ;;
  500:   --disable-blobs) blobs="no"
  501:   ;;
  502:   --kerneldir=*) kerneldir="$optarg"
  503:   ;;
  504:   --with-pkgversion=*) pkgversion=" ($optarg)"
  505:   ;;
  506:   --disable-docs) build_docs="no"
  507:   ;;
  508:   *) echo "ERROR: unknown option $opt"; show_help="yes"
  509:   ;;
  510:   esac
  511: done
  512: 
  513: # default flags for all hosts
  514: CFLAGS="$CFLAGS -g -fno-strict-aliasing"
  515: if test "$debug" = "no" ; then
  516:   CFLAGS="$CFLAGS -O2"
  517: fi
  518: CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls"
  519: LDFLAGS="$LDFLAGS -g"
  520: 
  521: # Consult white-list to determine whether to enable werror
  522: # by default.  Only enable by default for git builds
  523: if test -z "$werror" ; then
  524:     z_version=`cut -f3 -d. $source_path/VERSION`
  525:     if test "$z_version" = "50" -a \
  526:         "$linux" = "yes" ; then
  527:         werror="yes"
  528:     else
  529:         werror="no"
  530:     fi
  531: fi
  532: 
  533: if test "$werror" = "yes" ; then
  534:     CFLAGS="$CFLAGS -Werror"
  535: fi
  536: 
  537: if test "$solaris" = "no" ; then
  538:     if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
  539:         LDFLAGS="$LDFLAGS -Wl,--warn-common"
  540:     fi
  541: fi
  542: 
  543: #
  544: # If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
  545: # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
  546: #
  547: case "$cpu" in
  548:     sparc) if test -z "$sparc_cpu" ; then
  549:                ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
  550:                ARCH_LDFLAGS="-m32"
  551:            else
  552:                ARCH_CFLAGS="${SP_CFLAGS}"
  553:                ARCH_LDFLAGS="${SP_LDFLAGS}"
  554:            fi
  555:            ARCH_CFLAGS="$ARCH_CFLAGS -ffixed-g2 -ffixed-g3"
  556:            if test "$solaris" = "no" ; then
  557:                ARCH_CFLAGS="$ARCH_CFLAGS -ffixed-g1 -ffixed-g6"
  558:            fi
  559:            ;;
  560:     sparc64) if test -z "$sparc_cpu" ; then
  561:                ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
  562:                ARCH_LDFLAGS="-m64"
  563:            else
  564:                ARCH_CFLAGS="${SP_CFLAGS}"
  565:                ARCH_LDFLAGS="${SP_LDFLAGS}"
  566:            fi
  567:            if test "$solaris" = "no" ; then
  568:                ARCH_CFLAGS="$ARCH_CFLAGS -ffixed-g5 -ffixed-g6 -ffixed-g7"
  569:            else
  570:                ARCH_CFLAGS="$ARCH_CFLAGS -ffixed-g1 -ffixed-g5 -ffixed-g6 -ffixed-g7"
  571:            fi
  572:            ;;
  573:     s390)
  574:            ARCH_CFLAGS="-march=z900"
  575:            ;;
  576:     i386)
  577:            ARCH_CFLAGS="-m32"
  578:            ARCH_LDFLAGS="-m32"
  579:            ;;
  580:     x86_64)
  581:            ARCH_CFLAGS="-m64"
  582:            ARCH_LDFLAGS="-m64"
  583:            ;;
  584: esac
  585: 
  586: if test x"$show_help" = x"yes" ; then
  587: cat << EOF
  588: 
  589: Usage: configure [options]
  590: Options: [defaults in brackets after descriptions]
  591: 
  592: EOF
  593: echo "Standard options:"
  594: echo "  --help                   print this message"
  595: echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
  596: echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
  597: echo "                           use %M for cpu name [$interp_prefix]"
  598: echo "  --target-list=LIST       set target list [$target_list]"
  599: echo ""
  600: echo "kqemu kernel acceleration support:"
  601: echo "  --disable-kqemu          disable kqemu support"
  602: echo ""
  603: echo "Advanced options (experts only):"
  604: echo "  --source-path=PATH       path of source code [$source_path]"
  605: echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
  606: echo "  --cc=CC                  use C compiler CC [$cc]"
  607: echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
  608: echo "  --extra-cflags=CFLAGS    append extra C compiler flags CFLAGS"
  609: echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
  610: echo "  --make=MAKE              use specified make [$make]"
  611: echo "  --install=INSTALL        use specified install [$install]"
  612: echo "  --static                 enable static build [$static]"
  613: echo "  --enable-debug-tcg       enable TCG debugging"
  614: echo "  --disable-debug-tcg      disable TCG debugging (default)"
  615: echo "  --enable-debug           enable common debug build options"
  616: echo "  --enable-sparse          enable sparse checker"
  617: echo "  --disable-sparse         disable sparse checker (default)"
  618: echo "  --disable-strip          disable stripping binaries"
  619: echo "  --disable-werror         disable compilation abort on warning"
  620: echo "  --disable-sdl            disable SDL"
  621: echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
  622: echo "  --audio-drv-list=LIST    set audio drivers list:"
  623: echo "                           Available drivers: $audio_possible_drivers"
  624: echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
  625: echo "                           Available cards: $audio_possible_cards"
  626: echo "  --enable-mixemu          enable mixer emulation"
  627: echo "  --disable-xen            disable xen backend driver support"
  628: echo "  --disable-brlapi         disable BrlAPI"
  629: echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
  630: echo "  --disable-vnc-sasl       disable SASL encryption for VNC server"
  631: echo "  --disable-curses         disable curses output"
  632: echo "  --disable-curl           disable curl connectivity"
  633: echo "  --disable-bluez          disable bluez stack connectivity"
  634: echo "  --disable-kvm            disable KVM acceleration support"
  635: echo "  --disable-nptl           disable usermode NPTL support"
  636: echo "  --enable-system          enable all system emulation targets"
  637: echo "  --disable-system         disable all system emulation targets"
  638: echo "  --enable-linux-user      enable all linux usermode emulation targets"
  639: echo "  --disable-linux-user     disable all linux usermode emulation targets"
  640: echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
  641: echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
  642: echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
  643: echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
  644: echo "  --fmod-lib               path to FMOD library"
  645: echo "  --fmod-inc               path to FMOD includes"
  646: echo "  --oss-lib                path to OSS library"
  647: echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
  648: echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
  649: echo "  --disable-vde            disable support for vde network"
  650: echo "  --disable-pthread        disable pthread support"
  651: echo "  --disable-aio            disable AIO support"
  652: echo "  --enable-io-thread       enable IO thread"
  653: echo "  --disable-blobs          disable installing provided firmware blobs"
  654: echo "  --kerneldir=PATH         look for kernel includes in PATH"
  655: echo ""
  656: echo "NOTE: The object files are built at the place where configure is launched"
  657: exit 1
  658: fi
  659: 
  660: if test "$mingw32" = "yes" ; then
  661:     linux="no"
  662:     EXESUF=".exe"
  663:     oss="no"
  664:     linux_user="no"
  665:     bsd_user="no"
  666:     OS_CFLAGS="$OS_CFLAGS -DWIN32_LEAN_AND_MEAN -DWINVER=0x501"
  667: fi
  668: 
  669: if test ! -x "$(which cgcc 2>/dev/null)"; then
  670:     sparse="no"
  671: fi
  672: 
  673: #
  674: # Solaris specific configure tool chain decisions
  675: #
  676: if test "$solaris" = "yes" ; then
  677:   solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
  678:   if test -z "$solinst" ; then
  679:     echo "Solaris install program not found. Use --install=/usr/ucb/install or"
  680:     echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
  681:     echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
  682:     exit 1
  683:   fi
  684:   if test "$solinst" = "/usr/sbin/install" ; then
  685:     echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
  686:     echo "try ginstall from the GNU fileutils available from www.blastwave.org"
  687:     echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
  688:     exit 1
  689:   fi
  690:   sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
  691:   if test -z "$sol_ar" ; then
  692:     echo "Error: No path includes ar"
  693:     if test -f /usr/ccs/bin/ar ; then
  694:       echo "Add /usr/ccs/bin to your path and rerun configure"
  695:     fi
  696:     exit 1
  697:   fi
  698: fi
  699: 
  700: 
  701: if test -z "$target_list" ; then
  702: # these targets are portable
  703:     if [ "$softmmu" = "yes" ] ; then
  704:         target_list="\
  705: i386-softmmu \
  706: x86_64-softmmu \
  707: arm-softmmu \
  708: cris-softmmu \
  709: m68k-softmmu \
  710: microblaze-softmmu \
  711: mips-softmmu \
  712: mipsel-softmmu \
  713: mips64-softmmu \
  714: mips64el-softmmu \
  715: ppc-softmmu \
  716: ppcemb-softmmu \
  717: ppc64-softmmu \
  718: sh4-softmmu \
  719: sh4eb-softmmu \
  720: sparc-softmmu \
  721: sparc64-softmmu \
  722: "
  723:     fi
  724: # the following are Linux specific
  725:     if [ "$linux_user" = "yes" ] ; then
  726:         target_list="${target_list}\
  727: i386-linux-user \
  728: x86_64-linux-user \
  729: alpha-linux-user \
  730: arm-linux-user \
  731: armeb-linux-user \
  732: cris-linux-user \
  733: m68k-linux-user \
  734: microblaze-linux-user \
  735: mips-linux-user \
  736: mipsel-linux-user \
  737: ppc-linux-user \
  738: ppc64-linux-user \
  739: ppc64abi32-linux-user \
  740: sh4-linux-user \
  741: sh4eb-linux-user \
  742: sparc-linux-user \
  743: sparc64-linux-user \
  744: sparc32plus-linux-user \
  745: "
  746:     fi
  747: # the following are Darwin specific
  748:     if [ "$darwin_user" = "yes" ] ; then
  749:         target_list="$target_list i386-darwin-user ppc-darwin-user "
  750:     fi
  751: # the following are BSD specific
  752:     if [ "$bsd_user" = "yes" ] ; then
  753:         target_list="${target_list}\
  754: i386-bsd-user \
  755: x86_64-bsd-user \
  756: sparc-bsd-user \
  757: sparc64-bsd-user \
  758: "
  759:     fi
  760: else
  761:     target_list=`echo "$target_list" | sed -e 's/,/ /g'`
  762: fi
  763: if test -z "$target_list" ; then
  764:     echo "No targets enabled"
  765:     exit 1
  766: fi
  767: 
  768: if test -z "$cross_prefix" ; then
  769: 
  770: # ---
  771: # big/little endian test
  772: cat > $TMPC << EOF
  773: #include <inttypes.h>
  774: int main(int argc, char ** argv){
  775:         volatile uint32_t i=0x01234567;
  776:         return (*((uint8_t*)(&i))) == 0x67;
  777: }
  778: EOF
  779: 
  780: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
  781: $TMPE && bigendian="yes"
  782: else
  783: echo big/little test failed
  784: fi
  785: 
  786: else
  787: 
  788: # if cross compiling, cannot launch a program, so make a static guess
  789: if test "$cpu" = "armv4b" \
  790:      -o "$cpu" = "hppa" \
  791:      -o "$cpu" = "m68k" \
  792:      -o "$cpu" = "mips" \
  793:      -o "$cpu" = "mips64" \
  794:      -o "$cpu" = "ppc" \
  795:      -o "$cpu" = "ppc64" \
  796:      -o "$cpu" = "s390" \
  797:      -o "$cpu" = "sparc" \
  798:      -o "$cpu" = "sparc64"; then
  799:     bigendian="yes"
  800: fi
  801: 
  802: fi
  803: 
  804: # host long bits test
  805: hostlongbits="32"
  806: if test "$cpu" = "x86_64" \
  807:      -o "$cpu" = "alpha" \
  808:      -o "$cpu" = "ia64" \
  809:      -o "$cpu" = "sparc64" \
  810:      -o "$cpu" = "ppc64"; then
  811:     hostlongbits="64"
  812: fi
  813: 
  814: # Check host NPTL support
  815: cat > $TMPC <<EOF
  816: #include <sched.h>
  817: #include <linux/futex.h>
  818: void foo()
  819: {
  820: #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
  821: #error bork
  822: #endif
  823: }
  824: EOF
  825: 
  826: if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then
  827:   :
  828: else
  829:    nptl="no"
  830: fi
  831: 
  832: ##########################################
  833: # zlib check
  834: 
  835: cat > $TMPC << EOF
  836: #include <zlib.h>
  837: int main(void) { zlibVersion(); return 0; }
  838: EOF
  839: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz > /dev/null 2> /dev/null ; then
  840:     :
  841: else
  842:     echo
  843:     echo "Error: zlib check failed"
  844:     echo "Make sure to have the zlib libs and headers installed."
  845:     echo
  846:     exit 1
  847: fi
  848: 
  849: ##########################################
  850: # xen probe
  851: 
  852: if test "$xen" = "yes" ; then
  853: cat > $TMPC <<EOF
  854: #include <xenctrl.h>
  855: #include <xs.h>
  856: int main(void) { xs_daemon_open(); xc_interface_open(); return 0; }
  857: EOF
  858:    if $cc $CFLAGS $ARCH_CFLAGS -c -o $TMPO $TMPC $LDFLAGS -lxenstore -lxenctrl 2> /dev/null > /dev/null ; then
  859:       :
  860:    else
  861:       xen="no"
  862:    fi
  863: fi
  864: 
  865: ##########################################
  866: # SDL probe
  867: 
  868: sdl_too_old=no
  869: 
  870: if test "$sdl" = "yes" ; then
  871:     sdl_config="sdl-config"
  872:     sdl=no
  873:     sdl_static=no
  874: 
  875: cat > $TMPC << EOF
  876: #include <SDL.h>
  877: #undef main /* We don't want SDL to override our main() */
  878: int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
  879: EOF
  880:     if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > $TMPSDLLOG 2>&1 ; then
  881:         _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
  882:         if test "$_sdlversion" -lt 121 ; then
  883:             sdl_too_old=yes
  884:         else
  885:             if test "$cocoa" = "no" ; then
  886:                 sdl=yes
  887:             fi
  888:         fi
  889: 
  890:         # static link with sdl ?
  891:         if test "$sdl" = "yes" ; then
  892:             aa="no"
  893:             `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
  894:             sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
  895:             if [ "$aa" = "yes" ] ; then
  896:                 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
  897:             fi
  898: 
  899:             if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs > /dev/null 2> /dev/null; then
  900:                 sdl_static=yes
  901:             fi
  902:         fi # static link
  903:     fi # sdl compile test
  904: else
  905:     # Make sure to disable cocoa if sdl was set
  906:     if test "$sdl" = "yes" ; then
  907:        cocoa="no"
  908:        audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
  909:     fi
  910: fi # -z $sdl
  911: 
  912: if test "$sdl" = "yes" ; then
  913: cat > $TMPC <<EOF
  914: #include <SDL.h>
  915: #if defined(SDL_VIDEO_DRIVER_X11)
  916: #include <X11/XKBlib.h>
  917: #else
  918: #error No x11 support
  919: #endif
  920: int main(void) { return 0; }
  921: EOF
  922:     if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > /dev/null 2>&1 ; then
  923: 	sdl_x11="yes"
  924:     fi
  925: fi
  926: 
  927: ##########################################
  928: # VNC TLS detection
  929: if test "$vnc_tls" = "yes" ; then
  930: cat > $TMPC <<EOF
  931: #include <gnutls/gnutls.h>
  932: int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
  933: EOF
  934:     vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
  935:     vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
  936:     if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
  937:            $vnc_tls_libs > /dev/null 2> /dev/null ; then
  938: 	:
  939:     else
  940: 	vnc_tls="no"
  941:     fi
  942: fi
  943: 
  944: ##########################################
  945: # VNC SASL detection
  946: if test "$vnc_sasl" = "yes" ; then
  947: cat > $TMPC <<EOF
  948: #include <sasl/sasl.h>
  949: #include <stdio.h>
  950: int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
  951: EOF
  952:     # Assuming Cyrus-SASL installed in /usr prefix
  953:     vnc_sasl_cflags=""
  954:     vnc_sasl_libs="-lsasl2"
  955:     if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_sasl_cflags $TMPC \
  956:            $vnc_sasl_libs 2> /dev/null > /dev/null ; then
  957: 	:
  958:     else
  959: 	vnc_sasl="no"
  960:     fi
  961: fi
  962: 
  963: ##########################################
  964: # fnmatch() probe, used for ACL routines
  965: fnmatch="no"
  966: cat > $TMPC << EOF
  967: #include <fnmatch.h>
  968: int main(void)
  969: {
  970:     fnmatch("foo", "foo", 0);
  971:     return 0;
  972: }
  973: EOF
  974: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
  975:    fnmatch="yes"
  976: fi
  977: 
  978: ##########################################
  979: # vde libraries probe
  980: if test "$vde" = "yes" ; then
  981:   cat > $TMPC << EOF
  982: #include <libvdeplug.h>
  983: int main(void)
  984: {
  985:     struct vde_open_args a = {0, 0, 0};
  986:     vde_open("", "", &a);
  987:     return 0;
  988: }
  989: EOF
  990:     if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug > /dev/null 2> /dev/null ; then
  991:         :
  992:     else
  993:         vde="no"
  994:     fi
  995: fi
  996: 
  997: ##########################################
  998: # Sound support libraries probe
  999: 
 1000: audio_drv_probe()
 1001: {
 1002:     drv=$1
 1003:     hdr=$2
 1004:     lib=$3
 1005:     exp=$4
 1006:     cfl=$5
 1007:         cat > $TMPC << EOF
 1008: #include <$hdr>
 1009: int main(void) { $exp }
 1010: EOF
 1011:     if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib > /dev/null 2> /dev/null ; then
 1012:         :
 1013:     else
 1014:         echo
 1015:         echo "Error: $drv check failed"
 1016:         echo "Make sure to have the $drv libs and headers installed."
 1017:         echo
 1018:         exit 1
 1019:     fi
 1020: }
 1021: 
 1022: audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
 1023: for drv in $audio_drv_list; do
 1024:     case $drv in
 1025:     alsa)
 1026:     audio_drv_probe $drv alsa/asoundlib.h -lasound \
 1027:         "snd_pcm_t **handle; return snd_pcm_close(*handle);"
 1028:     ;;
 1029: 
 1030:     fmod)
 1031:     if test -z $fmod_lib || test -z $fmod_inc; then
 1032:         echo
 1033:         echo "Error: You must specify path to FMOD library and headers"
 1034:         echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
 1035:         echo
 1036:         exit 1
 1037:     fi
 1038:     audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
 1039:     ;;
 1040: 
 1041:     esd)
 1042:     audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
 1043:     ;;
 1044: 
 1045:     pa)
 1046:     audio_drv_probe $drv pulse/simple.h -lpulse-simple \
 1047:         "pa_simple *s = NULL; pa_simple_free(s); return 0;"
 1048:     ;;
 1049: 
 1050:     oss|sdl|core|wav|dsound)
 1051:     # XXX: Probes for CoreAudio, DirectSound, SDL(?)
 1052:     ;;
 1053: 
 1054:     *)
 1055:     echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
 1056:         echo
 1057:         echo "Error: Unknown driver '$drv' selected"
 1058:         echo "Possible drivers are: $audio_possible_drivers"
 1059:         echo
 1060:         exit 1
 1061:     }
 1062:     ;;
 1063:     esac
 1064: done
 1065: 
 1066: ##########################################
 1067: # BrlAPI probe
 1068: 
 1069: if test -z "$brlapi" ; then
 1070:     brlapi=no
 1071: cat > $TMPC << EOF
 1072: #include <brlapi.h>
 1073: int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
 1074: EOF
 1075:     if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi > /dev/null 2> /dev/null ; then
 1076: 	    brlapi=yes
 1077:     fi # brlapi compile test
 1078: fi # -z $brlapi
 1079: 
 1080: ##########################################
 1081: # curses probe
 1082: 
 1083: if test "$curses" = "yes" ; then
 1084:   curses=no
 1085:   ncurses=no
 1086:   cat > $TMPC << EOF
 1087: #include <curses.h>
 1088: #ifdef __OpenBSD__
 1089: #define resize_term resizeterm
 1090: #endif
 1091: int main(void) { resize_term(0, 0); return curses_version(); }
 1092: EOF
 1093:   if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lncurses > /dev/null 2> /dev/null ; then
 1094:     curses=yes
 1095:     ncurses=yes
 1096:   elif $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses > /dev/null 2> /dev/null ; then
 1097:     curses=yes
 1098:   fi
 1099: fi # test "$curses"
 1100: 
 1101: ##########################################
 1102: # curl probe
 1103: 
 1104: if test "$curl" = "yes" ; then
 1105:   curl=no
 1106:   cat > $TMPC << EOF
 1107: #include <curl/curl.h>
 1108: int main(void) { return curl_easy_init(); }
 1109: EOF
 1110:   curl_libs=`curl-config --libs 2>/dev/null`
 1111:  if $cc $ARCH_CFLAGS $curl_libs -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
 1112:     curl=yes
 1113:   fi
 1114: fi # test "$curl"
 1115: 
 1116: ##########################################
 1117: # bluez support probe
 1118: if test "$bluez" = "yes" ; then
 1119:   `pkg-config bluez 2> /dev/null` || bluez="no"
 1120: fi
 1121: if test "$bluez" = "yes" ; then
 1122:   cat > $TMPC << EOF
 1123: #include <bluetooth/bluetooth.h>
 1124: int main(void) { return bt_error(0); }
 1125: EOF
 1126:   bluez_cflags=`pkg-config --cflags bluez 2> /dev/null`
 1127:   bluez_libs=`pkg-config --libs bluez 2> /dev/null`
 1128:   if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
 1129:       $bluez_libs > /dev/null 2> /dev/null ; then
 1130:     :
 1131:   else
 1132:     bluez="no"
 1133:   fi
 1134: fi
 1135: 
 1136: ##########################################
 1137: # kvm probe
 1138: if test "$kvm" = "yes" ; then
 1139:     cat > $TMPC <<EOF
 1140: #include <linux/kvm.h>
 1141: #if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
 1142: #error Invalid KVM version
 1143: #endif
 1144: #if !defined(KVM_CAP_USER_MEMORY)
 1145: #error Missing KVM capability KVM_CAP_USER_MEMORY
 1146: #endif
 1147: #if !defined(KVM_CAP_SET_TSS_ADDR)
 1148: #error Missing KVM capability KVM_CAP_SET_TSS_ADDR
 1149: #endif
 1150: #if !defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS)
 1151: #error Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS
 1152: #endif
 1153: int main(void) { return 0; }
 1154: EOF
 1155:   if test "$kerneldir" != "" ; then
 1156:       kvm_cflags=-I"$kerneldir"/include
 1157:       if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \
 1158:          -a -d "$kerneldir/arch/x86/include" ; then
 1159:             kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include"
 1160: 	elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then
 1161: 	    kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include"
 1162:         elif test -d "$kerneldir/arch/$cpu/include" ; then
 1163:             kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
 1164:       fi
 1165:   else
 1166:       kvm_cflags=""
 1167:   fi
 1168:   if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
 1169:       > /dev/null 2>/dev/null ; then
 1170:     :
 1171:   else
 1172:     kvm="no";
 1173:     if [ -x "`which awk 2>/dev/null`" ] && \
 1174:        [ -x "`which grep 2>/dev/null`" ]; then
 1175:       kvmerr=`LANG=C $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC 2>&1 \
 1176: 	| grep "error: " \
 1177: 	| awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
 1178:       if test "$kvmerr" != "" ; then
 1179:         kvm="no - (${kvmerr})\n\
 1180:     NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \
 1181: recent kvm-kmod from http://sourceforge.net/projects/kvm."
 1182:       fi
 1183:     fi
 1184:   fi
 1185: fi
 1186: 
 1187: ##########################################
 1188: # pthread probe
 1189: PTHREADLIBS_LIST="-lpthread -lpthreadGC2"
 1190: PTHREADLIBS=""
 1191: 
 1192: if test "$pthread" = yes; then
 1193:   pthread=no
 1194: cat > $TMPC << EOF
 1195: #include <pthread.h>
 1196: int main(void) { pthread_create(0,0,0,0); return 0; }
 1197: EOF
 1198:   for pthread_lib in $PTHREADLIBS_LIST; do
 1199:     if $cc $ARCH_CFLAGS -o $TMPE $TMPC $pthread_lib 2> /dev/null > /dev/null ; then
 1200:       pthread=yes
 1201:       PTHREADLIBS="$pthread_lib"
 1202:       break
 1203:     fi
 1204:   done
 1205: fi
 1206: 
 1207: if test "$pthread" = no; then
 1208:    aio=no
 1209:    io_thread=no
 1210: fi
 1211: 
 1212: ##########################################
 1213: # iovec probe
 1214: cat > $TMPC <<EOF
 1215: #include <sys/types.h>
 1216: #include <sys/uio.h>
 1217: #include <unistd.h>
 1218: int main(void) { struct iovec iov; return 0; }
 1219: EOF
 1220: iovec=no
 1221: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
 1222:   iovec=yes
 1223: fi
 1224: 
 1225: ##########################################
 1226: # preadv probe
 1227: cat > $TMPC <<EOF
 1228: #include <sys/types.h>
 1229: #include <sys/uio.h>
 1230: #include <unistd.h>
 1231: int main(void) { preadv; }
 1232: EOF
 1233: preadv=no
 1234: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
 1235:   preadv=yes
 1236: fi
 1237: 
 1238: ##########################################
 1239: # fdt probe
 1240: if test "$fdt" = "yes" ; then
 1241:     fdt=no
 1242:     cat > $TMPC << EOF
 1243: int main(void) { return 0; }
 1244: EOF
 1245:   if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lfdt 2> /dev/null > /dev/null ; then
 1246:     fdt=yes
 1247:   fi
 1248: fi
 1249: 
 1250: #
 1251: # Check for xxxat() functions when we are building linux-user
 1252: # emulator.  This is done because older glibc versions don't
 1253: # have syscall stubs for these implemented.
 1254: #
 1255: atfile=no
 1256: cat > $TMPC << EOF
 1257: #define _ATFILE_SOURCE
 1258: #include <sys/types.h>
 1259: #include <fcntl.h>
 1260: #include <unistd.h>
 1261: 
 1262: int
 1263: main(void)
 1264: {
 1265: 	/* try to unlink nonexisting file */
 1266: 	return (unlinkat(AT_FDCWD, "nonexistent_file", 0));
 1267: }
 1268: EOF
 1269: if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null > /dev/null ; then
 1270:   atfile=yes
 1271: fi
 1272: 
 1273: # Check for inotify functions when we are building linux-user
 1274: # emulator.  This is done because older glibc versions don't
 1275: # have syscall stubs for these implemented.  In that case we
 1276: # don't provide them even if kernel supports them.
 1277: #
 1278: inotify=no
 1279: cat > $TMPC << EOF
 1280: #include <sys/inotify.h>
 1281: 
 1282: int
 1283: main(void)
 1284: {
 1285: 	/* try to start inotify */
 1286: 	return inotify_init();
 1287: }
 1288: EOF
 1289: if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null > /dev/null ; then
 1290:   inotify=yes
 1291: fi
 1292: 
 1293: # check if utimensat and futimens are supported
 1294: utimens=no
 1295: cat > $TMPC << EOF
 1296: #define _ATFILE_SOURCE
 1297: #define _GNU_SOURCE
 1298: #include <stddef.h>
 1299: #include <fcntl.h>
 1300: 
 1301: int main(void)
 1302: {
 1303:     utimensat(AT_FDCWD, "foo", NULL, 0);
 1304:     futimens(0, NULL);
 1305:     return 0;
 1306: }
 1307: EOF
 1308: if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
 1309:   utimens=yes
 1310: fi
 1311: 
 1312: # check if pipe2 is there
 1313: pipe2=no
 1314: cat > $TMPC << EOF
 1315: #define _GNU_SOURCE
 1316: #include <unistd.h>
 1317: #include <fcntl.h>
 1318: 
 1319: int main(void)
 1320: {
 1321:     int pipefd[2];
 1322:     pipe2(pipefd, O_CLOEXEC);
 1323:     return 0;
 1324: }
 1325: EOF
 1326: if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
 1327:   pipe2=yes
 1328: fi
 1329: 
 1330: # check if tee/splice is there. vmsplice was added same time.
 1331: splice=no
 1332: cat > $TMPC << EOF
 1333: #define _GNU_SOURCE
 1334: #include <unistd.h>
 1335: #include <fcntl.h>
 1336: #include <limits.h>
 1337: 
 1338: int main(void)
 1339: {
 1340:     int len, fd;
 1341:     len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
 1342:     splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
 1343:     return 0;
 1344: }
 1345: EOF
 1346: if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
 1347:   splice=yes
 1348: fi
 1349: 
 1350: # Check if tools are available to build documentation.
 1351: if test "$build_docs" = "yes" -a \( ! -x "`which texi2html 2>/dev/null`" -o ! -x "`which pod2man 2>/dev/null`" \) ; then
 1352:   build_docs="no"
 1353: fi
 1354: 
 1355: ##########################################
 1356: # Do we need librt
 1357: CLOCKLIBS=""
 1358: cat > $TMPC <<EOF
 1359: #include <signal.h>
 1360: #include <time.h>
 1361: int main(void) { clockid_t id; return clock_gettime(id, NULL); }
 1362: EOF
 1363: 
 1364: rt=no
 1365: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
 1366:   :
 1367: elif $cc $ARCH_CFLAGS -o $TMPE $TMPC -lrt > /dev/null 2> /dev/null ; then
 1368:   rt=yes
 1369: fi
 1370: 
 1371: if test "$rt" = "yes" ; then
 1372:   CLOCKLIBS="-lrt"
 1373: fi
 1374: 
 1375: if test "$mingw32" = "yes" ; then
 1376:   if test -z "$prefix" ; then
 1377:       prefix="c:/Program Files/Qemu"
 1378:   fi
 1379:   mansuffix=""
 1380:   datasuffix=""
 1381:   docsuffix=""
 1382:   binsuffix=""
 1383: else
 1384:   if test -z "$prefix" ; then
 1385:       prefix="/usr/local"
 1386:   fi
 1387:   mansuffix="/share/man"
 1388:   datasuffix="/share/qemu"
 1389:   docsuffix="/share/doc/qemu"
 1390:   binsuffix="/bin"
 1391: fi
 1392: 
 1393: echo "Install prefix    $prefix"
 1394: echo "BIOS directory    $prefix$datasuffix"
 1395: echo "binary directory  $prefix$binsuffix"
 1396: if test "$mingw32" = "no" ; then
 1397: echo "Manual directory  $prefix$mansuffix"
 1398: echo "ELF interp prefix $interp_prefix"
 1399: fi
 1400: echo "Source path       $source_path"
 1401: echo "C compiler        $cc"
 1402: echo "Host C compiler   $host_cc"
 1403: echo "ARCH_CFLAGS       $ARCH_CFLAGS"
 1404: echo "make              $make"
 1405: echo "install           $install"
 1406: echo "host CPU          $cpu"
 1407: echo "host big endian   $bigendian"
 1408: echo "target list       $target_list"
 1409: echo "tcg debug enabled $debug_tcg"
 1410: echo "gprof enabled     $gprof"
 1411: echo "sparse enabled    $sparse"
 1412: echo "strip binaries    $strip_opt"
 1413: echo "profiler          $profiler"
 1414: echo "static build      $static"
 1415: echo "-Werror enabled   $werror"
 1416: if test "$darwin" = "yes" ; then
 1417:     echo "Cocoa support     $cocoa"
 1418: fi
 1419: echo "SDL support       $sdl"
 1420: if test "$sdl" != "no" ; then
 1421:     echo "SDL static link   $sdl_static"
 1422: fi
 1423: echo "curses support    $curses"
 1424: echo "curl support      $curl"
 1425: echo "mingw32 support   $mingw32"
 1426: echo "Audio drivers     $audio_drv_list"
 1427: echo "Extra audio cards $audio_card_list"
 1428: echo "Mixer emulation   $mixemu"
 1429: echo "VNC TLS support   $vnc_tls"
 1430: if test "$vnc_tls" = "yes" ; then
 1431:     echo "    TLS CFLAGS    $vnc_tls_cflags"
 1432:     echo "    TLS LIBS      $vnc_tls_libs"
 1433: fi
 1434: echo "VNC SASL support  $vnc_sasl"
 1435: if test "$vnc_sasl" = "yes" ; then
 1436:     echo "    SASL CFLAGS    $vnc_sasl_cflags"
 1437:     echo "    SASL LIBS      $vnc_sasl_libs"
 1438: fi
 1439: if test -n "$sparc_cpu"; then
 1440:     echo "Target Sparc Arch $sparc_cpu"
 1441: fi
 1442: echo "kqemu support     $kqemu"
 1443: echo "xen support       $xen"
 1444: echo "brlapi support    $brlapi"
 1445: echo "Documentation     $build_docs"
 1446: [ ! -z "$uname_release" ] && \
 1447: echo "uname -r          $uname_release"
 1448: echo "NPTL support      $nptl"
 1449: echo "vde support       $vde"
 1450: echo "AIO support       $aio"
 1451: echo "IO thread         $io_thread"
 1452: echo "Install blobs     $blobs"
 1453: echo -e "KVM support       $kvm"
 1454: echo "fdt support       $fdt"
 1455: echo "preadv support    $preadv"
 1456: 
 1457: if test $sdl_too_old = "yes"; then
 1458: echo "-> Your SDL version is too old - please upgrade to have SDL support"
 1459: fi
 1460: #if test "$sdl_static" = "no"; then
 1461: #  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
 1462: #fi
 1463: 
 1464: config_host_mak="config-host.mak"
 1465: config_host_h="config-host.h"
 1466: 
 1467: #echo "Creating $config_host_mak and $config_host_h"
 1468: 
 1469: test -f $config_host_h && mv $config_host_h ${config_host_h}~
 1470: 
 1471: echo "# Automatically generated by configure - do not modify" > $config_host_mak
 1472: printf "# Configured with:" >> $config_host_mak
 1473: printf " '%s'" "$0" "$@" >> $config_host_mak
 1474: echo >> $config_host_mak
 1475: echo "/* Automatically generated by configure - do not modify */" > $config_host_h
 1476: 
 1477: echo "prefix=$prefix" >> $config_host_mak
 1478: echo "bindir=\${prefix}$binsuffix" >> $config_host_mak
 1479: echo "mandir=\${prefix}$mansuffix" >> $config_host_mak
 1480: echo "datadir=\${prefix}$datasuffix" >> $config_host_mak
 1481: echo "docdir=\${prefix}$docsuffix" >> $config_host_mak
 1482: echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_host_h
 1483: echo "MAKE=$make" >> $config_host_mak
 1484: echo "INSTALL=$install" >> $config_host_mak
 1485: echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
 1486: echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
 1487: echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
 1488: echo "CC=$cc" >> $config_host_mak
 1489: echo "HOST_CC=$host_cc" >> $config_host_mak
 1490: echo "AR=$ar" >> $config_host_mak
 1491: echo "OBJCOPY=$objcopy" >> $config_host_mak
 1492: echo "LD=$ld" >> $config_host_mak
 1493: echo "CFLAGS=$CFLAGS $OS_CFLAGS $ARCH_CFLAGS $EXTRA_CFLAGS" >> $config_host_mak
 1494: echo "LDFLAGS=$LDFLAGS $OS_LDFLAGS $ARCH_LDFLAGS $EXTRA_LDFLAGS" >> $config_host_mak
 1495: echo "EXESUF=$EXESUF" >> $config_host_mak
 1496: echo "PTHREADLIBS=$PTHREADLIBS" >> $config_host_mak
 1497: echo "CLOCKLIBS=$CLOCKLIBS" >> $config_host_mak
 1498: case "$cpu" in
 1499:   i386|x86_64|alpha|cris|hppa|ia64|m68k|microbaze|mips|mips64|ppc|ppc64|s390|sparc|sparc64)
 1500:     ARCH=$cpu
 1501:   ;;
 1502:   armv4b|arm4l)
 1503:     ARCH=arm
 1504:   ;;
 1505:   *)
 1506:     echo "Unsupported CPU = $cpu"
 1507:     exit 1
 1508:   ;;
 1509: esac
 1510: echo "ARCH=$ARCH" >> $config_host_mak
 1511: arch_name=`echo $ARCH | tr '[:lower:]' '[:upper:]'`
 1512: echo "#define HOST_$arch_name 1" >> $config_host_h
 1513: 
 1514: if test "$debug_tcg" = "yes" ; then
 1515:   echo "#define DEBUG_TCG 1" >> $config_host_h
 1516: fi
 1517: if test "$debug" = "yes" ; then
 1518:   echo "#define DEBUG_EXEC 1" >> $config_host_h
 1519: fi
 1520: if test "$sparse" = "yes" ; then
 1521:   echo "CC      := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
 1522:   echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
 1523:   echo "CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
 1524: fi
 1525: if test "$strip_opt" = "yes" ; then
 1526:   echo "STRIP_OPT=-s" >> $config_host_mak
 1527: fi
 1528: if test "$bigendian" = "yes" ; then
 1529:   echo "WORDS_BIGENDIAN=yes" >> $config_host_mak
 1530:   echo "#define WORDS_BIGENDIAN 1" >> $config_host_h
 1531: fi
 1532: echo "#define HOST_LONG_BITS $hostlongbits" >> $config_host_h
 1533: if test "$mingw32" = "yes" ; then
 1534:   echo "CONFIG_WIN32=y" >> $config_host_mak
 1535:   echo "#define CONFIG_WIN32 1" >> $config_host_h
 1536: else
 1537:   cat > $TMPC << EOF
 1538: #include <byteswap.h>
 1539: int main(void) { return bswap_32(0); }
 1540: EOF
 1541:   if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
 1542:     echo "#define HAVE_BYTESWAP_H 1" >> $config_host_h
 1543:   fi
 1544:   cat > $TMPC << EOF
 1545: #include <sys/endian.h>
 1546: #include <sys/types.h>
 1547: #include <machine/bswap.h>
 1548: int main(void) { return bswap32(0); }
 1549: EOF
 1550:   if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
 1551:     echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_host_h
 1552:   fi
 1553: fi
 1554: 
 1555: if [ "$openbsd" = "yes" ] ; then
 1556:   echo "#define ENOTSUP 4096" >> $config_host_h
 1557: fi
 1558: 
 1559: if test "$darwin" = "yes" ; then
 1560:   echo "CONFIG_DARWIN=y" >> $config_host_mak
 1561:   echo "#define CONFIG_DARWIN 1" >> $config_host_h
 1562: fi
 1563: 
 1564: if test "$aix" = "yes" ; then
 1565:   echo "CONFIG_AIX=y" >> $config_host_mak
 1566:   echo "#define CONFIG_AIX 1" >> $config_host_h
 1567: fi
 1568: 
 1569: if test "$solaris" = "yes" ; then
 1570:   echo "CONFIG_SOLARIS=y" >> $config_host_mak
 1571:   echo "#define HOST_SOLARIS $solarisrev" >> $config_host_h
 1572:   if test "$needs_libsunmath" = "yes" ; then
 1573:     echo "NEEDS_LIBSUNMATH=yes" >> $config_host_mak
 1574:     echo "#define NEEDS_LIBSUNMATH 1" >> $config_host_h
 1575:   fi
 1576: fi
 1577: if test -n "$sparc_cpu"; then
 1578:   echo "CONFIG__sparc_${sparc_cpu}__=y" >> $config_host_mak
 1579:   echo "#define __sparc_${sparc_cpu}__ 1" >> $config_host_h
 1580: fi
 1581: if test "$gprof" = "yes" ; then
 1582:   echo "TARGET_GPROF=yes" >> $config_host_mak
 1583:   echo "#define HAVE_GPROF 1" >> $config_host_h
 1584: fi
 1585: if test "$static" = "yes" ; then
 1586:   echo "CONFIG_STATIC=y" >> $config_host_mak
 1587:   echo "#define CONFIG_STATIC 1" >> $config_host_h
 1588: fi
 1589: if test $profiler = "yes" ; then
 1590:   echo "#define CONFIG_PROFILER 1" >> $config_host_h
 1591: fi
 1592: if test "$slirp" = "yes" ; then
 1593:   echo "CONFIG_SLIRP=y" >> $config_host_mak
 1594:   echo "#define CONFIG_SLIRP 1" >> $config_host_h
 1595: fi
 1596: if test "$vde" = "yes" ; then
 1597:   echo "CONFIG_VDE=y" >> $config_host_mak
 1598:   echo "#define CONFIG_VDE 1" >> $config_host_h
 1599:   echo "VDE_LIBS=-lvdeplug" >> $config_host_mak
 1600: fi
 1601: for card in $audio_card_list; do
 1602:     def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
 1603:     echo "$def=y" >> $config_host_mak
 1604:     echo "#define $def 1" >> $config_host_h
 1605: done
 1606: echo "#define AUDIO_DRIVERS \\" >> $config_host_h
 1607: for drv in $audio_drv_list; do
 1608:     echo "    &${drv}_audio_driver, \\" >>$config_host_h
 1609:     def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
 1610:     echo "$def=y" >> $config_host_mak
 1611:     if test "$drv" = "fmod"; then
 1612:         echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_host_mak
 1613:         echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_host_mak
 1614:     elif test "$drv" = "oss"; then
 1615:         echo "CONFIG_OSS_LIB=$oss_lib" >> $config_host_mak
 1616:     fi
 1617: done
 1618: echo "" >>$config_host_h
 1619: if test "$mixemu" = "yes" ; then
 1620:   echo "CONFIG_MIXEMU=y" >> $config_host_mak
 1621:   echo "#define CONFIG_MIXEMU 1" >> $config_host_h
 1622: fi
 1623: if test "$vnc_tls" = "yes" ; then
 1624:   echo "CONFIG_VNC_TLS=y" >> $config_host_mak
 1625:   echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
 1626:   echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_host_mak
 1627:   echo "#define CONFIG_VNC_TLS 1" >> $config_host_h
 1628: fi
 1629: if test "$vnc_sasl" = "yes" ; then
 1630:   echo "CONFIG_VNC_SASL=y" >> $config_host_mak
 1631:   echo "CONFIG_VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
 1632:   echo "CONFIG_VNC_SASL_LIBS=$vnc_sasl_libs" >> $config_host_mak
 1633:   echo "#define CONFIG_VNC_SASL 1" >> $config_host_h
 1634: fi
 1635: if test "$fnmatch" = "yes" ; then
 1636:   echo "#define HAVE_FNMATCH_H 1" >> $config_host_h
 1637: fi
 1638: qemu_version=`head $source_path/VERSION`
 1639: echo "VERSION=$qemu_version" >>$config_host_mak
 1640: echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_host_h
 1641: 
 1642: echo "#define QEMU_PKGVERSION \"$pkgversion\"" >> $config_host_h
 1643: 
 1644: echo "SRC_PATH=$source_path" >> $config_host_mak
 1645: if [ "$source_path_used" = "yes" ]; then
 1646:   echo "VPATH=$source_path" >> $config_host_mak
 1647: fi
 1648: echo "TARGET_DIRS=$target_list" >> $config_host_mak
 1649: if [ "$build_docs" = "yes" ] ; then
 1650:   echo "BUILD_DOCS=yes" >> $config_host_mak
 1651: fi
 1652: if test "$static" = "yes"; then
 1653:   sdl1=$sdl_static
 1654: else
 1655:   sdl1=$sdl
 1656: fi
 1657: if test "$sdl1" = "yes" ; then
 1658:   echo "#define CONFIG_SDL 1" >> $config_host_h
 1659:   echo "CONFIG_SDL=y" >> $config_host_mak
 1660:   if test "$target_softmmu" = "no" -o "$static" = "yes"; then
 1661:     echo "SDL_LIBS=$sdl_static_libs" >> $config_host_mak
 1662:   elif test "$sdl_x11" = "yes" ; then
 1663:     echo "SDL_LIBS=`$sdl_config --libs` -lX11" >> $config_host_mak
 1664:   else
 1665:     echo "SDL_LIBS=`$sdl_config --libs`" >> $config_host_mak
 1666:   fi
 1667:   if [ "${aa}" = "yes" ] ; then
 1668:     echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_host_mak
 1669:   else
 1670:     echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_host_mak
 1671:   fi
 1672: fi
 1673: if test "$cocoa" = "yes" ; then
 1674:   echo "#define CONFIG_COCOA 1" >> $config_host_h
 1675:   echo "CONFIG_COCOA=y" >> $config_host_mak
 1676: fi
 1677: if test "$curses" = "yes" ; then
 1678:   echo "#define CONFIG_CURSES 1" >> $config_host_h
 1679:   echo "CONFIG_CURSES=y" >> $config_host_mak
 1680:   if test "$ncurses" = "yes" ; then
 1681:     echo "CURSES_LIBS=-lncurses" >> $config_host_mak
 1682:   else
 1683:     echo "CURSES_LIBS=-lcurses" >> $config_host_mak
 1684:   fi
 1685: fi
 1686: if test "$atfile" = "yes" ; then
 1687:   echo "#define CONFIG_ATFILE 1" >> $config_host_h
 1688: fi
 1689: if test "$utimens" = "yes" ; then
 1690:   echo "#define CONFIG_UTIMENSAT 1" >> $config_host_h
 1691: fi
 1692: if test "$pipe2" = "yes" ; then
 1693:   echo "#define CONFIG_PIPE2 1" >> $config_host_h
 1694: fi
 1695: if test "$splice" = "yes" ; then
 1696:   echo "#define CONFIG_SPLICE 1" >> $config_host_h
 1697: fi
 1698: if test "$inotify" = "yes" ; then
 1699:   echo "#define CONFIG_INOTIFY 1" >> $config_host_h
 1700: fi
 1701: if test "$curl" = "yes" ; then
 1702:   echo "CONFIG_CURL=y" >> $config_host_mak
 1703:   echo "CURL_LIBS=$curl_libs" >> $config_host_mak
 1704:   echo "#define CONFIG_CURL 1" >> $config_host_h
 1705: fi
 1706: if test "$brlapi" = "yes" ; then
 1707:   echo "CONFIG_BRLAPI=y" >> $config_host_mak
 1708:   echo "#define CONFIG_BRLAPI 1" >> $config_host_h
 1709:   echo "BRLAPI_LIBS=-lbrlapi" >> $config_host_mak
 1710: fi
 1711: if test "$bluez" = "yes" ; then
 1712:   echo "CONFIG_BLUEZ=y" >> $config_host_mak
 1713:   echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
 1714:   echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_host_mak
 1715:   echo "#define CONFIG_BLUEZ 1" >> $config_host_h
 1716: fi
 1717: if test "$xen" = "yes" ; then
 1718:   echo "XEN_LIBS=-lxenstore -lxenctrl -lxenguest" >> $config_host_mak
 1719: fi
 1720: if test "$aio" = "yes" ; then
 1721:   echo "#define CONFIG_AIO 1" >> $config_host_h
 1722:   echo "CONFIG_AIO=y" >> $config_host_mak
 1723: fi
 1724: if test "$io_thread" = "yes" ; then
 1725:   echo "CONFIG_IOTHREAD=y" >> $config_host_mak
 1726:   echo "#define CONFIG_IOTHREAD 1" >> $config_host_h
 1727: fi
 1728: if test "$blobs" = "yes" ; then
 1729:   echo "INSTALL_BLOBS=yes" >> $config_host_mak
 1730: fi
 1731: if test "$iovec" = "yes" ; then
 1732:   echo "#define HAVE_IOVEC 1" >> $config_host_h
 1733: fi
 1734: if test "$preadv" = "yes" ; then
 1735:   echo "#define HAVE_PREADV 1" >> $config_host_h
 1736: fi
 1737: if test "$fdt" = "yes" ; then
 1738:   echo "#define HAVE_FDT 1" >> $config_host_h
 1739:   echo "FDT_LIBS=-lfdt" >> $config_host_mak
 1740: fi
 1741: 
 1742: # XXX: suppress that
 1743: if [ "$bsd" = "yes" ] ; then
 1744:   echo "#define O_LARGEFILE 0" >> $config_host_h
 1745:   echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_host_h
 1746:   echo "#define HOST_BSD 1" >> $config_host_h
 1747: fi
 1748: 
 1749: echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_host_h
 1750: 
 1751: # USB host support
 1752: case "$usb" in
 1753: linux)
 1754:   echo "HOST_USB=linux" >> $config_host_mak
 1755: ;;
 1756: bsd)
 1757:   echo "HOST_USB=bsd" >> $config_host_mak
 1758: ;;
 1759: *)
 1760:   echo "HOST_USB=stub" >> $config_host_mak
 1761: ;;
 1762: esac
 1763: 
 1764: # Determine what linker flags to use to force archive inclusion
 1765: check_linker_flags()
 1766: {
 1767:     w2=
 1768:     if test "$2" ; then
 1769: 	w2=-Wl,$2
 1770:     fi
 1771:     $cc $ARCH_CFLAGS -o $TMPE $OS_CFLAGS $TMPC -Wl,$1 ${w2} >/dev/null 2>/dev/null
 1772: }
 1773: 
 1774: cat > $TMPC << EOF
 1775: int main(void) { }
 1776: EOF
 1777: if check_linker_flags --whole-archive --no-whole-archive ; then
 1778:     # GNU ld
 1779:     echo "ARLIBS_BEGIN=-Wl,--whole-archive" >> $config_host_mak
 1780:     echo "ARLIBS_END=-Wl,--no-whole-archive" >> $config_host_mak
 1781: elif check_linker_flags -z,allextract -z,defaultextract ; then
 1782:     # Solaris ld
 1783:     echo "ARLIBS_BEGIN=-Wl,-z,allextract" >> $config_host_mak
 1784:     echo "ARLIBS_END=-Wl,-z,defaultextract" >> $config_host_mak
 1785: elif check_linker_flags -all_load ; then
 1786:     # Mac OS X
 1787:     echo "ARLIBS_BEGIN=-all_load" >> $config_host_mak
 1788:     echo "ARLIBS_END=" >> $config_host_mak
 1789: else
 1790:     echo "Error: your linker does not support --whole-archive or -z."
 1791:     echo "Please report to qemu-devel@nongnu.org"
 1792:     exit 1
 1793: fi
 1794: 
 1795: if test "$xen" = "yes" ;
 1796:     then
 1797:     echo "CONFIG_XEN=y" >> $config_host_mak
 1798: fi
 1799: 
 1800: tools=
 1801: if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
 1802:   tools="qemu-img\$(EXESUF) $tools"
 1803:   if [ "$linux" = "yes" ] ; then
 1804:       tools="qemu-nbd\$(EXESUF) qemu-io\$(EXESUF) $tools"
 1805:   elif test "$mingw32" = "yes" ; then
 1806:       tools="qemu-io\$(EXESUF) $tools"
 1807:   fi
 1808: fi
 1809: echo "TOOLS=$tools" >> $config_host_mak
 1810: 
 1811: roms=
 1812: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
 1813:         "$targetos" != "Darwin" ; then
 1814:   roms="optionrom"
 1815: fi
 1816: echo "ROMS=$roms" >> $config_host_mak
 1817: 
 1818: if test -f ${config_host_h}~ ; then
 1819:   if cmp -s $config_host_h ${config_host_h}~ ; then
 1820:     mv ${config_host_h}~ $config_host_h
 1821:   else
 1822:     rm ${config_host_h}~
 1823:   fi
 1824: fi
 1825: 
 1826: for target in $target_list; do
 1827: target_dir="$target"
 1828: config_mak=$target_dir/config.mak
 1829: config_h=$target_dir/config.h
 1830: target_arch2=`echo $target | cut -d '-' -f 1`
 1831: target_bigendian="no"
 1832: case "$target_arch2" in
 1833:   armeb|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|sh4eb|sparc|sparc64|sparc32plus)
 1834:   target_bigendian=yes
 1835:   ;;
 1836: esac
 1837: target_softmmu="no"
 1838: target_user_only="no"
 1839: target_linux_user="no"
 1840: target_darwin_user="no"
 1841: target_bsd_user="no"
 1842: case "$target" in
 1843:   ${target_arch2}-softmmu)
 1844:     target_softmmu="yes"
 1845:     ;;
 1846:   ${target_arch2}-linux-user)
 1847:     target_user_only="yes"
 1848:     target_linux_user="yes"
 1849:     ;;
 1850:   ${target_arch2}-darwin-user)
 1851:     target_user_only="yes"
 1852:     target_darwin_user="yes"
 1853:     ;;
 1854:   ${target_arch2}-bsd-user)
 1855:     target_user_only="yes"
 1856:     target_bsd_user="yes"
 1857:     ;;
 1858:   *)
 1859:     echo "ERROR: Target '$target' not recognised"
 1860:     exit 1
 1861:     ;;
 1862: esac
 1863: 
 1864: #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
 1865: 
 1866: test -f $config_h && mv $config_h ${config_h}~
 1867: 
 1868: mkdir -p $target_dir
 1869: mkdir -p $target_dir/fpu
 1870: mkdir -p $target_dir/tcg
 1871: if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
 1872:   mkdir -p $target_dir/nwfpe
 1873: fi
 1874: 
 1875: #
 1876: # don't use ln -sf as not all "ln -sf" over write the file/link
 1877: #
 1878: rm -f $target_dir/Makefile
 1879: ln -s $source_path/Makefile.target $target_dir/Makefile
 1880: 
 1881: 
 1882: echo "# Automatically generated by configure - do not modify" > $config_mak
 1883: 
 1884: echo "include ../config-host.mak" >> $config_mak
 1885: 
 1886: bflt="no"
 1887: elfload32="no"
 1888: target_nptl="no"
 1889: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 1890: echo "CONFIG_QEMU_PREFIX=\"$interp_prefix1\"" >> $config_mak
 1891: gdb_xml_files=""
 1892: 
 1893: TARGET_ARCH="$target_arch2"
 1894: TARGET_BASE_ARCH=""
 1895: TARGET_ABI_DIR=""
 1896: 
 1897: case "$target_arch2" in
 1898:   i386)
 1899:     target_phys_bits=32
 1900:   ;;
 1901:   x86_64)
 1902:     TARGET_BASE_ARCH=i386
 1903:     target_phys_bits=64
 1904:   ;;
 1905:   alpha)
 1906:     target_phys_bits=64
 1907:   ;;
 1908:   arm|armeb)
 1909:     TARGET_ARCH=arm
 1910:     bflt="yes"
 1911:     target_nptl="yes"
 1912:     gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
 1913:     target_phys_bits=32
 1914:   ;;
 1915:   cris)
 1916:     target_nptl="yes"
 1917:     target_phys_bits=32
 1918:   ;;
 1919:   m68k)
 1920:     bflt="yes"
 1921:     gdb_xml_files="cf-core.xml cf-fp.xml"
 1922:     target_phys_bits=32
 1923:   ;;
 1924:   microblaze)
 1925:     bflt="yes"
 1926:     target_nptl="yes"
 1927:     target_phys_bits=32
 1928:   ;;
 1929:   mips|mipsel)
 1930:     TARGET_ARCH=mips
 1931:     echo "TARGET_ABI_MIPSO32=y" >> $config_mak
 1932:     target_nptl="yes"
 1933:     target_phys_bits=64
 1934:   ;;
 1935:   mipsn32|mipsn32el)
 1936:     TARGET_ARCH=mipsn32
 1937:     TARGET_BASE_ARCH=mips
 1938:     echo "TARGET_ABI_MIPSN32=y" >> $config_mak
 1939:     target_phys_bits=64
 1940:   ;;
 1941:   mips64|mips64el)
 1942:     TARGET_ARCH=mips64
 1943:     TARGET_BASE_ARCH=mips
 1944:     echo "TARGET_ABI_MIPSN64=y" >> $config_mak
 1945:     target_phys_bits=64
 1946:   ;;
 1947:   ppc)
 1948:     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 1949:     target_phys_bits=32
 1950:   ;;
 1951:   ppcemb)
 1952:     TARGET_BASE_ARCH=ppc
 1953:     TARGET_ABI_DIR=ppc
 1954:     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 1955:     target_phys_bits=64
 1956:   ;;
 1957:   ppc64)
 1958:     TARGET_BASE_ARCH=ppc
 1959:     TARGET_ABI_DIR=ppc
 1960:     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 1961:     target_phys_bits=64
 1962:   ;;
 1963:   ppc64abi32)
 1964:     TARGET_ARCH=ppc64
 1965:     TARGET_BASE_ARCH=ppc
 1966:     TARGET_ABI_DIR=ppc
 1967:     echo "TARGET_ABI32=y" >> $config_mak
 1968:     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
 1969:     target_phys_bits=64
 1970:   ;;
 1971:   sh4|sh4eb)
 1972:     TARGET_ARCH=sh4
 1973:     bflt="yes"
 1974:     target_nptl="yes"
 1975:     target_phys_bits=32
 1976:   ;;
 1977:   sparc)
 1978:     target_phys_bits=64
 1979:   ;;
 1980:   sparc64)
 1981:     TARGET_BASE_ARCH=sparc
 1982:     elfload32="yes"
 1983:     target_phys_bits=64
 1984:   ;;
 1985:   sparc32plus)
 1986:     TARGET_ARCH=sparc64
 1987:     TARGET_BASE_ARCH=sparc
 1988:     TARGET_ABI_DIR=sparc
 1989:     echo "TARGET_ABI32=y" >> $config_mak
 1990:     target_phys_bits=64
 1991:   ;;
 1992:   *)
 1993:     echo "Unsupported target CPU"
 1994:     exit 1
 1995:   ;;
 1996: esac
 1997: echo "TARGET_ARCH=$TARGET_ARCH" >> $config_mak
 1998: echo "TARGET_ARCH2=$target_arch2" >> $config_mak
 1999: # TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
 2000: if [ "$TARGET_BASE_ARCH" = "" ]; then
 2001:   TARGET_BASE_ARCH=$TARGET_ARCH
 2002: fi
 2003: echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_mak
 2004: if [ "$TARGET_ABI_DIR" = "" ]; then
 2005:   TARGET_ABI_DIR=$TARGET_ARCH
 2006: fi
 2007: echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_mak
 2008: if [ $target_phys_bits -lt $hostlongbits ] ; then
 2009:   target_phys_bits=$hostlongbits
 2010: fi
 2011: case "$target_arch2" in
 2012:   i386|x86_64)
 2013:     if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
 2014:       echo "CONFIG_XEN=y" >> $config_mak
 2015:     fi
 2016:     if test $kqemu = "yes" -a "$target_softmmu" = "yes"
 2017:     then
 2018:       echo "CONFIG_KQEMU=y" >> $config_mak
 2019:     fi
 2020: esac
 2021: case "$target_arch2" in
 2022:   i386|x86_64|ppcemb)
 2023:     # Make sure the target and host cpus are compatible
 2024:     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
 2025:       \( "$target_arch2" = "$cpu" -o \
 2026:       \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \
 2027:       \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
 2028:       \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
 2029:       echo "CONFIG_KVM=y" >> $config_mak
 2030:       echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
 2031:     fi
 2032: esac
 2033: echo "HWLIB=../libhw$target_phys_bits/libqemuhw$target_phys_bits.a" >> $config_mak
 2034: echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_mak
 2035: echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
 2036: if test "$target_bigendian" = "yes" ; then
 2037:   echo "TARGET_WORDS_BIGENDIAN=y" >> $config_mak
 2038: fi
 2039: if test "$target_softmmu" = "yes" ; then
 2040:   echo "CONFIG_SOFTMMU=y" >> $config_mak
 2041: fi
 2042: if test "$target_user_only" = "yes" ; then
 2043:   echo "CONFIG_USER_ONLY=y" >> $config_mak
 2044: fi
 2045: if test "$target_linux_user" = "yes" ; then
 2046:   echo "CONFIG_LINUX_USER=y" >> $config_mak
 2047: fi
 2048: if test "$target_darwin_user" = "yes" ; then
 2049:   echo "CONFIG_DARWIN_USER=y" >> $config_mak
 2050: fi
 2051: list=""
 2052: if test ! -z "$gdb_xml_files" ; then
 2053:   for x in $gdb_xml_files; do
 2054:     list="$list $source_path/gdb-xml/$x"
 2055:   done
 2056: fi
 2057: echo "TARGET_XML_FILES=$list" >> $config_mak
 2058: 
 2059: case "$target_arch2" in
 2060:   arm|armeb|m68k|microblaze|mips|mipsel|mipsn32|mipsn32el|mips64|mips64el|ppc|ppc64|ppc64abi32|ppcemb|sparc|sparc64|sparc32plus)
 2061:     echo "CONFIG_SOFTFLOAT=y" >> $config_mak
 2062:     ;;
 2063: esac
 2064: 
 2065: if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
 2066:   echo "TARGET_HAS_BFLT=y" >> $config_mak
 2067: fi
 2068: if test "$target_user_only" = "yes" \
 2069:         -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
 2070:   echo "USE_NPTL=y" >> $config_mak
 2071: fi
 2072: # 32 bit ELF loader in addition to native 64 bit loader?
 2073: if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
 2074:   echo "TARGET_HAS_ELFLOAD32=y" >> $config_mak
 2075: fi
 2076: if test "$target_bsd_user" = "yes" ; then
 2077:   echo "CONFIG_BSD_USER=y" >> $config_mak
 2078: fi
 2079: 
 2080: $source_path/create_config < $config_mak > $config_h
 2081: 
 2082: test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
 2083: 
 2084: done # for target in $targets
 2085: 
 2086: # build tree in object directory if source path is different from current one
 2087: if test "$source_path_used" = "yes" ; then
 2088:     DIRS="tests tests/cris slirp audio block pc-bios/optionrom"
 2089:     FILES="Makefile tests/Makefile"
 2090:     FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
 2091:     FILES="$FILES tests/test-mmap.c"
 2092:     FILES="$FILES pc-bios/optionrom/Makefile"
 2093:     for dir in $DIRS ; do
 2094:             mkdir -p $dir
 2095:     done
 2096:     # remove the link and recreate it, as not all "ln -sf" overwrite the link
 2097:     for f in $FILES ; do
 2098:         rm -f $f
 2099:         ln -s $source_path/$f $f
 2100:     done
 2101: fi
 2102: 
 2103: for hwlib in 32 64; do
 2104:   d=libhw$hwlib
 2105:   mkdir -p $d
 2106:   rm -f $d/Makefile
 2107:   ln -s $source_path/Makefile.hw $d/Makefile
 2108:   echo "HWLIB=libqemuhw$hwlib.a" > $d/config.mak
 2109:   echo "CPPFLAGS=-DTARGET_PHYS_ADDR_BITS=$hwlib" >> $d/config.mak
 2110: done

unix.superglobalmegacorp.com