Annotation of qemu/configure, revision 1.1.1.7

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

unix.superglobalmegacorp.com