File:  [Qemu by Fabrice Bellard] / qemu / configure
Revision 1.1.1.7 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:50:40 2018 UTC (2 years, 3 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu0101, qemu0100, HEAD
qemu 0.10.0

    1: #!/bin/sh
    2: #
    3: # qemu configure script (c) 2003 Fabrice Bellard
    4: #
    5: # set temporary file name
    6: if test ! -z "$TMPDIR" ; then
    7:     TMPDIR1="${TMPDIR}"
    8: elif test ! -z "$TEMPDIR" ; then
    9:     TMPDIR1="${TEMPDIR}"
   10: else
   11:     TMPDIR1="/tmp"
   12: fi
   13: 
   14: TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
   15: TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
   16: TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
   17: TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
   18: TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
   19: TMPSDLLOG="${TMPDIR1}/qemu-conf-sdl-$$-${RANDOM}.log"
   20: 
   21: trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG; exit" 0 2 3 15
   22: 
   23: # default parameters
   24: prefix=""
   25: interp_prefix="/usr/gnemul/qemu-%M"
   26: static="no"
   27: cross_prefix=""
   28: cc="gcc"
   29: audio_drv_list=""
   30: audio_card_list="ac97 es1370 sb16"
   31: audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
   32: host_cc="gcc"
   33: ar="ar"
   34: make="make"
   35: install="install"
   36: strip="strip"
   37: 
   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: 
  101: target_list=""
  102: case "$cpu" in
  103:   i386|i486|i586|i686|i86pc|BePC)
  104:     cpu="i386"
  105:   ;;
  106:   x86_64|amd64)
  107:     cpu="x86_64"
  108:   ;;
  109:   alpha)
  110:     cpu="alpha"
  111:   ;;
  112:   armv*b)
  113:     cpu="armv4b"
  114:   ;;
  115:   armv*l)
  116:     cpu="armv4l"
  117:   ;;
  118:   cris)
  119:     cpu="cris"
  120:   ;;
  121:   parisc|parisc64)
  122:     cpu="hppa"
  123:   ;;
  124:   ia64)
  125:     cpu="ia64"
  126:   ;;
  127:   m68k)
  128:     cpu="m68k"
  129:   ;;
  130:   mips)
  131:     cpu="mips"
  132:   ;;
  133:   mips64)
  134:     cpu="mips64"
  135:   ;;
  136:   ppc)
  137:     cpu="ppc"
  138:   ;;
  139:   ppc64)
  140:     cpu="ppc64"
  141:   ;;
  142:   s390*)
  143:     cpu="s390"
  144:   ;;
  145:   sparc|sun4[cdmuv])
  146:     cpu="sparc"
  147:   ;;
  148:   sparc64)
  149:     cpu="sparc64"
  150:   ;;
  151:   *)
  152:     cpu="unknown"
  153:   ;;
  154: esac
  155: gprof="no"
  156: sparse="no"
  157: bigendian="no"
  158: mingw32="no"
  159: EXESUF=""
  160: gdbstub="yes"
  161: slirp="yes"
  162: vde="yes"
  163: fmod_lib=""
  164: fmod_inc=""
  165: oss_lib=""
  166: vnc_tls="yes"
  167: bsd="no"
  168: linux="no"
  169: solaris="no"
  170: kqemu="no"
  171: profiler="no"
  172: cocoa="no"
  173: check_gfx="yes"
  174: softmmu="yes"
  175: linux_user="no"
  176: darwin_user="no"
  177: bsd_user="no"
  178: build_docs="no"
  179: uname_release=""
  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"
  191: 
  192: # OS specific
  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
  200: case $targetos in
  201: CYGWIN*)
  202: mingw32="yes"
  203: OS_CFLAGS="-mno-cygwin"
  204: if [ "$cpu" = "i386" ] ; then
  205:     kqemu="yes"
  206: fi
  207: audio_possible_drivers="sdl"
  208: ;;
  209: MINGW32*)
  210: mingw32="yes"
  211: if [ "$cpu" = "i386" ] ; then
  212:     kqemu="yes"
  213: fi
  214: audio_possible_drivers="dsound sdl fmod"
  215: ;;
  216: GNU/kFreeBSD)
  217: audio_drv_list="oss"
  218: audio_possible_drivers="oss sdl esd pa"
  219: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  220:     kqemu="yes"
  221: fi
  222: ;;
  223: FreeBSD)
  224: bsd="yes"
  225: audio_drv_list="oss"
  226: audio_possible_drivers="oss sdl esd pa"
  227: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  228:     kqemu="yes"
  229: fi
  230: ;;
  231: NetBSD)
  232: bsd="yes"
  233: audio_drv_list="oss"
  234: audio_possible_drivers="oss sdl esd"
  235: oss_lib="-lossaudio"
  236: ;;
  237: OpenBSD)
  238: bsd="yes"
  239: openbsd="yes"
  240: audio_drv_list="oss"
  241: audio_possible_drivers="oss sdl esd"
  242: oss_lib="-lossaudio"
  243: ;;
  244: Darwin)
  245: bsd="yes"
  246: darwin="yes"
  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
  258: darwin_user="yes"
  259: cocoa="yes"
  260: audio_drv_list="coreaudio"
  261: audio_possible_drivers="coreaudio sdl fmod"
  262: OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
  263: ;;
  264: SunOS)
  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
  293:         audio_drv_list="oss"
  294:     fi
  295:     audio_possible_drivers="oss sdl"
  296: ;;
  297: AIX)
  298: aix="yes"
  299: make="gmake"
  300: ;;
  301: *)
  302: audio_drv_list="oss"
  303: audio_possible_drivers="oss alsa sdl esd pa"
  304: linux="yes"
  305: linux_user="yes"
  306: usb="linux"
  307: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
  308:     kqemu="yes"
  309:     audio_possible_drivers="$audio_possible_drivers fmod"
  310: fi
  311: ;;
  312: esac
  313: 
  314: if [ "$bsd" = "yes" ] ; then
  315:   if [ "$darwin" != "yes" ] ; then
  316:     make="gmake"
  317:     usb="bsd"
  318:   fi
  319:   bsd_user="yes"
  320: fi
  321: 
  322: # find source path
  323: source_path=`dirname "$0"`
  324: source_path_used="no"
  325: workdir=`pwd`
  326: if [ -z "$source_path" ]; then
  327:     source_path=$workdir
  328: else
  329:     source_path=`cd "$source_path"; pwd`
  330: fi
  331: [ -f "$workdir/vl.c" ] || source_path_used="yes"
  332: 
  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: 
  339: for opt do
  340:   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
  341:   case "$opt" in
  342:   --help|-h) show_help=yes
  343:   ;;
  344:   --prefix=*) prefix="$optarg"
  345:   ;;
  346:   --interp-prefix=*) interp_prefix="$optarg"
  347:   ;;
  348:   --source-path=*) source_path="$optarg"
  349:   source_path_used="yes"
  350:   ;;
  351:   --cross-prefix=*)
  352:   ;;
  353:   --cc=*)
  354:   ;;
  355:   --host-cc=*) host_cc="$optarg"
  356:   ;;
  357:   --make=*) make="$optarg"
  358:   ;;
  359:   --install=*) install="$optarg"
  360:   ;;
  361:   --extra-cflags=*) CFLAGS="$optarg"
  362:   ;;
  363:   --extra-ldflags=*) LDFLAGS="$optarg"
  364:   ;;
  365:   --cpu=*) cpu="$optarg"
  366:   ;;
  367:   --target-list=*) target_list="$optarg"
  368:   ;;
  369:   --enable-gprof) gprof="yes"
  370:   ;;
  371:   --static) static="yes"
  372:   ;;
  373:   --disable-sdl) sdl="no"
  374:   ;;
  375:   --fmod-lib=*) fmod_lib="$optarg"
  376:   ;;
  377:   --fmod-inc=*) fmod_inc="$optarg"
  378:   ;;
  379:   --oss-lib=*) oss_lib="$optarg"
  380:   ;;
  381:   --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
  382:   ;;
  383:   --audio-drv-list=*) audio_drv_list="$optarg"
  384:   ;;
  385:   --enable-sparse) sparse="yes"
  386:   ;;
  387:   --disable-sparse) sparse="no"
  388:   ;;
  389:   --disable-vnc-tls) vnc_tls="no"
  390:   ;;
  391:   --disable-slirp) slirp="no"
  392:   ;;
  393:   --disable-vde) vde="no"
  394:   ;;
  395:   --disable-kqemu) kqemu="no"
  396:   ;;
  397:   --disable-brlapi) brlapi="no"
  398:   ;;
  399:   --disable-bluez) bluez="no"
  400:   ;;
  401:   --disable-kvm) kvm="no"
  402:   ;;
  403:   --enable-profiler) profiler="yes"
  404:   ;;
  405:   --enable-cocoa)
  406:       cocoa="yes" ;
  407:       sdl="no" ;
  408:       audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
  409:   ;;
  410:   --disable-gfx-check) check_gfx="no"
  411:   ;;
  412:   --disable-system) softmmu="no"
  413:   ;;
  414:   --enable-system) softmmu="yes"
  415:   ;;
  416:   --disable-linux-user) linux_user="no"
  417:   ;;
  418:   --enable-linux-user) linux_user="yes"
  419:   ;;
  420:   --disable-darwin-user) darwin_user="no"
  421:   ;;
  422:   --enable-darwin-user) darwin_user="yes"
  423:   ;;
  424:   --disable-bsd-user) bsd_user="no"
  425:   ;;
  426:   --enable-bsd-user) bsd_user="yes"
  427:   ;;
  428:   --enable-uname-release=*) uname_release="$optarg"
  429:   ;;
  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:   ;;
  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:   ;;
  458:   *) echo "ERROR: unknown option $opt"; show_help="yes"
  459:   ;;
  460:   esac
  461: done
  462: 
  463: # default flags for all hosts
  464: CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
  465: CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls"
  466: LDFLAGS="$LDFLAGS -g"
  467: if test "$werror" = "yes" ; then
  468: CFLAGS="$CFLAGS -Werror"
  469: fi
  470: 
  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: 
  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: #
  481: case "$cpu" in
  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:            ;;
  501:     i386)
  502:            ARCH_CFLAGS="-m32"
  503:            ARCH_LDFLAGS="-m32"
  504:            ;;
  505:     x86_64)
  506:            ARCH_CFLAGS="-m64"
  507:            ARCH_LDFLAGS="-m64"
  508:            ;;
  509: esac
  510: 
  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]"
  536: echo "  --enable-sparse          enable sparse checker"
  537: echo "  --disable-sparse         disable sparse checker (default)"
  538: echo "  --disable-werror         disable compilation abort on warning"
  539: echo "  --disable-sdl            disable SDL"
  540: echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
  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"
  547: echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
  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"
  552: echo "  --enable-system          enable all system emulation targets"
  553: echo "  --disable-system         disable all system emulation targets"
  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"
  558: echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
  559: echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
  560: echo "  --fmod-lib               path to FMOD library"
  561: echo "  --fmod-inc               path to FMOD includes"
  562: echo "  --oss-lib                path to OSS library"
  563: echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
  564: echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
  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"
  569: echo ""
  570: echo "NOTE: The object files are built at the place where configure is launched"
  571: exit 1
  572: fi
  573: 
  574: if test "$mingw32" = "yes" ; then
  575:     linux="no"
  576:     EXESUF=".exe"
  577:     oss="no"
  578:     linux_user="no"
  579:     bsd_user="no"
  580: fi
  581: 
  582: if test ! -x "$(which cgcc 2>/dev/null)"; then
  583:     sparse="no"
  584: fi
  585: 
  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
  611: fi
  612: 
  613: 
  614: if test -z "$target_list" ; then
  615: # these targets are portable
  616:     if [ "$softmmu" = "yes" ] ; then
  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: "
  634:     fi
  635: # the following are Linux specific
  636:     if [ "$linux_user" = "yes" ] ; then
  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: "
  656:     fi
  657: # the following are Darwin specific
  658:     if [ "$darwin_user" = "yes" ] ; then
  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: "
  666:     fi
  667: else
  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
  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){
  682:         volatile uint32_t i=0x01234567;
  683:         return (*((uint8_t*)(&i))) == 0x67;
  684: }
  685: EOF
  686: 
  687: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
  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
  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
  706:     bigendian="yes"
  707: fi
  708: 
  709: fi
  710: 
  711: # host long bits test
  712: hostlongbits="32"
  713: if test "$cpu" = "x86_64" \
  714:      -o "$cpu" = "alpha" \
  715:      -o "$cpu" = "ia64" \
  716:      -o "$cpu" = "sparc64" \
  717:      -o "$cpu" = "ppc64"; then
  718:     hostlongbits="64"
  719: fi
  720: 
  721: # check gcc options support
  722: cat > $TMPC <<EOF
  723: int main(void) {
  724: }
  725: EOF
  726: 
  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: 
  762: ##########################################
  763: # SDL probe
  764: 
  765: sdl_too_old=no
  766: 
  767: if test -z "$sdl" ; then
  768:     sdl_config="sdl-config"
  769:     sdl=no
  770:     sdl_static=no
  771: 
  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
  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`"
  794:             fi
  795: 
  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
  801: else
  802:     # Make sure to disable cocoa if sdl was set
  803:     if test "$sdl" = "yes" ; then
  804:        cocoa="no"
  805:        audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
  806:     fi
  807: fi # -z $sdl
  808: 
  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: 
  824: ##########################################
  825: # VNC TLS detection
  826: if test "$vnc_tls" = "yes" ; then
  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
  839: fi
  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
  858: fi
  859: 
  860: ##########################################
  861: # Sound support libraries probe
  862: 
  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
  948:   cat > $TMPC << EOF
  949: #include <curses.h>
  950: int main(void) { return curses_version(); }
  951: EOF
  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
  971:     :
  972:   else
  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
 1064:   fi
 1065: fi
 1066: 
 1067: # Check if tools are available to build documentation.
 1068: if [ -x "`which texi2html 2>/dev/null`" ] && \
 1069:    [ -x "`which pod2man 2>/dev/null`" ]; then
 1070:   build_docs="yes"
 1071: fi
 1072: 
 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: 
 1093: if test "$mingw32" = "yes" ; then
 1094:   if test -z "$prefix" ; then
 1095:       prefix="c:\\\\Program Files\\\\Qemu"
 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"
 1109: fi
 1110: 
 1111: echo "Install prefix    $prefix"
 1112: echo "BIOS directory    $prefix$datasuffix"
 1113: echo "binary directory  $prefix$binsuffix"
 1114: if test "$mingw32" = "no" ; then
 1115: echo "Manual directory  $prefix$mansuffix"
 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"
 1121: echo "ARCH_CFLAGS       $ARCH_CFLAGS"
 1122: echo "make              $make"
 1123: echo "install           $install"
 1124: echo "host CPU          $cpu"
 1125: echo "host big endian   $bigendian"
 1126: echo "target list       $target_list"
 1127: echo "gprof enabled     $gprof"
 1128: echo "sparse enabled    $sparse"
 1129: echo "profiler          $profiler"
 1130: echo "static build      $static"
 1131: echo "-Werror enabled   $werror"
 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
 1139: echo "curses support    $curses"
 1140: echo "mingw32 support   $mingw32"
 1141: echo "Audio drivers     $audio_drv_list"
 1142: echo "Extra audio cards $audio_card_list"
 1143: echo "Mixer emulation   $mixemu"
 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
 1152: echo "kqemu support     $kqemu"
 1153: echo "brlapi support    $brlapi"
 1154: echo "Documentation     $build_docs"
 1155: [ ! -z "$uname_release" ] && \
 1156: echo "uname -r          $uname_release"
 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"
 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
 1167: if [ -s $TMPSDLLOG ]; then
 1168:   echo "The error log from compiling the libSDL test is: "
 1169:   cat $TMPSDLLOG
 1170: fi
 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: 
 1179: test -f $config_h && mv $config_h ${config_h}~
 1180: 
 1181: echo "# Automatically generated by configure - do not modify" > $config_mak
 1182: printf "# Configured with:" >> $config_mak
 1183: printf " '%s'" "$0" "$@" >> $config_mak
 1184: echo >> $config_mak
 1185: echo "/* Automatically generated by configure - do not modify */" > $config_h
 1186: 
 1187: echo "prefix=$prefix" >> $config_mak
 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
 1193: echo "MAKE=$make" >> $config_mak
 1194: echo "INSTALL=$install" >> $config_mak
 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
 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)
 1202: echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
 1203: echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
 1204: echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
 1205: echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
 1206: echo "CFLAGS=$CFLAGS" >> $config_mak
 1207: echo "LDFLAGS=$LDFLAGS" >> $config_mak
 1208: echo "EXESUF=$EXESUF" >> $config_mak
 1209: echo "AIOLIBS=$AIOLIBS" >> $config_mak
 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
 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
 1293: else
 1294:   cat > $TMPC << EOF
 1295: #include <byteswap.h>
 1296: int main(void) { return bswap_32(0); }
 1297: EOF
 1298:   if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
 1299:     echo "#define HAVE_BYTESWAP_H 1" >> $config_h
 1300:   fi
 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
 1314: fi
 1315: 
 1316: if test "$darwin" = "yes" ; then
 1317:   echo "CONFIG_DARWIN=yes" >> $config_mak
 1318:   echo "#define CONFIG_DARWIN 1" >> $config_h
 1319: fi
 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: 
 1326: if test "$solaris" = "yes" ; then
 1327:   echo "CONFIG_SOLARIS=yes" >> $config_mak
 1328:   echo "#define HOST_SOLARIS $solarisrev" >> $config_h
 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
 1337: fi
 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
 1350: if test $profiler = "yes" ; then
 1351:   echo "#define CONFIG_PROFILER 1" >> $config_h
 1352: fi
 1353: if test "$slirp" = "yes" ; then
 1354:   echo "CONFIG_SLIRP=yes" >> $config_mak
 1355:   echo "#define CONFIG_SLIRP 1" >> $config_h
 1356: fi
 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
 1383: fi
 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
 1390: qemu_version=`head $source_path/VERSION`
 1391: echo "VERSION=$qemu_version" >>$config_mak
 1392: echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
 1393: 
 1394: echo "SRC_PATH=$source_path" >> $config_mak
 1395: if [ "$source_path_used" = "yes" ]; then
 1396:   echo "VPATH=$source_path" >> $config_mak
 1397: fi
 1398: echo "TARGET_DIRS=$target_list" >> $config_mak
 1399: if [ "$build_docs" = "yes" ] ; then
 1400:   echo "BUILD_DOCS=yes" >> $config_mak
 1401: fi
 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
 1412:   elif test "$sdl_x11" = "yes" ; then
 1413:     echo "SDL_LIBS=`$sdl_config --libs` -lX11" >> $config_mak
 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
 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
 1456: fi
 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: 
 1465: echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
 1466: 
 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: 
 1480: tools=
 1481: if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
 1482:   tools="qemu-img\$(EXESUF) $tools"
 1483:   if [ "$linux" = "yes" ] ; then
 1484:       tools="qemu-nbd\$(EXESUF) $tools"
 1485:   fi
 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: 
 1491: for target in $target_list; do
 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
 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
 1502: [ "$target_cpu" = "ppc" ] && target_bigendian=yes
 1503: [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
 1504: [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
 1505: [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
 1506: [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
 1507: [ "$target_cpu" = "sparc" ] && target_bigendian=yes
 1508: [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
 1509: [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
 1510: target_softmmu="no"
 1511: target_user_only="no"
 1512: target_linux_user="no"
 1513: target_darwin_user="no"
 1514: target_bsd_user="no"
 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:     ;;
 1527:   ${target_cpu}-bsd-user)
 1528:     target_user_only="yes"
 1529:     target_bsd_user="yes"
 1530:     ;;
 1531:   *)
 1532:     echo "ERROR: Target '$target' not recognised"
 1533:     exit 1
 1534:     ;;
 1535: esac
 1536: 
 1537: if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
 1538:         -a "$sdl" = "no" -a "$cocoa" = "no" ; then
 1539:     echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
 1540:     echo "To build QEMU without graphical output configure with --disable-gfx-check"
 1541:     echo "Note that this will disable all output from the virtual graphics card"
 1542:     echo "except through VNC or curses."
 1543:     exit 1;
 1544: fi
 1545: 
 1546: #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
 1547: 
 1548: test -f $config_h && mv $config_h ${config_h}~
 1549: 
 1550: mkdir -p $target_dir
 1551: mkdir -p $target_dir/fpu
 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
 1554:   mkdir -p $target_dir/nwfpe
 1555: fi
 1556: 
 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: 
 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: 
 1571: bflt="no"
 1572: elfload32="no"
 1573: target_nptl="no"
 1574: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
 1575: echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
 1576: gdb_xml_files=""
 1577: 
 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
 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
 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
 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
 1779:   echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
 1780:   echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
 1781: fi
 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
 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
 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
 1794: fi
 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
 1799: 
 1800: test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
 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
 1806:     DIRS="tests tests/cris slirp audio"
 1807:     FILES="Makefile tests/Makefile"
 1808:     FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
 1809:     FILES="$FILES tests/test-mmap.c"
 1810:     for dir in $DIRS ; do
 1811:             mkdir -p $dir
 1812:     done
 1813:     # remove the link and recreate it, as not all "ln -sf" overwrite the link
 1814:     for f in $FILES ; do
 1815:         rm -f $f
 1816:         ln -s $source_path/$f $f
 1817:     done
 1818: fi

unix.superglobalmegacorp.com