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

unix.superglobalmegacorp.com