Annotation of qemu/configure, revision 1.1.1.12

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

unix.superglobalmegacorp.com