17d13299dSbellard#!/bin/sh 27d13299dSbellard# 33ef693a0Sbellard# qemu configure script (c) 2003 Fabrice Bellard 47d13299dSbellard# 57d13299dSbellard# set temporary file name 67d13299dSbellardif test ! -z "$TMPDIR" ; then 77d13299dSbellard TMPDIR1="${TMPDIR}" 87d13299dSbellardelif test ! -z "$TEMPDIR" ; then 97d13299dSbellard TMPDIR1="${TEMPDIR}" 107d13299dSbellardelse 117d13299dSbellard TMPDIR1="/tmp" 127d13299dSbellardfi 137d13299dSbellard 143ef693a0SbellardTMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" 153ef693a0SbellardTMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" 163ef693a0SbellardTMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" 173ef693a0SbellardTMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" 187d13299dSbellard 197d13299dSbellard# default parameters 2011d9f695Sbellardprefix="" 211e43adfcSbellardinterp_prefix="/usr/gnemul/qemu-%M" 2243ce4dfeSbellardstatic="no" 237d13299dSbellardcross_prefix="" 247d13299dSbellardcc="gcc" 25328a4240Spbrookgcc3_search="yes" 26fe8f78e4Sbalroggcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32" 277d13299dSbellardhost_cc="gcc" 287d13299dSbellardar="ar" 297d13299dSbellardmake="make" 306a882643Spbrookinstall="install" 317d13299dSbellardstrip="strip" 327d13299dSbellardcpu=`uname -m` 335327cf48Sbellardtarget_list="" 347d13299dSbellardcase "$cpu" in 357d13299dSbellard i386|i486|i586|i686|i86pc|BePC) 3697a847bcSbellard cpu="i386" 377d13299dSbellard ;; 38ba68055eSbellard armv*b) 39808c4954Sbellard cpu="armv4b" 40808c4954Sbellard ;; 41ba68055eSbellard armv*l) 427d13299dSbellard cpu="armv4l" 437d13299dSbellard ;; 447d13299dSbellard alpha) 457d13299dSbellard cpu="alpha" 467d13299dSbellard ;; 47295defa5Sbellard "Power Macintosh"|ppc|ppc64) 487d13299dSbellard cpu="powerpc" 497d13299dSbellard ;; 507d13299dSbellard mips) 517d13299dSbellard cpu="mips" 527d13299dSbellard ;; 53fbe4f65bSths mips64) 54fbe4f65bSths cpu="mips64" 55fbe4f65bSths ;; 56e7daa605Sths cris) 57e7daa605Sths cpu="cris" 58e7daa605Sths ;; 590e7b8a9fSths s390*) 60fb3e5849Sbellard cpu="s390" 61fb3e5849Sbellard ;; 623142255cSblueswir1 sparc|sun4[cdmuv]) 63ae228531Sbellard cpu="sparc" 64ae228531Sbellard ;; 65ae228531Sbellard sparc64) 66ae228531Sbellard cpu="sparc64" 67ae228531Sbellard ;; 68a8baa8c5Sbellard ia64) 69a8baa8c5Sbellard cpu="ia64" 70a8baa8c5Sbellard ;; 7138e584a0Sbellard m68k) 7238e584a0Sbellard cpu="m68k" 7338e584a0Sbellard ;; 74bc51c5c9Sbellard x86_64|amd64) 750b0babc6Sbellard cpu="x86_64" 76bc51c5c9Sbellard ;; 777d13299dSbellard *) 787d13299dSbellard cpu="unknown" 797d13299dSbellard ;; 807d13299dSbellardesac 817d13299dSbellardgprof="no" 827d13299dSbellardbigendian="no" 8367b915a5Sbellardmingw32="no" 8467b915a5SbellardEXESUF="" 8567b915a5Sbellardgdbstub="yes" 86443f1376Sbellardslirp="yes" 87fb065187Sbellardadlib="no" 88e5c9a13eSbalrogac97="no" 89423d65f4Sbalroggus="no" 90fb065187Sbellardoss="no" 911d14ffa9Sbellarddsound="no" 921d14ffa9Sbellardcoreaudio="no" 931d14ffa9Sbellardalsa="no" 94ca9cc28cSbalrogesd="no" 95102a52e4Sbellardfmod="no" 96102a52e4Sbellardfmod_lib="" 97102a52e4Sbellardfmod_inc="" 988d5d2d4cSthsvnc_tls="yes" 99b1a550a0Spbrookbsd="no" 1005327cf48Sbellardlinux="no" 101c9ec1fe4Sbellardkqemu="no" 10205c2a3e7Sbellardprofiler="no" 1035b0753e0Sbellardcocoa="no" 10497ccc689Sbellardcheck_gfx="yes" 1051aff381fSbellardcheck_gcc="yes" 1060a8e90f4Spbrooksoftmmu="yes" 107831b7825Sthslinux_user="no" 108831b7825Sthsdarwin_user="no" 109cc8ae6deSpbrookbuild_docs="no" 110c5937220Spbrookuname_release="" 1114d3b6f6eSbalrogcurses="yes" 1127d13299dSbellard 1137d13299dSbellard# OS specific 1147d13299dSbellardtargetos=`uname -s` 1157d13299dSbellardcase $targetos in 116c326e0afSbellardCYGWIN*) 117c326e0afSbellardmingw32="yes" 1186f30fa85SthsOS_CFLAGS="-mno-cygwin" 119db8d7dd1Sthsif [ "$cpu" = "i386" ] ; then 120db8d7dd1Sths kqemu="yes" 121db8d7dd1Sthsfi 122c326e0afSbellard;; 12367b915a5SbellardMINGW32*) 12467b915a5Sbellardmingw32="yes" 125db8d7dd1Sthsif [ "$cpu" = "i386" ] ; then 126db8d7dd1Sths kqemu="yes" 127db8d7dd1Sthsfi 12867b915a5Sbellard;; 1295c40d2bdSthsGNU/kFreeBSD) 1305c40d2bdSthsoss="yes" 1315c40d2bdSthsif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 1325c40d2bdSths kqemu="yes" 1335c40d2bdSthsfi 1345c40d2bdSths;; 1357d3505c5SbellardFreeBSD) 1367d3505c5Sbellardbsd="yes" 137fb065187Sbellardoss="yes" 138e99f9060Sbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 13907f4ddbfSbellard kqemu="yes" 14007f4ddbfSbellardfi 1417d3505c5Sbellard;; 1427d3505c5SbellardNetBSD) 1437d3505c5Sbellardbsd="yes" 144fb065187Sbellardoss="yes" 1457d3505c5Sbellard;; 1467d3505c5SbellardOpenBSD) 1477d3505c5Sbellardbsd="yes" 148fb065187Sbellardoss="yes" 1497d3505c5Sbellard;; 15083fb7adfSbellardDarwin) 15183fb7adfSbellardbsd="yes" 15283fb7adfSbellarddarwin="yes" 153831b7825Sthsdarwin_user="yes" 154fd677642Sthscocoa="yes" 155fd677642Sthscoreaudio="yes" 1566f30fa85SthsOS_CFLAGS="-mdynamic-no-pic" 157c2c59c3eSthsOS_LDFLAGS="-framework CoreFoundation -framework IOKit" 15883fb7adfSbellard;; 159ec530c81SbellardSunOS) 160ec530c81Sbellard solaris="yes" 161c2b84fabSths make="gmake" 162c2b84fabSths install="ginstall" 1630475a5caSths needs_libsunmath="no" 164c2b84fabSths solarisrev=`uname -r | cut -f2 -d.` 165ef18c883Sths # have to select again, because `uname -m` returns i86pc 166ef18c883Sths # even on an x86_64 box. 167ef18c883Sths solariscpu=`isainfo -k` 168ef18c883Sths if test "${solariscpu}" = "amd64" ; then 169ef18c883Sths cpu="x86_64" 170ef18c883Sths fi 171c2b84fabSths if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 1720475a5caSths if test "$solarisrev" -le 9 ; then 1730475a5caSths if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then 1740475a5caSths needs_libsunmath="yes" 1750475a5caSths else 1760475a5caSths echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" 1770475a5caSths echo "libsunmath from the Sun Studio compilers tools, due to a lack of" 1780475a5caSths echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" 1790475a5caSths echo "Studio 11 can be downloaded from www.sun.com." 1800475a5caSths exit 1 1810475a5caSths fi 1820475a5caSths fi 1830475a5caSths if test "$solarisrev" -ge 9 ; then 184c2b84fabSths kqemu="yes" 185c2b84fabSths fi 18686b2bd93Sths fi 1876b4d2ba1Sths if test -f /usr/include/sys/soundcard.h ; then 1886b4d2ba1Sths oss=yes 1896b4d2ba1Sths fi 190ec530c81Sbellard;; 191fb065187Sbellard*) 192fb065187Sbellardoss="yes" 1935327cf48Sbellardlinux="yes" 194831b7825Sthslinux_user="yes" 19507f4ddbfSbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 196c9ec1fe4Sbellard kqemu="yes" 197c9ec1fe4Sbellardfi 198fb065187Sbellard;; 1997d13299dSbellardesac 2007d13299dSbellard 2017d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 202b1a550a0Spbrook if [ "$darwin" != "yes" ] ; then 2037d3505c5Sbellard make="gmake" 20483fb7adfSbellard fi 2057d3505c5Sbellardfi 2067d3505c5Sbellard 2077d13299dSbellard# find source path 208ad064840Spbrooksource_path=`dirname "$0"` 20959faef3aSbalrogsource_path_used="no" 21059faef3aSbalrogworkdir=`pwd` 211ad064840Spbrookif [ -z "$source_path" ]; then 21259faef3aSbalrog source_path=$workdir 213ad064840Spbrookelse 214ad064840Spbrook source_path=`cd "$source_path"; pwd` 2157d13299dSbellardfi 216724db118Spbrook[ -f "$workdir/vl.c" ] || source_path_used="yes" 2177d13299dSbellard 21885aa5189Sbellardwerror="no" 2190d1e2394Sbellard# generate compile errors on warnings for development builds 2200d1e2394Sbellard#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then 2210d1e2394Sbellard#werror="yes"; 2220d1e2394Sbellard#fi 22385aa5189Sbellard 2247d13299dSbellardfor opt do 225a46e4035Spbrook optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 2267d13299dSbellard case "$opt" in 2272efc3265Sbellard --help|-h) show_help=yes 2282efc3265Sbellard ;; 229b1a550a0Spbrook --prefix=*) prefix="$optarg" 2307d13299dSbellard ;; 231b1a550a0Spbrook --interp-prefix=*) interp_prefix="$optarg" 23232ce6337Sbellard ;; 233b1a550a0Spbrook --source-path=*) source_path="$optarg" 234ad064840Spbrook source_path_used="yes" 2357d13299dSbellard ;; 236b1a550a0Spbrook --cross-prefix=*) cross_prefix="$optarg" 2377d13299dSbellard ;; 238b1a550a0Spbrook --cc=*) cc="$optarg" 239328a4240Spbrook gcc3_search="no" 2407d13299dSbellard ;; 241b1a550a0Spbrook --host-cc=*) host_cc="$optarg" 24283469015Sbellard ;; 243b1a550a0Spbrook --make=*) make="$optarg" 2447d13299dSbellard ;; 2456a882643Spbrook --install=*) install="$optarg" 2466a882643Spbrook ;; 247b1a550a0Spbrook --extra-cflags=*) CFLAGS="$optarg" 2487d13299dSbellard ;; 249b1a550a0Spbrook --extra-ldflags=*) LDFLAGS="$optarg" 2507d13299dSbellard ;; 251b1a550a0Spbrook --cpu=*) cpu="$optarg" 2527d13299dSbellard ;; 253b1a550a0Spbrook --target-list=*) target_list="$optarg" 254de83cd02Sbellard ;; 2557d13299dSbellard --enable-gprof) gprof="yes" 2567d13299dSbellard ;; 25743ce4dfeSbellard --static) static="yes" 25843ce4dfeSbellard ;; 25997a847bcSbellard --disable-sdl) sdl="no" 26097a847bcSbellard ;; 2611d14ffa9Sbellard --enable-coreaudio) coreaudio="yes" 2621d14ffa9Sbellard ;; 2631d14ffa9Sbellard --enable-alsa) alsa="yes" 2641d14ffa9Sbellard ;; 265ca9cc28cSbalrog --enable-esd) esd="yes" 266ca9cc28cSbalrog ;; 2671d14ffa9Sbellard --enable-dsound) dsound="yes" 2681d14ffa9Sbellard ;; 269102a52e4Sbellard --enable-fmod) fmod="yes" 270102a52e4Sbellard ;; 271b1a550a0Spbrook --fmod-lib=*) fmod_lib="$optarg" 272102a52e4Sbellard ;; 273b1a550a0Spbrook --fmod-inc=*) fmod_inc="$optarg" 274102a52e4Sbellard ;; 2758d5d2d4cSths --disable-vnc-tls) vnc_tls="no" 2768d5d2d4cSths ;; 277b93aebecSbellard --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no" 27867b915a5Sbellard ;; 279443f1376Sbellard --disable-slirp) slirp="no" 280c20709aaSbellard ;; 281fb065187Sbellard --enable-adlib) adlib="yes" 282fb065187Sbellard ;; 283e5c9a13eSbalrog --enable-ac97) ac97="yes" 284e5c9a13eSbalrog ;; 285423d65f4Sbalrog --enable-gus) gus="yes" 286423d65f4Sbalrog ;; 287c9ec1fe4Sbellard --disable-kqemu) kqemu="no" 288c9ec1fe4Sbellard ;; 289*2e4d9fb1Saurel32 --disable-brlapi) brlapi="no" 290*2e4d9fb1Saurel32 ;; 29105c2a3e7Sbellard --enable-profiler) profiler="yes" 29205c2a3e7Sbellard ;; 2931d14ffa9Sbellard --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no" 2945b0753e0Sbellard ;; 29597ccc689Sbellard --disable-gfx-check) check_gfx="no" 29697ccc689Sbellard ;; 2971aff381fSbellard --disable-gcc-check) check_gcc="no" 2981aff381fSbellard ;; 299cad25d69Spbrook --disable-system) softmmu="no" 3000a8e90f4Spbrook ;; 301cad25d69Spbrook --enable-system) softmmu="yes" 3020a8e90f4Spbrook ;; 303831b7825Sths --disable-linux-user) linux_user="no" 3040a8e90f4Spbrook ;; 305831b7825Sths --enable-linux-user) linux_user="yes" 306831b7825Sths ;; 307831b7825Sths --disable-darwin-user) darwin_user="no" 308831b7825Sths ;; 309831b7825Sths --enable-darwin-user) darwin_user="yes" 3100a8e90f4Spbrook ;; 311c5937220Spbrook --enable-uname-release=*) uname_release="$optarg" 312c5937220Spbrook ;; 3133142255cSblueswir1 --sparc_cpu=*) 3143142255cSblueswir1 sparc_cpu="$optarg" 3153142255cSblueswir1 case $sparc_cpu in 3163142255cSblueswir1 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32" 3173142255cSblueswir1 target_cpu="sparc"; cpu="sparc" ;; 3183142255cSblueswir1 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32" 3193142255cSblueswir1 target_cpu="sparc"; cpu="sparc" ;; 3203142255cSblueswir1 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64" 3213142255cSblueswir1 target_cpu="sparc64"; cpu="sparc64" ;; 3223142255cSblueswir1 *) echo "undefined SPARC architecture. Exiting";exit 1;; 3233142255cSblueswir1 esac 3243142255cSblueswir1 ;; 32585aa5189Sbellard --enable-werror) werror="yes" 32685aa5189Sbellard ;; 32785aa5189Sbellard --disable-werror) werror="no" 32885aa5189Sbellard ;; 3294d3b6f6eSbalrog --disable-curses) curses="no" 3304d3b6f6eSbalrog ;; 3317f1559c6Sbalrog *) echo "ERROR: unknown option $opt"; show_help="yes" 3327f1559c6Sbalrog ;; 3337d13299dSbellard esac 3347d13299dSbellarddone 3357d13299dSbellard 336209afb9eSthsif [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then 337209afb9eSths AIOLIBS= 338209afb9eSthselse 3394259e1a5Sths # Some Linux architectures (e.g. s390) don't imply -lpthread automatically. 3404259e1a5Sths AIOLIBS="-lrt -lpthread" 341209afb9eSthsfi 342209afb9eSths 3436f30fa85Sths# default flags for all hosts 3446f30fa85SthsCFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing" 3456f30fa85SthsLDFLAGS="$LDFLAGS -g" 34685aa5189Sbellardif test "$werror" = "yes" ; then 34785aa5189SbellardCFLAGS="$CFLAGS -Werror" 34885aa5189Sbellardfi 3496f30fa85Sths 3503142255cSblueswir1# 3513142255cSblueswir1# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right 3523142255cSblueswir1# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit) 3533142255cSblueswir1# 35440293e58Sbellardcase "$cpu" in 3553142255cSblueswir1 sparc) if test -z "$sparc_cpu" ; then 3563142255cSblueswir1 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__" 3573142255cSblueswir1 ARCH_LDFLAGS="-m32" 3583142255cSblueswir1 else 3593142255cSblueswir1 ARCH_CFLAGS="${SP_CFLAGS}" 3603142255cSblueswir1 ARCH_LDFLAGS="${SP_LDFLAGS}" 3613142255cSblueswir1 fi 3623142255cSblueswir1 ;; 3633142255cSblueswir1 sparc64) if test -z "$sparc_cpu" ; then 3643142255cSblueswir1 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__" 3653142255cSblueswir1 ARCH_LDFLAGS="-m64" 3663142255cSblueswir1 else 3673142255cSblueswir1 ARCH_CFLAGS="${SP_CFLAGS}" 3683142255cSblueswir1 ARCH_LDFLAGS="${SP_LDFLAGS}" 3693142255cSblueswir1 fi 3703142255cSblueswir1 ;; 37176d83bdeSths s390) 37276d83bdeSths ARCH_CFLAGS="-march=z900" 37376d83bdeSths ;; 37440293e58Sbellard i386) 37540293e58Sbellard ARCH_CFLAGS="-m32" 37640293e58Sbellard ARCH_LDFLAGS="-m32" 37740293e58Sbellard ;; 37840293e58Sbellard x86_64) 37940293e58Sbellard ARCH_CFLAGS="-m64" 38040293e58Sbellard ARCH_LDFLAGS="-m64" 38140293e58Sbellard ;; 3823142255cSblueswir1esac 3833142255cSblueswir1 384af5db58eSpbrookif test x"$show_help" = x"yes" ; then 385af5db58eSpbrookcat << EOF 386af5db58eSpbrook 387af5db58eSpbrookUsage: configure [options] 388af5db58eSpbrookOptions: [defaults in brackets after descriptions] 389af5db58eSpbrook 390af5db58eSpbrookEOF 391af5db58eSpbrookecho "Standard options:" 392af5db58eSpbrookecho " --help print this message" 393af5db58eSpbrookecho " --prefix=PREFIX install in PREFIX [$prefix]" 394af5db58eSpbrookecho " --interp-prefix=PREFIX where to find shared libraries, etc." 395af5db58eSpbrookecho " use %M for cpu name [$interp_prefix]" 396af5db58eSpbrookecho " --target-list=LIST set target list [$target_list]" 397af5db58eSpbrookecho "" 398af5db58eSpbrookecho "kqemu kernel acceleration support:" 399af5db58eSpbrookecho " --disable-kqemu disable kqemu support" 400af5db58eSpbrookecho "" 401af5db58eSpbrookecho "Advanced options (experts only):" 402af5db58eSpbrookecho " --source-path=PATH path of source code [$source_path]" 403af5db58eSpbrookecho " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 404af5db58eSpbrookecho " --cc=CC use C compiler CC [$cc]" 405af5db58eSpbrookecho " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc." 406af5db58eSpbrookecho " --make=MAKE use specified make [$make]" 4076a882643Spbrookecho " --install=INSTALL use specified install [$install]" 408af5db58eSpbrookecho " --static enable static build [$static]" 40985aa5189Sbellardecho " --disable-werror disable compilation abort on warning" 410fe8f78e4Sbalrogecho " --disable-sdl disable SDL" 411af5db58eSpbrookecho " --enable-cocoa enable COCOA (Mac OS X only)" 412af5db58eSpbrookecho " --enable-mingw32 enable Win32 cross compilation with mingw32" 413af5db58eSpbrookecho " --enable-adlib enable Adlib emulation" 414e5c9a13eSbalrogecho " --enable-ac97 enable AC97 emulation" 415423d65f4Sbalrogecho " --enable-gus enable Gravis Ultrasound emulation" 416af5db58eSpbrookecho " --enable-coreaudio enable Coreaudio audio driver" 417af5db58eSpbrookecho " --enable-alsa enable ALSA audio driver" 418ca9cc28cSbalrogecho " --enable-esd enable EsoundD audio driver" 419af5db58eSpbrookecho " --enable-fmod enable FMOD audio driver" 420ed5065e1Sthsecho " --enable-dsound enable DirectSound audio driver" 421*2e4d9fb1Saurel32echo " --disable-brlapi disable BrlAPI" 4228d5d2d4cSthsecho " --disable-vnc-tls disable TLS encryption for VNC server" 423af896aaaSpbrookecho " --disable-curses disable curses output" 424af5db58eSpbrookecho " --enable-system enable all system emulation targets" 425af5db58eSpbrookecho " --disable-system disable all system emulation targets" 426831b7825Sthsecho " --enable-linux-user enable all linux usermode emulation targets" 427831b7825Sthsecho " --disable-linux-user disable all linux usermode emulation targets" 428831b7825Sthsecho " --enable-darwin-user enable all darwin usermode emulation targets" 429831b7825Sthsecho " --disable-darwin-user disable all darwin usermode emulation targets" 430af5db58eSpbrookecho " --fmod-lib path to FMOD library" 431af5db58eSpbrookecho " --fmod-inc path to FMOD includes" 432c5937220Spbrookecho " --enable-uname-release=R Return R for uname -r in usermode emulation" 4333142255cSblueswir1echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9" 434af5db58eSpbrookecho "" 4355bf08934Sthsecho "NOTE: The object files are built at the place where configure is launched" 436af5db58eSpbrookexit 1 437af5db58eSpbrookfi 438af5db58eSpbrook 4397d13299dSbellardcc="${cross_prefix}${cc}" 4407d13299dSbellardar="${cross_prefix}${ar}" 4417d13299dSbellardstrip="${cross_prefix}${strip}" 4427d13299dSbellard 443064aae13Spbrook# check that the C compiler works. 444064aae13Spbrookcat > $TMPC <<EOF 445064aae13Spbrookint main(void) {} 446064aae13SpbrookEOF 447064aae13Spbrook 448db7287edSpbrookif $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then 449064aae13Spbrook : C compiler works ok 450064aae13Spbrookelse 451064aae13Spbrook echo "ERROR: \"$cc\" either does not exist or does not work" 452064aae13Spbrook exit 1 453a7350fa1Sbellardfi 454a7350fa1Sbellard 45567b915a5Sbellardif test "$mingw32" = "yes" ; then 4565327cf48Sbellard linux="no" 45767b915a5Sbellard EXESUF=".exe" 4589f059ecaSbellard oss="no" 45967b915a5Sbellardfi 46067b915a5Sbellard 461328a4240Spbrook# Check for gcc4, error if pre-gcc4 462328a4240Spbrookif test "$check_gcc" = "yes" ; then 463328a4240Spbrook cat > $TMPC <<EOF 464328a4240Spbrook#if __GNUC__ < 4 465328a4240Spbrook#error gcc3 466328a4240Spbrook#endif 467328a4240Spbrookint main(){return 0;} 468328a4240SpbrookEOF 469db7287edSpbrook if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 470328a4240Spbrook echo "WARNING: \"$cc\" looks like gcc 4.x" 471328a4240Spbrook found_compat_cc="no" 472328a4240Spbrook if test "$gcc3_search" = "yes" ; then 473328a4240Spbrook echo "Looking for gcc 3.x" 474328a4240Spbrook for compat_cc in $gcc3_list ; do 475d4af3de2Sbalrog if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then 476328a4240Spbrook echo "Found \"$compat_cc\"" 4771124426aSpbrook cc="$cross_prefix$compat_cc" 478328a4240Spbrook found_compat_cc="yes" 479328a4240Spbrook break 480328a4240Spbrook fi 481328a4240Spbrook done 482328a4240Spbrook if test "$found_compat_cc" = "no" ; then 483328a4240Spbrook echo "gcc 3.x not found!" 484328a4240Spbrook fi 485328a4240Spbrook fi 486328a4240Spbrook if test "$found_compat_cc" = "no" ; then 487328a4240Spbrook echo "QEMU is known to have problems when compiled with gcc 4.x" 488328a4240Spbrook echo "It is recommended that you use gcc 3.x to build QEMU" 489328a4240Spbrook echo "To use this compiler anyway, configure with --disable-gcc-check" 490328a4240Spbrook exit 1; 491328a4240Spbrook fi 492328a4240Spbrook fi 493328a4240Spbrookfi 494328a4240Spbrook 495ec530c81Sbellard# 496ec530c81Sbellard# Solaris specific configure tool chain decisions 497ec530c81Sbellard# 498ec530c81Sbellardif test "$solaris" = "yes" ; then 499ec530c81Sbellard # 500ec530c81Sbellard # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly 501ec530c81Sbellard # override the check with --disable-gcc-check 502ec530c81Sbellard # 503ec530c81Sbellard if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then 504ec530c81Sbellard solgcc=`which $cc` 505ec530c81Sbellard if test "$solgcc" = "/usr/sfw/bin/gcc" ; then 506ec530c81Sbellard echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly." 507ec530c81Sbellard echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3" 508ec530c81Sbellard echo "or get the latest patch from SunSolve for gcc" 509ec530c81Sbellard exit 1 510ec530c81Sbellard fi 511ec530c81Sbellard fi 512ec530c81Sbellard solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"` 513ec530c81Sbellard if test -z "$solinst" ; then 514ec530c81Sbellard echo "Solaris install program not found. Use --install=/usr/ucb/install or" 515ec530c81Sbellard echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" 516ec530c81Sbellard echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" 517ec530c81Sbellard exit 1 518ec530c81Sbellard fi 519ec530c81Sbellard if test "$solinst" = "/usr/sbin/install" ; then 520ec530c81Sbellard echo "Error: Solaris /usr/sbin/install is not an appropriate install program." 521ec530c81Sbellard echo "try ginstall from the GNU fileutils available from www.blastwave.org" 522ec530c81Sbellard echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" 523ec530c81Sbellard exit 1 524ec530c81Sbellard fi 525ec530c81Sbellard sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"` 526ec530c81Sbellard if test -z "$sol_ar" ; then 527ec530c81Sbellard echo "Error: No path includes ar" 528ec530c81Sbellard if test -f /usr/ccs/bin/ar ; then 529ec530c81Sbellard echo "Add /usr/ccs/bin to your path and rerun configure" 530ec530c81Sbellard fi 531ec530c81Sbellard exit 1 532ec530c81Sbellard fi 533ec530c81Sbellardfi 534ec530c81Sbellard 535ec530c81Sbellard 5365327cf48Sbellardif test -z "$target_list" ; then 5375327cf48Sbellard# these targets are portable 5380a8e90f4Spbrook if [ "$softmmu" = "yes" ] ; then 53985ffbdfcSths target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu" 5400a8e90f4Spbrook fi 5415327cf48Sbellard# the following are Linux specific 542831b7825Sths if [ "$linux_user" = "yes" ] ; then 54385ffbdfcSths target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user sh4eb-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list" 544831b7825Sths fi 545831b7825Sths# the following are Darwin specific 546831b7825Sths if [ "$darwin_user" = "yes" ] ; then 547831b7825Sths target_list="i386-darwin-user ppc-darwin-user $target_list" 5485327cf48Sbellard fi 5496e20a45fSbellardelse 550b1a550a0Spbrook target_list=`echo "$target_list" | sed -e 's/,/ /g'` 5515327cf48Sbellardfi 5520a8e90f4Spbrookif test -z "$target_list" ; then 5530a8e90f4Spbrook echo "No targets enabled" 5540a8e90f4Spbrook exit 1 5550a8e90f4Spbrookfi 5565327cf48Sbellard 5577d13299dSbellardif test -z "$cross_prefix" ; then 5587d13299dSbellard 5597d13299dSbellard# --- 5607d13299dSbellard# big/little endian test 5617d13299dSbellardcat > $TMPC << EOF 5627d13299dSbellard#include <inttypes.h> 5637d13299dSbellardint main(int argc, char ** argv){ 5647d13299dSbellard volatile uint32_t i=0x01234567; 5657d13299dSbellard return (*((uint8_t*)(&i))) == 0x67; 5667d13299dSbellard} 5677d13299dSbellardEOF 5687d13299dSbellard 569db7287edSpbrookif $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 5707d13299dSbellard$TMPE && bigendian="yes" 5717d13299dSbellardelse 5727d13299dSbellardecho big/little test failed 5737d13299dSbellardfi 5747d13299dSbellard 5757d13299dSbellardelse 5767d13299dSbellard 5777d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess 578fbe4f65bSthsif test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then 5797d13299dSbellard bigendian="yes" 5807d13299dSbellardfi 5817d13299dSbellard 5827d13299dSbellardfi 5837d13299dSbellard 584b6853697Sbellard# host long bits test 585b6853697Sbellardhostlongbits="32" 586b6853697Sbellardif test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then 587b6853697Sbellard hostlongbits="64" 588b6853697Sbellardfi 589b6853697Sbellard 590e8cd23deSbellard# check gcc options support 59104369ff2Sbellardcat > $TMPC <<EOF 59204369ff2Sbellardint main(void) { 59304369ff2Sbellard} 59404369ff2SbellardEOF 59504369ff2Sbellard 59611d9f695Sbellard########################################## 59711d9f695Sbellard# SDL probe 59811d9f695Sbellard 59911d9f695Sbellardsdl_too_old=no 60011d9f695Sbellard 60111d9f695Sbellardif test -z "$sdl" ; then 602a6e022adSbellard sdl_config="sdl-config" 603a6e022adSbellard sdl=no 6047c1f25b4Sbellard sdl_static=no 605a6e022adSbellard 606a6e022adSbellard if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 607a6e022adSbellard # win32 cross compilation case 608a6e022adSbellard sdl_config="i386-mingw32msvc-sdl-config" 609a6e022adSbellard sdl=yes 610a6e022adSbellard else 611a6e022adSbellard # normal SDL probe 61211d9f695Sbellardcat > $TMPC << EOF 61311d9f695Sbellard#include <SDL.h> 61411d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 61511d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 61611d9f695SbellardEOF 617db7287edSpbrook if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then 618a6e022adSbellard _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 61911d9f695Sbellard if test "$_sdlversion" -lt 121 ; then 62011d9f695Sbellard sdl_too_old=yes 62111d9f695Sbellard else 622fd677642Sths if test "$cocoa" = "no" ; then 62311d9f695Sbellard sdl=yes 62411d9f695Sbellard fi 625fd677642Sths fi 6267c1f25b4Sbellard 6277c1f25b4Sbellard # static link with sdl ? 6287c1f25b4Sbellard if test "$sdl" = "yes" ; then 6297c1f25b4Sbellard aa="no" 630e14a693dSths `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes" 631e14a693dSths sdl_static_libs=`$sdl_config --static-libs 2>/dev/null` 6327c1f25b4Sbellard if [ "$aa" = "yes" ] ; then 633d8d8aa4eSbellard sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 63411d9f695Sbellard fi 63511d9f695Sbellard 6368281db4dSths if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 6377c1f25b4Sbellard sdl_static=yes 6387c1f25b4Sbellard fi 6397c1f25b4Sbellard fi # static link 6407c1f25b4Sbellard fi # sdl compile test 641a6e022adSbellard fi # cross compilation 642fd677642Sthselse 643fd677642Sths # Make sure to disable cocoa if sdl was set 644fd677642Sths if test "$sdl" = "yes" ; then 645fd677642Sths cocoa="no" 646fd677642Sths coreaudio="no" 647fd677642Sths fi 648a6e022adSbellardfi # -z $sdl 64911d9f695Sbellard 6508f28f3fbSths########################################## 6518d5d2d4cSths# VNC TLS detection 6528d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 6538d5d2d4cSths `pkg-config gnutls` || vnc_tls="no" 6548d5d2d4cSthsfi 6558d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 6568d5d2d4cSths vnc_tls_cflags=`pkg-config --cflags gnutls` 6578d5d2d4cSths vnc_tls_libs=`pkg-config --libs gnutls` 6588d5d2d4cSthsfi 6598d5d2d4cSths 6608d5d2d4cSths########################################## 6618f28f3fbSths# alsa sound support libraries 6628f28f3fbSths 6638f28f3fbSthsif test "$alsa" = "yes" ; then 6648f28f3fbSths cat > $TMPC << EOF 6658f28f3fbSths#include <alsa/asoundlib.h> 6668f28f3fbSthsint main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); } 6678f28f3fbSthsEOF 668db7287edSpbrook if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then 6698f28f3fbSths : 6708f28f3fbSths else 6718f28f3fbSths echo 6728f28f3fbSths echo "Error: Could not find alsa" 6738f28f3fbSths echo "Make sure to have the alsa libs and headers installed." 6748f28f3fbSths echo 6758f28f3fbSths exit 1 6768f28f3fbSths fi 6778f28f3fbSthsfi 6788f28f3fbSths 6794d3b6f6eSbalrog########################################## 680*2e4d9fb1Saurel32# BrlAPI probe 681*2e4d9fb1Saurel32 682*2e4d9fb1Saurel32if test -z "$brlapi" ; then 683*2e4d9fb1Saurel32 brlapi=no 684*2e4d9fb1Saurel32cat > $TMPC << EOF 685*2e4d9fb1Saurel32#include <brlapi.h> 686*2e4d9fb1Saurel32int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } 687*2e4d9fb1Saurel32EOF 688*2e4d9fb1Saurel32 if $cc -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /tmp/qemu-$$-brlapi.log ; then 689*2e4d9fb1Saurel32 brlapi=yes 690*2e4d9fb1Saurel32 fi # brlapi compile test 691*2e4d9fb1Saurel32fi # -z $brlapi 692*2e4d9fb1Saurel32 693*2e4d9fb1Saurel32########################################## 6944d3b6f6eSbalrog# curses probe 6954d3b6f6eSbalrog 6964d3b6f6eSbalrogif test "$curses" = "yes" ; then 6974d3b6f6eSbalrog curses=no 6984d3b6f6eSbalrog cat > $TMPC << EOF 6994d3b6f6eSbalrog#include <curses.h> 7004d3b6f6eSbalrogint main(void) { return curses_version(); } 7014d3b6f6eSbalrogEOF 702af896aaaSpbrook if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then 7034d3b6f6eSbalrog curses=yes 7044d3b6f6eSbalrog fi 7054d3b6f6eSbalrogfi # test "$curses" 7064d3b6f6eSbalrog 707cc8ae6deSpbrook# Check if tools are available to build documentation. 7086c591867Sthsif [ -x "`which texi2html 2>/dev/null`" ] && \ 7096c591867Sths [ -x "`which pod2man 2>/dev/null`" ]; then 710cc8ae6deSpbrook build_docs="yes" 711cc8ae6deSpbrookfi 712cc8ae6deSpbrook 71311d9f695Sbellardif test "$mingw32" = "yes" ; then 71411d9f695Sbellard if test -z "$prefix" ; then 71511d9f695Sbellard prefix="/c/Program Files/Qemu" 71611d9f695Sbellard fi 717308c3593Spbrook mansuffix="" 718308c3593Spbrook datasuffix="" 719308c3593Spbrook docsuffix="" 720308c3593Spbrook binsuffix="" 72111d9f695Sbellardelse 72211d9f695Sbellard if test -z "$prefix" ; then 72311d9f695Sbellard prefix="/usr/local" 72411d9f695Sbellard fi 725308c3593Spbrook mansuffix="/share/man" 726308c3593Spbrook datasuffix="/share/qemu" 727308c3593Spbrook docsuffix="/share/doc/qemu" 728308c3593Spbrook binsuffix="/bin" 72911d9f695Sbellardfi 7305a67135aSbellard 7317d13299dSbellardecho "Install prefix $prefix" 732308c3593Spbrookecho "BIOS directory $prefix$datasuffix" 733308c3593Spbrookecho "binary directory $prefix$binsuffix" 73411d9f695Sbellardif test "$mingw32" = "no" ; then 735308c3593Spbrookecho "Manual directory $prefix$mansuffix" 73643ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 73711d9f695Sbellardfi 7385a67135aSbellardecho "Source path $source_path" 7397d13299dSbellardecho "C compiler $cc" 74083469015Sbellardecho "Host C compiler $host_cc" 741db7287edSpbrookecho "ARCH_CFLAGS $ARCH_CFLAGS" 7427d13299dSbellardecho "make $make" 7436a882643Spbrookecho "install $install" 744a98fd896Sbellardecho "host CPU $cpu" 745de83cd02Sbellardecho "host big endian $bigendian" 74697a847bcSbellardecho "target list $target_list" 7477d13299dSbellardecho "gprof enabled $gprof" 74805c2a3e7Sbellardecho "profiler $profiler" 74943ce4dfeSbellardecho "static build $static" 75085aa5189Sbellardecho "-Werror enabled $werror" 7515b0753e0Sbellardif test "$darwin" = "yes" ; then 7525b0753e0Sbellard echo "Cocoa support $cocoa" 7535b0753e0Sbellardfi 75497a847bcSbellardecho "SDL support $sdl" 755e4afee97Sbellardif test "$sdl" != "no" ; then 7567c1f25b4Sbellard echo "SDL static link $sdl_static" 757e4afee97Sbellardfi 7584d3b6f6eSbalrogecho "curses support $curses" 75967b915a5Sbellardecho "mingw32 support $mingw32" 760fb065187Sbellardecho "Adlib support $adlib" 761e5c9a13eSbalrogecho "AC97 support $ac97" 762423d65f4Sbalrogecho "GUS support $gus" 7631d14ffa9Sbellardecho "CoreAudio support $coreaudio" 7641d14ffa9Sbellardecho "ALSA support $alsa" 765ca9cc28cSbalrogecho "EsounD support $esd" 7661d14ffa9Sbellardecho "DSound support $dsound" 7671d14ffa9Sbellardif test "$fmod" = "yes"; then 7681d14ffa9Sbellard if test -z $fmod_lib || test -z $fmod_inc; then 7691d14ffa9Sbellard echo 7701d14ffa9Sbellard echo "Error: You must specify path to FMOD library and headers" 7711d14ffa9Sbellard echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 7721d14ffa9Sbellard echo 7731d14ffa9Sbellard exit 1 7741d14ffa9Sbellard fi 775b1a550a0Spbrook fmod_support=" (lib='$fmod_lib' include='$fmod_inc')" 776b1a550a0Spbrookelse 777b1a550a0Spbrook fmod_support="" 778102a52e4Sbellardfi 779b1a550a0Spbrookecho "FMOD support $fmod $fmod_support" 7806b4d2ba1Sthsecho "OSS support $oss" 7818d5d2d4cSthsecho "VNC TLS support $vnc_tls" 7828d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 7838d5d2d4cSths echo " TLS CFLAGS $vnc_tls_cflags" 7848d5d2d4cSths echo " TLS LIBS $vnc_tls_libs" 7858d5d2d4cSthsfi 7863142255cSblueswir1if test -n "$sparc_cpu"; then 7873142255cSblueswir1 echo "Target Sparc Arch $sparc_cpu" 7883142255cSblueswir1fi 78907f4ddbfSbellardecho "kqemu support $kqemu" 790*2e4d9fb1Saurel32echo "brlapi support $brlapi" 791cc8ae6deSpbrookecho "Documentation $build_docs" 792c5937220Spbrook[ ! -z "$uname_release" ] && \ 793c5937220Spbrookecho "uname -r $uname_release" 79467b915a5Sbellard 79597a847bcSbellardif test $sdl_too_old = "yes"; then 79624b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support" 797e8cd23deSbellardfi 79820b40c6aSthsif [ -s /tmp/qemu-$$-sdl-config.log ]; then 79920b40c6aSths echo "The error log from compiling the libSDL test is: " 80020b40c6aSths cat /tmp/qemu-$$-sdl-config.log 80120b40c6aSthsfi 80220b40c6aSthsrm -f /tmp/qemu-$$-sdl-config.log 80324b55b96Sbellard#if test "$sdl_static" = "no"; then 80424b55b96Sbellard# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 80524b55b96Sbellard#fi 80697a847bcSbellardconfig_mak="config-host.mak" 80797a847bcSbellardconfig_h="config-host.h" 80897a847bcSbellard 8097c1f25b4Sbellard#echo "Creating $config_mak and $config_h" 81097a847bcSbellard 81115d9ca0fSthstest -f $config_h && mv $config_h ${config_h}~ 81215d9ca0fSths 81397a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 81429517134Spbrookecho "# Configured with: $0 $@" >> $config_mak 81597a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 81697a847bcSbellard 81797a847bcSbellardecho "prefix=$prefix" >> $config_mak 818308c3593Spbrookecho "bindir=\${prefix}$binsuffix" >> $config_mak 819308c3593Spbrookecho "mandir=\${prefix}$mansuffix" >> $config_mak 820308c3593Spbrookecho "datadir=\${prefix}$datasuffix" >> $config_mak 8214ad5b06dSthsecho "docdir=\${prefix}$docsuffix" >> $config_mak 822308c3593Spbrookecho "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h 82397a847bcSbellardecho "MAKE=$make" >> $config_mak 8246a882643Spbrookecho "INSTALL=$install" >> $config_mak 82597a847bcSbellardecho "CC=$cc" >> $config_mak 82697a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak 82797a847bcSbellardecho "AR=$ar" >> $config_mak 82897a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak 82940293e58Sbellard# XXX: only use CFLAGS and LDFLAGS ? 83040293e58Sbellard# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross 83140293e58Sbellard# compilation of dyngen tool (useful for win32 build on Linux host) 8326f30fa85Sthsecho "OS_CFLAGS=$OS_CFLAGS" >> $config_mak 8333142255cSblueswir1echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak 8343142255cSblueswir1echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak 8353142255cSblueswir1echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak 83697a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak 83797a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak 83867b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak 83970956b77Sthsecho "AIOLIBS=$AIOLIBS" >> $config_mak 84097a847bcSbellardif test "$cpu" = "i386" ; then 84197a847bcSbellard echo "ARCH=i386" >> $config_mak 84297a847bcSbellard echo "#define HOST_I386 1" >> $config_h 8430b0babc6Sbellardelif test "$cpu" = "x86_64" ; then 8440b0babc6Sbellard echo "ARCH=x86_64" >> $config_mak 8450b0babc6Sbellard echo "#define HOST_X86_64 1" >> $config_h 846808c4954Sbellardelif test "$cpu" = "armv4b" ; then 847808c4954Sbellard echo "ARCH=arm" >> $config_mak 848808c4954Sbellard echo "#define HOST_ARM 1" >> $config_h 8497d13299dSbellardelif test "$cpu" = "armv4l" ; then 85097a847bcSbellard echo "ARCH=arm" >> $config_mak 85197a847bcSbellard echo "#define HOST_ARM 1" >> $config_h 8527d13299dSbellardelif test "$cpu" = "powerpc" ; then 85397a847bcSbellard echo "ARCH=ppc" >> $config_mak 85497a847bcSbellard echo "#define HOST_PPC 1" >> $config_h 8557d13299dSbellardelif test "$cpu" = "mips" ; then 85697a847bcSbellard echo "ARCH=mips" >> $config_mak 85797a847bcSbellard echo "#define HOST_MIPS 1" >> $config_h 858fbe4f65bSthselif test "$cpu" = "mips64" ; then 859fbe4f65bSths echo "ARCH=mips64" >> $config_mak 860fbe4f65bSths echo "#define HOST_MIPS64 1" >> $config_h 861e7daa605Sthselif test "$cpu" = "cris" ; then 862e7daa605Sths echo "ARCH=cris" >> $config_mak 863e7daa605Sths echo "#define HOST_CRIS 1" >> $config_h 864fb3e5849Sbellardelif test "$cpu" = "s390" ; then 86597a847bcSbellard echo "ARCH=s390" >> $config_mak 86697a847bcSbellard echo "#define HOST_S390 1" >> $config_h 867295defa5Sbellardelif test "$cpu" = "alpha" ; then 86897a847bcSbellard echo "ARCH=alpha" >> $config_mak 86997a847bcSbellard echo "#define HOST_ALPHA 1" >> $config_h 870ae228531Sbellardelif test "$cpu" = "sparc" ; then 87197a847bcSbellard echo "ARCH=sparc" >> $config_mak 87297a847bcSbellard echo "#define HOST_SPARC 1" >> $config_h 873ae228531Sbellardelif test "$cpu" = "sparc64" ; then 87497a847bcSbellard echo "ARCH=sparc64" >> $config_mak 87597a847bcSbellard echo "#define HOST_SPARC64 1" >> $config_h 876a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then 87797a847bcSbellard echo "ARCH=ia64" >> $config_mak 87897a847bcSbellard echo "#define HOST_IA64 1" >> $config_h 87938e584a0Sbellardelif test "$cpu" = "m68k" ; then 88038ca2abcSbellard echo "ARCH=m68k" >> $config_mak 88138ca2abcSbellard echo "#define HOST_M68K 1" >> $config_h 8827d13299dSbellardelse 8833142255cSblueswir1 echo "Unsupported CPU = $cpu" 8847d13299dSbellard exit 1 8857d13299dSbellardfi 8867d13299dSbellardif test "$bigendian" = "yes" ; then 88797a847bcSbellard echo "WORDS_BIGENDIAN=yes" >> $config_mak 88897a847bcSbellard echo "#define WORDS_BIGENDIAN 1" >> $config_h 88997a847bcSbellardfi 890b6853697Sbellardecho "#define HOST_LONG_BITS $hostlongbits" >> $config_h 89167b915a5Sbellardif test "$mingw32" = "yes" ; then 89267b915a5Sbellard echo "CONFIG_WIN32=yes" >> $config_mak 89311d9f695Sbellard echo "#define CONFIG_WIN32 1" >> $config_h 894210fa556Spbrookelse 895210fa556Spbrook cat > $TMPC << EOF 896210fa556Spbrook#include <byteswap.h> 897210fa556Spbrookint main(void) { return bswap_32(0); } 898210fa556SpbrookEOF 899db7287edSpbrook if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 90097a847bcSbellard echo "#define HAVE_BYTESWAP_H 1" >> $config_h 90167b915a5Sbellard fi 902210fa556Spbrookfi 90383fb7adfSbellardif test "$darwin" = "yes" ; then 90483fb7adfSbellard echo "CONFIG_DARWIN=yes" >> $config_mak 90583fb7adfSbellard echo "#define CONFIG_DARWIN 1" >> $config_h 90683fb7adfSbellardfi 907ec530c81Sbellardif test "$solaris" = "yes" ; then 908ec530c81Sbellard echo "CONFIG_SOLARIS=yes" >> $config_mak 90938cfa06cSbellard echo "#define HOST_SOLARIS $solarisrev" >> $config_h 9100475a5caSths if test "$needs_libsunmath" = "yes" ; then 9110475a5caSths echo "NEEDS_LIBSUNMATH=yes" >> $config_mak 9120475a5caSths echo "#define NEEDS_LIBSUNMATH 1" >> $config_h 9130475a5caSths fi 914ec530c81Sbellardfi 9153142255cSblueswir1if test -n "$sparc_cpu"; then 9163142255cSblueswir1 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak 9173142255cSblueswir1 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h 9183142255cSblueswir1fi 91967b915a5Sbellardif test "$gdbstub" = "yes" ; then 92067b915a5Sbellard echo "CONFIG_GDBSTUB=yes" >> $config_mak 92167b915a5Sbellard echo "#define CONFIG_GDBSTUB 1" >> $config_h 92267b915a5Sbellardfi 92397a847bcSbellardif test "$gprof" = "yes" ; then 92497a847bcSbellard echo "TARGET_GPROF=yes" >> $config_mak 92597a847bcSbellard echo "#define HAVE_GPROF 1" >> $config_h 92697a847bcSbellardfi 92797a847bcSbellardif test "$static" = "yes" ; then 92897a847bcSbellard echo "CONFIG_STATIC=yes" >> $config_mak 92950863472Sbellard echo "#define CONFIG_STATIC 1" >> $config_h 93097a847bcSbellardfi 93105c2a3e7Sbellardif test $profiler = "yes" ; then 93205c2a3e7Sbellard echo "#define CONFIG_PROFILER 1" >> $config_h 93305c2a3e7Sbellardfi 934c20709aaSbellardif test "$slirp" = "yes" ; then 935c20709aaSbellard echo "CONFIG_SLIRP=yes" >> $config_mak 936c20709aaSbellard echo "#define CONFIG_SLIRP 1" >> $config_h 937c20709aaSbellardfi 938fb065187Sbellardif test "$adlib" = "yes" ; then 939fb065187Sbellard echo "CONFIG_ADLIB=yes" >> $config_mak 940fb065187Sbellard echo "#define CONFIG_ADLIB 1" >> $config_h 941fb065187Sbellardfi 942e5c9a13eSbalrogif test "$ac97" = "yes" ; then 943e5c9a13eSbalrog echo "CONFIG_AC97=yes" >> $config_mak 944e5c9a13eSbalrog echo "#define CONFIG_AC97 1" >> $config_h 945e5c9a13eSbalrogfi 946423d65f4Sbalrogif test "$gus" = "yes" ; then 947423d65f4Sbalrog echo "CONFIG_GUS=yes" >> $config_mak 948423d65f4Sbalrog echo "#define CONFIG_GUS 1" >> $config_h 949423d65f4Sbalrogfi 950fb065187Sbellardif test "$oss" = "yes" ; then 951fb065187Sbellard echo "CONFIG_OSS=yes" >> $config_mak 952fb065187Sbellard echo "#define CONFIG_OSS 1" >> $config_h 953fb065187Sbellardfi 9541d14ffa9Sbellardif test "$coreaudio" = "yes" ; then 9551d14ffa9Sbellard echo "CONFIG_COREAUDIO=yes" >> $config_mak 9561d14ffa9Sbellard echo "#define CONFIG_COREAUDIO 1" >> $config_h 9571d14ffa9Sbellardfi 9581d14ffa9Sbellardif test "$alsa" = "yes" ; then 9591d14ffa9Sbellard echo "CONFIG_ALSA=yes" >> $config_mak 9601d14ffa9Sbellard echo "#define CONFIG_ALSA 1" >> $config_h 9611d14ffa9Sbellardfi 962ca9cc28cSbalrogif test "$esd" = "yes" ; then 963ca9cc28cSbalrog echo "CONFIG_ESD=yes" >> $config_mak 964ca9cc28cSbalrog echo "#define CONFIG_ESD 1" >> $config_h 965ca9cc28cSbalrogfi 9661d14ffa9Sbellardif test "$dsound" = "yes" ; then 9671d14ffa9Sbellard echo "CONFIG_DSOUND=yes" >> $config_mak 9681d14ffa9Sbellard echo "#define CONFIG_DSOUND 1" >> $config_h 9691d14ffa9Sbellardfi 970102a52e4Sbellardif test "$fmod" = "yes" ; then 971102a52e4Sbellard echo "CONFIG_FMOD=yes" >> $config_mak 972102a52e4Sbellard echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak 973102a52e4Sbellard echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak 974102a52e4Sbellard echo "#define CONFIG_FMOD 1" >> $config_h 975102a52e4Sbellardfi 9768d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 9778d5d2d4cSths echo "CONFIG_VNC_TLS=yes" >> $config_mak 9788d5d2d4cSths echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak 9798d5d2d4cSths echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak 9808d5d2d4cSths echo "#define CONFIG_VNC_TLS 1" >> $config_h 9818d5d2d4cSthsfi 982b1a550a0Spbrookqemu_version=`head $source_path/VERSION` 983b1a550a0Spbrookecho "VERSION=$qemu_version" >>$config_mak 984d4b8f039Spbrookecho "#define QEMU_VERSION \"$qemu_version\"" >> $config_h 98597a847bcSbellard 98697a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak 987ad064840Spbrookif [ "$source_path_used" = "yes" ]; then 988ad064840Spbrook echo "VPATH=$source_path" >> $config_mak 989ad064840Spbrookfi 99097a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak 991cc8ae6deSpbrookif [ "$build_docs" = "yes" ] ; then 992cc8ae6deSpbrook echo "BUILD_DOCS=yes" >> $config_mak 993cc8ae6deSpbrookfi 99449ecc3faSbellardif test "$static" = "yes"; then 99549ecc3faSbellard sdl1=$sdl_static 99649ecc3faSbellardelse 99749ecc3faSbellard sdl1=$sdl 99849ecc3faSbellardfi 99949ecc3faSbellardif test "$sdl1" = "yes" ; then 100049ecc3faSbellard echo "#define CONFIG_SDL 1" >> $config_h 100149ecc3faSbellard echo "CONFIG_SDL=yes" >> $config_mak 100249ecc3faSbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 100349ecc3faSbellard echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 100449ecc3faSbellard else 100549ecc3faSbellard echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 100649ecc3faSbellard fi 100749ecc3faSbellard if [ "${aa}" = "yes" ] ; then 100849ecc3faSbellard echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak 100949ecc3faSbellard else 101049ecc3faSbellard echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 101149ecc3faSbellard fi 101249ecc3faSbellardfi 101349ecc3faSbellardif test "$cocoa" = "yes" ; then 101449ecc3faSbellard echo "#define CONFIG_COCOA 1" >> $config_h 101549ecc3faSbellard echo "CONFIG_COCOA=yes" >> $config_mak 101649ecc3faSbellardfi 10174d3b6f6eSbalrogif test "$curses" = "yes" ; then 10184d3b6f6eSbalrog echo "#define CONFIG_CURSES 1" >> $config_h 10194d3b6f6eSbalrog echo "CONFIG_CURSES=yes" >> $config_mak 10204d3b6f6eSbalrog echo "CURSES_LIBS=-lcurses" >> $config_mak 10214d3b6f6eSbalrogfi 1022*2e4d9fb1Saurel32if test "$brlapi" = "yes" ; then 1023*2e4d9fb1Saurel32 echo "CONFIG_BRLAPI=yes" >> $config_mak 1024*2e4d9fb1Saurel32 echo "#define CONFIG_BRLAPI 1" >> $config_h 1025*2e4d9fb1Saurel32 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak 1026*2e4d9fb1Saurel32fi 102797a847bcSbellard 102883fb7adfSbellard# XXX: suppress that 10297d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 103043003046Sbellard echo "#define O_LARGEFILE 0" >> $config_h 103143003046Sbellard echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 10327d3505c5Sbellard echo "#define _BSD 1" >> $config_h 10337d3505c5Sbellardfi 10347d3505c5Sbellard 1035c5937220Spbrookecho "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h 1036c5937220Spbrook 1037c39e3338Spbrooktools= 1038c39e3338Spbrookif test `expr "$target_list" : ".*softmmu.*"` != 0 ; then 1039c39e3338Spbrook tools="qemu-img\$(EXESUF) $tools" 1040c39e3338Spbrookfi 1041c39e3338Spbrookecho "TOOLS=$tools" >> $config_mak 1042c39e3338Spbrook 104315d9ca0fSthstest -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 104415d9ca0fSths 104597a847bcSbellardfor target in $target_list; do 104697a847bcSbellardtarget_dir="$target" 104797a847bcSbellardconfig_mak=$target_dir/config.mak 104897a847bcSbellardconfig_h=$target_dir/config.h 104997a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1` 105097a847bcSbellardtarget_bigendian="no" 1051808c4954Sbellard[ "$target_cpu" = "armeb" ] && target_bigendian=yes 10521e43adfcSbellard[ "$target_cpu" = "sparc" ] && target_bigendian=yes 105364b3ab24Sbellard[ "$target_cpu" = "sparc64" ] && target_bigendian=yes 1054992f48a0Sblueswir1[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes 105567867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes 1056d4082e95Sj_mayer[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes 105722f8a8b3Sj_mayer[ "$target_cpu" = "ppc64" ] && target_bigendian=yes 1058e85e7c6eSj_mayer[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes 1059d3258560Sbellard[ "$target_cpu" = "mips" ] && target_bigendian=yes 1060540635baSths[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes 1061fbe4f65bSths[ "$target_cpu" = "mips64" ] && target_bigendian=yes 1062908f52b0Spbrook[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes 1063e6e5906bSpbrook[ "$target_cpu" = "m68k" ] && target_bigendian=yes 106497a847bcSbellardtarget_softmmu="no" 1065997344f3Sbellardtarget_user_only="no" 1066831b7825Sthstarget_linux_user="no" 1067831b7825Sthstarget_darwin_user="no" 10689e407a85Spbrookcase "$target" in 10699e407a85Spbrook ${target_cpu}-softmmu) 10709e407a85Spbrook target_softmmu="yes" 10719e407a85Spbrook ;; 10729e407a85Spbrook ${target_cpu}-linux-user) 10739e407a85Spbrook target_user_only="yes" 10749e407a85Spbrook target_linux_user="yes" 10759e407a85Spbrook ;; 10769e407a85Spbrook ${target_cpu}-darwin-user) 10779e407a85Spbrook target_user_only="yes" 1078831b7825Sths target_darwin_user="yes" 10799e407a85Spbrook ;; 10809e407a85Spbrook *) 10819e407a85Spbrook echo "ERROR: Target '$target' not recognised" 10829e407a85Spbrook exit 1 10839e407a85Spbrook ;; 10849e407a85Spbrookesac 1085831b7825Sths 108697ccc689Sbellardif test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ 108797ccc689Sbellard -a "$sdl" = "no" -a "$cocoa" = "no" ; then 108897ccc689Sbellard echo "ERROR: QEMU requires SDL or Cocoa for graphical output" 10899c038506Spbrook echo "To build QEMU without graphical output configure with --disable-gfx-check" 10904d3b6f6eSbalrog echo "Note that this will disable all output from the virtual graphics card" 10914d3b6f6eSbalrog echo "except through VNC or curses." 109297ccc689Sbellard exit 1; 109397ccc689Sbellardfi 109497ccc689Sbellard 10957c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 109697a847bcSbellard 109715d9ca0fSthstest -f $config_h && mv $config_h ${config_h}~ 109815d9ca0fSths 109997a847bcSbellardmkdir -p $target_dir 1100158142c2Sbellardmkdir -p $target_dir/fpu 110157fec1feSbellardmkdir -p $target_dir/tcg 1102831b7825Sthsif test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then 110369de927cSbellard mkdir -p $target_dir/nwfpe 110469de927cSbellardfi 110569de927cSbellard 1106ec530c81Sbellard# 1107ec530c81Sbellard# don't use ln -sf as not all "ln -sf" over write the file/link 1108ec530c81Sbellard# 1109ec530c81Sbellardrm -f $target_dir/Makefile 1110ec530c81Sbellardln -s $source_path/Makefile.target $target_dir/Makefile 1111ec530c81Sbellard 111297a847bcSbellard 111397a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 111497a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 111597a847bcSbellard 111697a847bcSbellard 111797a847bcSbellardecho "include ../config-host.mak" >> $config_mak 111897a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h 11191e43adfcSbellard 1120e5fe0c52Spbrookbflt="no" 1121cb33da57Sblueswir1elfload32="no" 11221e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 11231e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 112497a847bcSbellard 112597a847bcSbellardif test "$target_cpu" = "i386" ; then 112697a847bcSbellard echo "TARGET_ARCH=i386" >> $config_mak 112797a847bcSbellard echo "#define TARGET_ARCH \"i386\"" >> $config_h 112897a847bcSbellard echo "#define TARGET_I386 1" >> $config_h 112907f4ddbfSbellard if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then 1130824d560fSbellard echo "#define USE_KQEMU 1" >> $config_h 1131824d560fSbellard fi 1132808c4954Sbellardelif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then 113397a847bcSbellard echo "TARGET_ARCH=arm" >> $config_mak 1134663715fbSpbrook echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak 113597a847bcSbellard echo "#define TARGET_ARCH \"arm\"" >> $config_h 113697a847bcSbellard echo "#define TARGET_ARM 1" >> $config_h 1137663715fbSpbrook echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h 1138e5fe0c52Spbrook bflt="yes" 11391e43adfcSbellardelif test "$target_cpu" = "sparc" ; then 11401e43adfcSbellard echo "TARGET_ARCH=sparc" >> $config_mak 11411e43adfcSbellard echo "#define TARGET_ARCH \"sparc\"" >> $config_h 11421e43adfcSbellard echo "#define TARGET_SPARC 1" >> $config_h 114364b3ab24Sbellardelif test "$target_cpu" = "sparc64" ; then 114464b3ab24Sbellard echo "TARGET_ARCH=sparc64" >> $config_mak 114564b3ab24Sbellard echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 114664b3ab24Sbellard echo "#define TARGET_SPARC 1" >> $config_h 114764b3ab24Sbellard echo "#define TARGET_SPARC64 1" >> $config_h 1148cb33da57Sblueswir1 elfload32="yes" 1149992f48a0Sblueswir1elif test "$target_cpu" = "sparc32plus" ; then 1150992f48a0Sblueswir1 echo "TARGET_ARCH=sparc64" >> $config_mak 1151992f48a0Sblueswir1 echo "TARGET_ABI_DIR=sparc" >> $config_mak 11520c64b9cdSbellard echo "TARGET_ARCH2=sparc32plus" >> $config_mak 1153992f48a0Sblueswir1 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 1154992f48a0Sblueswir1 echo "#define TARGET_SPARC 1" >> $config_h 1155992f48a0Sblueswir1 echo "#define TARGET_SPARC64 1" >> $config_h 1156992f48a0Sblueswir1 echo "#define TARGET_ABI32 1" >> $config_h 115767867308Sbellardelif test "$target_cpu" = "ppc" ; then 115867867308Sbellard echo "TARGET_ARCH=ppc" >> $config_mak 115967867308Sbellard echo "#define TARGET_ARCH \"ppc\"" >> $config_h 116067867308Sbellard echo "#define TARGET_PPC 1" >> $config_h 1161d4082e95Sj_mayerelif test "$target_cpu" = "ppcemb" ; then 1162d4082e95Sj_mayer echo "TARGET_ARCH=ppcemb" >> $config_mak 1163e85e7c6eSj_mayer echo "TARGET_ABI_DIR=ppc" >> $config_mak 1164d4082e95Sj_mayer echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h 1165d4082e95Sj_mayer echo "#define TARGET_PPC 1" >> $config_h 1166d4082e95Sj_mayer echo "#define TARGET_PPCEMB 1" >> $config_h 116722f8a8b3Sj_mayerelif test "$target_cpu" = "ppc64" ; then 116822f8a8b3Sj_mayer echo "TARGET_ARCH=ppc64" >> $config_mak 1169f85e9a68Sj_mayer echo "TARGET_ABI_DIR=ppc" >> $config_mak 11705e692ecdSj_mayer echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 117122f8a8b3Sj_mayer echo "#define TARGET_PPC 1" >> $config_h 117222f8a8b3Sj_mayer echo "#define TARGET_PPC64 1" >> $config_h 1173e85e7c6eSj_mayerelif test "$target_cpu" = "ppc64abi32" ; then 1174e85e7c6eSj_mayer echo "TARGET_ARCH=ppc64" >> $config_mak 1175e85e7c6eSj_mayer echo "TARGET_ABI_DIR=ppc" >> $config_mak 11760c64b9cdSbellard echo "TARGET_ARCH2=ppc64abi32" >> $config_mak 11775e692ecdSj_mayer echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 1178e85e7c6eSj_mayer echo "#define TARGET_PPC 1" >> $config_h 1179e85e7c6eSj_mayer echo "#define TARGET_PPC64 1" >> $config_h 1180e85e7c6eSj_mayer echo "#define TARGET_ABI32 1" >> $config_h 11810b0babc6Sbellardelif test "$target_cpu" = "x86_64" ; then 11820b0babc6Sbellard echo "TARGET_ARCH=x86_64" >> $config_mak 11830b0babc6Sbellard echo "#define TARGET_ARCH \"x86_64\"" >> $config_h 11840b0babc6Sbellard echo "#define TARGET_I386 1" >> $config_h 11850b0babc6Sbellard echo "#define TARGET_X86_64 1" >> $config_h 118607f4ddbfSbellard if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then 118707f4ddbfSbellard echo "#define USE_KQEMU 1" >> $config_h 118807f4ddbfSbellard fi 1189c20eb473Sbellardelif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then 1190d3258560Sbellard echo "TARGET_ARCH=mips" >> $config_mak 1191d3258560Sbellard echo "#define TARGET_ARCH \"mips\"" >> $config_h 1192d3258560Sbellard echo "#define TARGET_MIPS 1" >> $config_h 1193d26bc211Sths echo "#define TARGET_ABI_MIPSO32 1" >> $config_h 1194540635baSthselif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then 1195540635baSths echo "TARGET_ARCH=mipsn32" >> $config_mak 1196540635baSths echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h 1197540635baSths echo "#define TARGET_MIPS 1" >> $config_h 1198d26bc211Sths echo "#define TARGET_ABI_MIPSN32 1" >> $config_h 1199fbe4f65bSthselif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then 1200fbe4f65bSths echo "TARGET_ARCH=mips64" >> $config_mak 1201fbe4f65bSths echo "#define TARGET_ARCH \"mips64\"" >> $config_h 1202fbe4f65bSths echo "#define TARGET_MIPS 1" >> $config_h 1203fbe4f65bSths echo "#define TARGET_MIPS64 1" >> $config_h 1204d26bc211Sths echo "#define TARGET_ABI_MIPSN64 1" >> $config_h 1205e7daa605Sthselif test "$target_cpu" = "cris" ; then 1206e7daa605Sths echo "TARGET_ARCH=cris" >> $config_mak 1207e7daa605Sths echo "#define TARGET_ARCH \"cris\"" >> $config_h 1208e7daa605Sths echo "#define TARGET_CRIS 1" >> $config_h 1209e7daa605Sths echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 1210e7daa605Sths echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 1211908f52b0Spbrookelif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then 1212fdf9b3e8Sbellard echo "TARGET_ARCH=sh4" >> $config_mak 1213fdf9b3e8Sbellard echo "#define TARGET_ARCH \"sh4\"" >> $config_h 1214fdf9b3e8Sbellard echo "#define TARGET_SH4 1" >> $config_h 12154dbed897Spbrook bflt="yes" 1216e6e5906bSpbrookelif test "$target_cpu" = "m68k" ; then 1217e6e5906bSpbrook echo "TARGET_ARCH=m68k" >> $config_mak 1218e6e5906bSpbrook echo "#define TARGET_ARCH \"m68k\"" >> $config_h 1219e6e5906bSpbrook echo "#define TARGET_M68K 1" >> $config_h 1220e6e5906bSpbrook bflt="yes" 1221cf6c1b16Sj_mayerelif test "$target_cpu" = "alpha" ; then 1222cf6c1b16Sj_mayer echo "TARGET_ARCH=alpha" >> $config_mak 1223cf6c1b16Sj_mayer echo "#define TARGET_ARCH \"alpha\"" >> $config_h 1224cf6c1b16Sj_mayer echo "#define TARGET_ALPHA 1" >> $config_h 1225de83cd02Sbellardelse 1226de83cd02Sbellard echo "Unsupported target CPU" 1227de83cd02Sbellard exit 1 1228de83cd02Sbellardfi 1229de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 123097a847bcSbellard echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 123197a847bcSbellard echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 123297a847bcSbellardfi 123397a847bcSbellardif test "$target_softmmu" = "yes" ; then 123497a847bcSbellard echo "CONFIG_SOFTMMU=yes" >> $config_mak 123597a847bcSbellard echo "#define CONFIG_SOFTMMU 1" >> $config_h 1236de83cd02Sbellardfi 1237997344f3Sbellardif test "$target_user_only" = "yes" ; then 1238997344f3Sbellard echo "CONFIG_USER_ONLY=yes" >> $config_mak 1239997344f3Sbellard echo "#define CONFIG_USER_ONLY 1" >> $config_h 1240997344f3Sbellardfi 1241831b7825Sthsif test "$target_linux_user" = "yes" ; then 1242831b7825Sths echo "CONFIG_LINUX_USER=yes" >> $config_mak 1243831b7825Sths echo "#define CONFIG_LINUX_USER 1" >> $config_h 1244831b7825Sthsfi 1245831b7825Sthsif test "$target_darwin_user" = "yes" ; then 1246831b7825Sths echo "CONFIG_DARWIN_USER=yes" >> $config_mak 1247831b7825Sths echo "#define CONFIG_DARWIN_USER 1" >> $config_h 1248831b7825Sthsfi 1249de83cd02Sbellard 12501cdb9c3dSaurel32if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then 1251158142c2Sbellard echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 1252158142c2Sbellard echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 1253158142c2Sbellardfi 1254e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 1255e5fe0c52Spbrook echo "TARGET_HAS_BFLT=yes" >> $config_mak 1256e5fe0c52Spbrook echo "#define TARGET_HAS_BFLT 1" >> $config_h 1257e5fe0c52Spbrookfi 1258cb33da57Sblueswir1# 32 bit ELF loader in addition to native 64 bit loader? 1259cb33da57Sblueswir1if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then 1260cb33da57Sblueswir1 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak 1261cb33da57Sblueswir1 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h 1262cb33da57Sblueswir1fi 12635b0753e0Sbellard 126415d9ca0fSthstest -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 126515d9ca0fSths 126697a847bcSbellarddone # for target in $targets 12677d13299dSbellard 12687d13299dSbellard# build tree in object directory if source path is different from current one 12697d13299dSbellardif test "$source_path_used" = "yes" ; then 127049ecc3faSbellard DIRS="tests tests/cris slirp audio" 12717d13299dSbellard FILES="Makefile tests/Makefile" 1272e7daa605Sths FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" 1273e1ffb0f1Sedgar_igl FILES="$FILES tests/test-mmap.c" 12747d13299dSbellard for dir in $DIRS ; do 12757d13299dSbellard mkdir -p $dir 12767d13299dSbellard done 1277ec530c81Sbellard # remove the link and recreate it, as not all "ln -sf" overwrite the link 12787d13299dSbellard for f in $FILES ; do 1279ec530c81Sbellard rm -f $f 1280ec530c81Sbellard ln -s $source_path/$f $f 12817d13299dSbellard done 12827d13299dSbellardfi 12837d13299dSbellard 128497a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS 1285