Annotation of qemu/configure, revision 1.1.1.15

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

unix.superglobalmegacorp.com