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 ;; 38*aaa5fa14Saurel32 x86_64|amd64) 39*aaa5fa14Saurel32 cpu="x86_64" 40*aaa5fa14Saurel32 ;; 41*aaa5fa14Saurel32 alpha) 42*aaa5fa14Saurel32 cpu="alpha" 43*aaa5fa14Saurel32 ;; 44ba68055eSbellard armv*b) 45808c4954Sbellard cpu="armv4b" 46808c4954Sbellard ;; 47ba68055eSbellard armv*l) 487d13299dSbellard cpu="armv4l" 497d13299dSbellard ;; 50*aaa5fa14Saurel32 cris) 51*aaa5fa14Saurel32 cpu="cris" 527d13299dSbellard ;; 53*aaa5fa14Saurel32 ia64) 54*aaa5fa14Saurel32 cpu="ia64" 55*aaa5fa14Saurel32 ;; 56*aaa5fa14Saurel32 m68k) 57*aaa5fa14Saurel32 cpu="m68k" 587d13299dSbellard ;; 597d13299dSbellard mips) 607d13299dSbellard cpu="mips" 617d13299dSbellard ;; 62fbe4f65bSths mips64) 63fbe4f65bSths cpu="mips64" 64fbe4f65bSths ;; 65*aaa5fa14Saurel32 "Power Macintosh"|ppc|ppc64) 66*aaa5fa14Saurel32 cpu="powerpc" 67e7daa605Sths ;; 680e7b8a9fSths s390*) 69fb3e5849Sbellard cpu="s390" 70fb3e5849Sbellard ;; 713142255cSblueswir1 sparc|sun4[cdmuv]) 72ae228531Sbellard cpu="sparc" 73ae228531Sbellard ;; 74ae228531Sbellard sparc64) 75ae228531Sbellard cpu="sparc64" 76ae228531Sbellard ;; 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 ;; 2892e4d9fb1Saurel32 --disable-brlapi) brlapi="no" 2902e4d9fb1Saurel32 ;; 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" 4212e4d9fb1Saurel32echo " --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 5780938cda5Saurel32if test "$cpu" = "armv4b" \ 5790938cda5Saurel32 -o "$cpu" = "m68k" \ 5800938cda5Saurel32 -o "$cpu" = "mips" \ 5810938cda5Saurel32 -o "$cpu" = "mips64" \ 5820938cda5Saurel32 -o "$cpu" = "powerpc" \ 5830938cda5Saurel32 -o "$cpu" = "s390" \ 5840938cda5Saurel32 -o "$cpu" = "sparc" \ 5850938cda5Saurel32 -o "$cpu" = "sparc64"; then 5867d13299dSbellard bigendian="yes" 5877d13299dSbellardfi 5887d13299dSbellard 5897d13299dSbellardfi 5907d13299dSbellard 591b6853697Sbellard# host long bits test 592b6853697Sbellardhostlongbits="32" 5930938cda5Saurel32if test "$cpu" = "x86_64" \ 5940938cda5Saurel32 -o "$cpu" = "alpha" \ 5950938cda5Saurel32 -o "$cpu" = "ia64" \ 5960938cda5Saurel32 -o "$cpu" = "sparc64"; then 597b6853697Sbellard hostlongbits="64" 598b6853697Sbellardfi 599b6853697Sbellard 600e8cd23deSbellard# check gcc options support 60104369ff2Sbellardcat > $TMPC <<EOF 60204369ff2Sbellardint main(void) { 60304369ff2Sbellard} 60404369ff2SbellardEOF 60504369ff2Sbellard 60611d9f695Sbellard########################################## 60711d9f695Sbellard# SDL probe 60811d9f695Sbellard 60911d9f695Sbellardsdl_too_old=no 61011d9f695Sbellard 61111d9f695Sbellardif test -z "$sdl" ; then 612a6e022adSbellard sdl_config="sdl-config" 613a6e022adSbellard sdl=no 6147c1f25b4Sbellard sdl_static=no 615a6e022adSbellard 616a6e022adSbellard if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 617a6e022adSbellard # win32 cross compilation case 618a6e022adSbellard sdl_config="i386-mingw32msvc-sdl-config" 619a6e022adSbellard sdl=yes 620a6e022adSbellard else 621a6e022adSbellard # normal SDL probe 62211d9f695Sbellardcat > $TMPC << EOF 62311d9f695Sbellard#include <SDL.h> 62411d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 62511d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 62611d9f695SbellardEOF 627db7287edSpbrook 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 628a6e022adSbellard _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 62911d9f695Sbellard if test "$_sdlversion" -lt 121 ; then 63011d9f695Sbellard sdl_too_old=yes 63111d9f695Sbellard else 632fd677642Sths if test "$cocoa" = "no" ; then 63311d9f695Sbellard sdl=yes 63411d9f695Sbellard fi 635fd677642Sths fi 6367c1f25b4Sbellard 6377c1f25b4Sbellard # static link with sdl ? 6387c1f25b4Sbellard if test "$sdl" = "yes" ; then 6397c1f25b4Sbellard aa="no" 640e14a693dSths `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes" 641e14a693dSths sdl_static_libs=`$sdl_config --static-libs 2>/dev/null` 6427c1f25b4Sbellard if [ "$aa" = "yes" ] ; then 643d8d8aa4eSbellard sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 64411d9f695Sbellard fi 64511d9f695Sbellard 6468281db4dSths if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 6477c1f25b4Sbellard sdl_static=yes 6487c1f25b4Sbellard fi 6497c1f25b4Sbellard fi # static link 6507c1f25b4Sbellard fi # sdl compile test 651a6e022adSbellard fi # cross compilation 652fd677642Sthselse 653fd677642Sths # Make sure to disable cocoa if sdl was set 654fd677642Sths if test "$sdl" = "yes" ; then 655fd677642Sths cocoa="no" 656fd677642Sths coreaudio="no" 657fd677642Sths fi 658a6e022adSbellardfi # -z $sdl 65911d9f695Sbellard 6608f28f3fbSths########################################## 6618d5d2d4cSths# VNC TLS detection 6628d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 6638d5d2d4cSths `pkg-config gnutls` || vnc_tls="no" 6648d5d2d4cSthsfi 6658d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 6668d5d2d4cSths vnc_tls_cflags=`pkg-config --cflags gnutls` 6678d5d2d4cSths vnc_tls_libs=`pkg-config --libs gnutls` 6688d5d2d4cSthsfi 6698d5d2d4cSths 6708d5d2d4cSths########################################## 6718f28f3fbSths# alsa sound support libraries 6728f28f3fbSths 6738f28f3fbSthsif test "$alsa" = "yes" ; then 6748f28f3fbSths cat > $TMPC << EOF 6758f28f3fbSths#include <alsa/asoundlib.h> 6768f28f3fbSthsint main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); } 6778f28f3fbSthsEOF 678db7287edSpbrook if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then 6798f28f3fbSths : 6808f28f3fbSths else 6818f28f3fbSths echo 6828f28f3fbSths echo "Error: Could not find alsa" 6838f28f3fbSths echo "Make sure to have the alsa libs and headers installed." 6848f28f3fbSths echo 6858f28f3fbSths exit 1 6868f28f3fbSths fi 6878f28f3fbSthsfi 6888f28f3fbSths 6894d3b6f6eSbalrog########################################## 6902e4d9fb1Saurel32# BrlAPI probe 6912e4d9fb1Saurel32 6922e4d9fb1Saurel32if test -z "$brlapi" ; then 6932e4d9fb1Saurel32 brlapi=no 6942e4d9fb1Saurel32cat > $TMPC << EOF 6952e4d9fb1Saurel32#include <brlapi.h> 6962e4d9fb1Saurel32int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } 6972e4d9fb1Saurel32EOF 6982e4d9fb1Saurel32 if $cc -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /tmp/qemu-$$-brlapi.log ; then 6992e4d9fb1Saurel32 brlapi=yes 7002e4d9fb1Saurel32 fi # brlapi compile test 7012e4d9fb1Saurel32fi # -z $brlapi 7022e4d9fb1Saurel32 7032e4d9fb1Saurel32########################################## 7044d3b6f6eSbalrog# curses probe 7054d3b6f6eSbalrog 7064d3b6f6eSbalrogif test "$curses" = "yes" ; then 7074d3b6f6eSbalrog curses=no 7084d3b6f6eSbalrog cat > $TMPC << EOF 7094d3b6f6eSbalrog#include <curses.h> 7104d3b6f6eSbalrogint main(void) { return curses_version(); } 7114d3b6f6eSbalrogEOF 712af896aaaSpbrook if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then 7134d3b6f6eSbalrog curses=yes 7144d3b6f6eSbalrog fi 7154d3b6f6eSbalrogfi # test "$curses" 7164d3b6f6eSbalrog 717cc8ae6deSpbrook# Check if tools are available to build documentation. 7186c591867Sthsif [ -x "`which texi2html 2>/dev/null`" ] && \ 7196c591867Sths [ -x "`which pod2man 2>/dev/null`" ]; then 720cc8ae6deSpbrook build_docs="yes" 721cc8ae6deSpbrookfi 722cc8ae6deSpbrook 72311d9f695Sbellardif test "$mingw32" = "yes" ; then 72411d9f695Sbellard if test -z "$prefix" ; then 72511d9f695Sbellard prefix="/c/Program Files/Qemu" 72611d9f695Sbellard fi 727308c3593Spbrook mansuffix="" 728308c3593Spbrook datasuffix="" 729308c3593Spbrook docsuffix="" 730308c3593Spbrook binsuffix="" 73111d9f695Sbellardelse 73211d9f695Sbellard if test -z "$prefix" ; then 73311d9f695Sbellard prefix="/usr/local" 73411d9f695Sbellard fi 735308c3593Spbrook mansuffix="/share/man" 736308c3593Spbrook datasuffix="/share/qemu" 737308c3593Spbrook docsuffix="/share/doc/qemu" 738308c3593Spbrook binsuffix="/bin" 73911d9f695Sbellardfi 7405a67135aSbellard 7417d13299dSbellardecho "Install prefix $prefix" 742308c3593Spbrookecho "BIOS directory $prefix$datasuffix" 743308c3593Spbrookecho "binary directory $prefix$binsuffix" 74411d9f695Sbellardif test "$mingw32" = "no" ; then 745308c3593Spbrookecho "Manual directory $prefix$mansuffix" 74643ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 74711d9f695Sbellardfi 7485a67135aSbellardecho "Source path $source_path" 7497d13299dSbellardecho "C compiler $cc" 75083469015Sbellardecho "Host C compiler $host_cc" 751db7287edSpbrookecho "ARCH_CFLAGS $ARCH_CFLAGS" 7527d13299dSbellardecho "make $make" 7536a882643Spbrookecho "install $install" 754a98fd896Sbellardecho "host CPU $cpu" 755de83cd02Sbellardecho "host big endian $bigendian" 75697a847bcSbellardecho "target list $target_list" 7577d13299dSbellardecho "gprof enabled $gprof" 75805c2a3e7Sbellardecho "profiler $profiler" 75943ce4dfeSbellardecho "static build $static" 76085aa5189Sbellardecho "-Werror enabled $werror" 7615b0753e0Sbellardif test "$darwin" = "yes" ; then 7625b0753e0Sbellard echo "Cocoa support $cocoa" 7635b0753e0Sbellardfi 76497a847bcSbellardecho "SDL support $sdl" 765e4afee97Sbellardif test "$sdl" != "no" ; then 7667c1f25b4Sbellard echo "SDL static link $sdl_static" 767e4afee97Sbellardfi 7684d3b6f6eSbalrogecho "curses support $curses" 76967b915a5Sbellardecho "mingw32 support $mingw32" 770fb065187Sbellardecho "Adlib support $adlib" 771e5c9a13eSbalrogecho "AC97 support $ac97" 772423d65f4Sbalrogecho "GUS support $gus" 7731d14ffa9Sbellardecho "CoreAudio support $coreaudio" 7741d14ffa9Sbellardecho "ALSA support $alsa" 775ca9cc28cSbalrogecho "EsounD support $esd" 7761d14ffa9Sbellardecho "DSound support $dsound" 7771d14ffa9Sbellardif test "$fmod" = "yes"; then 7781d14ffa9Sbellard if test -z $fmod_lib || test -z $fmod_inc; then 7791d14ffa9Sbellard echo 7801d14ffa9Sbellard echo "Error: You must specify path to FMOD library and headers" 7811d14ffa9Sbellard echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 7821d14ffa9Sbellard echo 7831d14ffa9Sbellard exit 1 7841d14ffa9Sbellard fi 785b1a550a0Spbrook fmod_support=" (lib='$fmod_lib' include='$fmod_inc')" 786b1a550a0Spbrookelse 787b1a550a0Spbrook fmod_support="" 788102a52e4Sbellardfi 789b1a550a0Spbrookecho "FMOD support $fmod $fmod_support" 7906b4d2ba1Sthsecho "OSS support $oss" 7918d5d2d4cSthsecho "VNC TLS support $vnc_tls" 7928d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 7938d5d2d4cSths echo " TLS CFLAGS $vnc_tls_cflags" 7948d5d2d4cSths echo " TLS LIBS $vnc_tls_libs" 7958d5d2d4cSthsfi 7963142255cSblueswir1if test -n "$sparc_cpu"; then 7973142255cSblueswir1 echo "Target Sparc Arch $sparc_cpu" 7983142255cSblueswir1fi 79907f4ddbfSbellardecho "kqemu support $kqemu" 8002e4d9fb1Saurel32echo "brlapi support $brlapi" 801cc8ae6deSpbrookecho "Documentation $build_docs" 802c5937220Spbrook[ ! -z "$uname_release" ] && \ 803c5937220Spbrookecho "uname -r $uname_release" 80467b915a5Sbellard 80597a847bcSbellardif test $sdl_too_old = "yes"; then 80624b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support" 807e8cd23deSbellardfi 80820b40c6aSthsif [ -s /tmp/qemu-$$-sdl-config.log ]; then 80920b40c6aSths echo "The error log from compiling the libSDL test is: " 81020b40c6aSths cat /tmp/qemu-$$-sdl-config.log 81120b40c6aSthsfi 81220b40c6aSthsrm -f /tmp/qemu-$$-sdl-config.log 81324b55b96Sbellard#if test "$sdl_static" = "no"; then 81424b55b96Sbellard# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 81524b55b96Sbellard#fi 81697a847bcSbellardconfig_mak="config-host.mak" 81797a847bcSbellardconfig_h="config-host.h" 81897a847bcSbellard 8197c1f25b4Sbellard#echo "Creating $config_mak and $config_h" 82097a847bcSbellard 82115d9ca0fSthstest -f $config_h && mv $config_h ${config_h}~ 82215d9ca0fSths 82397a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 82429517134Spbrookecho "# Configured with: $0 $@" >> $config_mak 82597a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 82697a847bcSbellard 82797a847bcSbellardecho "prefix=$prefix" >> $config_mak 828308c3593Spbrookecho "bindir=\${prefix}$binsuffix" >> $config_mak 829308c3593Spbrookecho "mandir=\${prefix}$mansuffix" >> $config_mak 830308c3593Spbrookecho "datadir=\${prefix}$datasuffix" >> $config_mak 8314ad5b06dSthsecho "docdir=\${prefix}$docsuffix" >> $config_mak 832308c3593Spbrookecho "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h 83397a847bcSbellardecho "MAKE=$make" >> $config_mak 8346a882643Spbrookecho "INSTALL=$install" >> $config_mak 83597a847bcSbellardecho "CC=$cc" >> $config_mak 83697a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak 83797a847bcSbellardecho "AR=$ar" >> $config_mak 83897a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak 83940293e58Sbellard# XXX: only use CFLAGS and LDFLAGS ? 84040293e58Sbellard# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross 84140293e58Sbellard# compilation of dyngen tool (useful for win32 build on Linux host) 8426f30fa85Sthsecho "OS_CFLAGS=$OS_CFLAGS" >> $config_mak 8433142255cSblueswir1echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak 8443142255cSblueswir1echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak 8453142255cSblueswir1echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak 84697a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak 84797a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak 84867b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak 84970956b77Sthsecho "AIOLIBS=$AIOLIBS" >> $config_mak 85097a847bcSbellardif test "$cpu" = "i386" ; then 85197a847bcSbellard echo "ARCH=i386" >> $config_mak 85297a847bcSbellard echo "#define HOST_I386 1" >> $config_h 8530b0babc6Sbellardelif test "$cpu" = "x86_64" ; then 8540b0babc6Sbellard echo "ARCH=x86_64" >> $config_mak 8550b0babc6Sbellard echo "#define HOST_X86_64 1" >> $config_h 8560938cda5Saurel32elif test "$cpu" = "alpha" ; then 8570938cda5Saurel32 echo "ARCH=alpha" >> $config_mak 8580938cda5Saurel32 echo "#define HOST_ALPHA 1" >> $config_h 859808c4954Sbellardelif test "$cpu" = "armv4b" ; then 860808c4954Sbellard echo "ARCH=arm" >> $config_mak 861808c4954Sbellard echo "#define HOST_ARM 1" >> $config_h 8627d13299dSbellardelif test "$cpu" = "armv4l" ; then 86397a847bcSbellard echo "ARCH=arm" >> $config_mak 86497a847bcSbellard echo "#define HOST_ARM 1" >> $config_h 865e7daa605Sthselif test "$cpu" = "cris" ; then 866e7daa605Sths echo "ARCH=cris" >> $config_mak 867e7daa605Sths echo "#define HOST_CRIS 1" >> $config_h 868a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then 86997a847bcSbellard echo "ARCH=ia64" >> $config_mak 87097a847bcSbellard echo "#define HOST_IA64 1" >> $config_h 87138e584a0Sbellardelif test "$cpu" = "m68k" ; then 87238ca2abcSbellard echo "ARCH=m68k" >> $config_mak 87338ca2abcSbellard echo "#define HOST_M68K 1" >> $config_h 8740938cda5Saurel32elif test "$cpu" = "mips" ; then 8750938cda5Saurel32 echo "ARCH=mips" >> $config_mak 8760938cda5Saurel32 echo "#define HOST_MIPS 1" >> $config_h 8770938cda5Saurel32elif test "$cpu" = "mips64" ; then 8780938cda5Saurel32 echo "ARCH=mips64" >> $config_mak 8790938cda5Saurel32 echo "#define HOST_MIPS64 1" >> $config_h 8800938cda5Saurel32elif test "$cpu" = "powerpc" ; then 8810938cda5Saurel32 echo "ARCH=ppc" >> $config_mak 8820938cda5Saurel32 echo "#define HOST_PPC 1" >> $config_h 8830938cda5Saurel32elif test "$cpu" = "s390" ; then 8840938cda5Saurel32 echo "ARCH=s390" >> $config_mak 8850938cda5Saurel32 echo "#define HOST_S390 1" >> $config_h 8860938cda5Saurel32elif test "$cpu" = "sparc" ; then 8870938cda5Saurel32 echo "ARCH=sparc" >> $config_mak 8880938cda5Saurel32 echo "#define HOST_SPARC 1" >> $config_h 8890938cda5Saurel32elif test "$cpu" = "sparc64" ; then 8900938cda5Saurel32 echo "ARCH=sparc64" >> $config_mak 8910938cda5Saurel32 echo "#define HOST_SPARC64 1" >> $config_h 8927d13299dSbellardelse 8933142255cSblueswir1 echo "Unsupported CPU = $cpu" 8947d13299dSbellard exit 1 8957d13299dSbellardfi 8967d13299dSbellardif test "$bigendian" = "yes" ; then 89797a847bcSbellard echo "WORDS_BIGENDIAN=yes" >> $config_mak 89897a847bcSbellard echo "#define WORDS_BIGENDIAN 1" >> $config_h 89997a847bcSbellardfi 900b6853697Sbellardecho "#define HOST_LONG_BITS $hostlongbits" >> $config_h 90167b915a5Sbellardif test "$mingw32" = "yes" ; then 90267b915a5Sbellard echo "CONFIG_WIN32=yes" >> $config_mak 90311d9f695Sbellard echo "#define CONFIG_WIN32 1" >> $config_h 904210fa556Spbrookelse 905210fa556Spbrook cat > $TMPC << EOF 906210fa556Spbrook#include <byteswap.h> 907210fa556Spbrookint main(void) { return bswap_32(0); } 908210fa556SpbrookEOF 909db7287edSpbrook if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 91097a847bcSbellard echo "#define HAVE_BYTESWAP_H 1" >> $config_h 91167b915a5Sbellard fi 912210fa556Spbrookfi 91383fb7adfSbellardif test "$darwin" = "yes" ; then 91483fb7adfSbellard echo "CONFIG_DARWIN=yes" >> $config_mak 91583fb7adfSbellard echo "#define CONFIG_DARWIN 1" >> $config_h 91683fb7adfSbellardfi 917ec530c81Sbellardif test "$solaris" = "yes" ; then 918ec530c81Sbellard echo "CONFIG_SOLARIS=yes" >> $config_mak 91938cfa06cSbellard echo "#define HOST_SOLARIS $solarisrev" >> $config_h 9200475a5caSths if test "$needs_libsunmath" = "yes" ; then 9210475a5caSths echo "NEEDS_LIBSUNMATH=yes" >> $config_mak 9220475a5caSths echo "#define NEEDS_LIBSUNMATH 1" >> $config_h 9230475a5caSths fi 924ec530c81Sbellardfi 9253142255cSblueswir1if test -n "$sparc_cpu"; then 9263142255cSblueswir1 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak 9273142255cSblueswir1 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h 9283142255cSblueswir1fi 92967b915a5Sbellardif test "$gdbstub" = "yes" ; then 93067b915a5Sbellard echo "CONFIG_GDBSTUB=yes" >> $config_mak 93167b915a5Sbellard echo "#define CONFIG_GDBSTUB 1" >> $config_h 93267b915a5Sbellardfi 93397a847bcSbellardif test "$gprof" = "yes" ; then 93497a847bcSbellard echo "TARGET_GPROF=yes" >> $config_mak 93597a847bcSbellard echo "#define HAVE_GPROF 1" >> $config_h 93697a847bcSbellardfi 93797a847bcSbellardif test "$static" = "yes" ; then 93897a847bcSbellard echo "CONFIG_STATIC=yes" >> $config_mak 93950863472Sbellard echo "#define CONFIG_STATIC 1" >> $config_h 94097a847bcSbellardfi 94105c2a3e7Sbellardif test $profiler = "yes" ; then 94205c2a3e7Sbellard echo "#define CONFIG_PROFILER 1" >> $config_h 94305c2a3e7Sbellardfi 944c20709aaSbellardif test "$slirp" = "yes" ; then 945c20709aaSbellard echo "CONFIG_SLIRP=yes" >> $config_mak 946c20709aaSbellard echo "#define CONFIG_SLIRP 1" >> $config_h 947c20709aaSbellardfi 948fb065187Sbellardif test "$adlib" = "yes" ; then 949fb065187Sbellard echo "CONFIG_ADLIB=yes" >> $config_mak 950fb065187Sbellard echo "#define CONFIG_ADLIB 1" >> $config_h 951fb065187Sbellardfi 952e5c9a13eSbalrogif test "$ac97" = "yes" ; then 953e5c9a13eSbalrog echo "CONFIG_AC97=yes" >> $config_mak 954e5c9a13eSbalrog echo "#define CONFIG_AC97 1" >> $config_h 955e5c9a13eSbalrogfi 956423d65f4Sbalrogif test "$gus" = "yes" ; then 957423d65f4Sbalrog echo "CONFIG_GUS=yes" >> $config_mak 958423d65f4Sbalrog echo "#define CONFIG_GUS 1" >> $config_h 959423d65f4Sbalrogfi 960fb065187Sbellardif test "$oss" = "yes" ; then 961fb065187Sbellard echo "CONFIG_OSS=yes" >> $config_mak 962fb065187Sbellard echo "#define CONFIG_OSS 1" >> $config_h 963fb065187Sbellardfi 9641d14ffa9Sbellardif test "$coreaudio" = "yes" ; then 9651d14ffa9Sbellard echo "CONFIG_COREAUDIO=yes" >> $config_mak 9661d14ffa9Sbellard echo "#define CONFIG_COREAUDIO 1" >> $config_h 9671d14ffa9Sbellardfi 9681d14ffa9Sbellardif test "$alsa" = "yes" ; then 9691d14ffa9Sbellard echo "CONFIG_ALSA=yes" >> $config_mak 9701d14ffa9Sbellard echo "#define CONFIG_ALSA 1" >> $config_h 9711d14ffa9Sbellardfi 972ca9cc28cSbalrogif test "$esd" = "yes" ; then 973ca9cc28cSbalrog echo "CONFIG_ESD=yes" >> $config_mak 974ca9cc28cSbalrog echo "#define CONFIG_ESD 1" >> $config_h 975ca9cc28cSbalrogfi 9761d14ffa9Sbellardif test "$dsound" = "yes" ; then 9771d14ffa9Sbellard echo "CONFIG_DSOUND=yes" >> $config_mak 9781d14ffa9Sbellard echo "#define CONFIG_DSOUND 1" >> $config_h 9791d14ffa9Sbellardfi 980102a52e4Sbellardif test "$fmod" = "yes" ; then 981102a52e4Sbellard echo "CONFIG_FMOD=yes" >> $config_mak 982102a52e4Sbellard echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak 983102a52e4Sbellard echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak 984102a52e4Sbellard echo "#define CONFIG_FMOD 1" >> $config_h 985102a52e4Sbellardfi 9868d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 9878d5d2d4cSths echo "CONFIG_VNC_TLS=yes" >> $config_mak 9888d5d2d4cSths echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak 9898d5d2d4cSths echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak 9908d5d2d4cSths echo "#define CONFIG_VNC_TLS 1" >> $config_h 9918d5d2d4cSthsfi 992b1a550a0Spbrookqemu_version=`head $source_path/VERSION` 993b1a550a0Spbrookecho "VERSION=$qemu_version" >>$config_mak 994d4b8f039Spbrookecho "#define QEMU_VERSION \"$qemu_version\"" >> $config_h 99597a847bcSbellard 99697a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak 997ad064840Spbrookif [ "$source_path_used" = "yes" ]; then 998ad064840Spbrook echo "VPATH=$source_path" >> $config_mak 999ad064840Spbrookfi 100097a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak 1001cc8ae6deSpbrookif [ "$build_docs" = "yes" ] ; then 1002cc8ae6deSpbrook echo "BUILD_DOCS=yes" >> $config_mak 1003cc8ae6deSpbrookfi 100449ecc3faSbellardif test "$static" = "yes"; then 100549ecc3faSbellard sdl1=$sdl_static 100649ecc3faSbellardelse 100749ecc3faSbellard sdl1=$sdl 100849ecc3faSbellardfi 100949ecc3faSbellardif test "$sdl1" = "yes" ; then 101049ecc3faSbellard echo "#define CONFIG_SDL 1" >> $config_h 101149ecc3faSbellard echo "CONFIG_SDL=yes" >> $config_mak 101249ecc3faSbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 101349ecc3faSbellard echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 101449ecc3faSbellard else 101549ecc3faSbellard echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 101649ecc3faSbellard fi 101749ecc3faSbellard if [ "${aa}" = "yes" ] ; then 101849ecc3faSbellard echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak 101949ecc3faSbellard else 102049ecc3faSbellard echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 102149ecc3faSbellard fi 102249ecc3faSbellardfi 102349ecc3faSbellardif test "$cocoa" = "yes" ; then 102449ecc3faSbellard echo "#define CONFIG_COCOA 1" >> $config_h 102549ecc3faSbellard echo "CONFIG_COCOA=yes" >> $config_mak 102649ecc3faSbellardfi 10274d3b6f6eSbalrogif test "$curses" = "yes" ; then 10284d3b6f6eSbalrog echo "#define CONFIG_CURSES 1" >> $config_h 10294d3b6f6eSbalrog echo "CONFIG_CURSES=yes" >> $config_mak 10304d3b6f6eSbalrog echo "CURSES_LIBS=-lcurses" >> $config_mak 10314d3b6f6eSbalrogfi 10322e4d9fb1Saurel32if test "$brlapi" = "yes" ; then 10332e4d9fb1Saurel32 echo "CONFIG_BRLAPI=yes" >> $config_mak 10342e4d9fb1Saurel32 echo "#define CONFIG_BRLAPI 1" >> $config_h 10352e4d9fb1Saurel32 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak 10362e4d9fb1Saurel32fi 103797a847bcSbellard 103883fb7adfSbellard# XXX: suppress that 10397d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 104043003046Sbellard echo "#define O_LARGEFILE 0" >> $config_h 104143003046Sbellard echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 10427d3505c5Sbellard echo "#define _BSD 1" >> $config_h 10437d3505c5Sbellardfi 10447d3505c5Sbellard 1045c5937220Spbrookecho "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h 1046c5937220Spbrook 1047c39e3338Spbrooktools= 1048c39e3338Spbrookif test `expr "$target_list" : ".*softmmu.*"` != 0 ; then 1049c39e3338Spbrook tools="qemu-img\$(EXESUF) $tools" 1050c39e3338Spbrookfi 1051c39e3338Spbrookecho "TOOLS=$tools" >> $config_mak 1052c39e3338Spbrook 105315d9ca0fSthstest -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 105415d9ca0fSths 105597a847bcSbellardfor target in $target_list; do 105697a847bcSbellardtarget_dir="$target" 105797a847bcSbellardconfig_mak=$target_dir/config.mak 105897a847bcSbellardconfig_h=$target_dir/config.h 105997a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1` 106097a847bcSbellardtarget_bigendian="no" 1061808c4954Sbellard[ "$target_cpu" = "armeb" ] && target_bigendian=yes 10620938cda5Saurel32[ "$target_cpu" = "m68k" ] && target_bigendian=yes 10630938cda5Saurel32[ "$target_cpu" = "mips" ] && target_bigendian=yes 10640938cda5Saurel32[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes 10650938cda5Saurel32[ "$target_cpu" = "mips64" ] && target_bigendian=yes 106667867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes 1067d4082e95Sj_mayer[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes 106822f8a8b3Sj_mayer[ "$target_cpu" = "ppc64" ] && target_bigendian=yes 1069e85e7c6eSj_mayer[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes 1070908f52b0Spbrook[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes 10710938cda5Saurel32[ "$target_cpu" = "sparc" ] && target_bigendian=yes 10720938cda5Saurel32[ "$target_cpu" = "sparc64" ] && target_bigendian=yes 10730938cda5Saurel32[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes 107497a847bcSbellardtarget_softmmu="no" 1075997344f3Sbellardtarget_user_only="no" 1076831b7825Sthstarget_linux_user="no" 1077831b7825Sthstarget_darwin_user="no" 10789e407a85Spbrookcase "$target" in 10799e407a85Spbrook ${target_cpu}-softmmu) 10809e407a85Spbrook target_softmmu="yes" 10819e407a85Spbrook ;; 10829e407a85Spbrook ${target_cpu}-linux-user) 10839e407a85Spbrook target_user_only="yes" 10849e407a85Spbrook target_linux_user="yes" 10859e407a85Spbrook ;; 10869e407a85Spbrook ${target_cpu}-darwin-user) 10879e407a85Spbrook target_user_only="yes" 1088831b7825Sths target_darwin_user="yes" 10899e407a85Spbrook ;; 10909e407a85Spbrook *) 10919e407a85Spbrook echo "ERROR: Target '$target' not recognised" 10929e407a85Spbrook exit 1 10939e407a85Spbrook ;; 10949e407a85Spbrookesac 1095831b7825Sths 109697ccc689Sbellardif test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ 109797ccc689Sbellard -a "$sdl" = "no" -a "$cocoa" = "no" ; then 109897ccc689Sbellard echo "ERROR: QEMU requires SDL or Cocoa for graphical output" 10999c038506Spbrook echo "To build QEMU without graphical output configure with --disable-gfx-check" 11004d3b6f6eSbalrog echo "Note that this will disable all output from the virtual graphics card" 11014d3b6f6eSbalrog echo "except through VNC or curses." 110297ccc689Sbellard exit 1; 110397ccc689Sbellardfi 110497ccc689Sbellard 11057c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 110697a847bcSbellard 110715d9ca0fSthstest -f $config_h && mv $config_h ${config_h}~ 110815d9ca0fSths 110997a847bcSbellardmkdir -p $target_dir 1110158142c2Sbellardmkdir -p $target_dir/fpu 111157fec1feSbellardmkdir -p $target_dir/tcg 1112831b7825Sthsif test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then 111369de927cSbellard mkdir -p $target_dir/nwfpe 111469de927cSbellardfi 111569de927cSbellard 1116ec530c81Sbellard# 1117ec530c81Sbellard# don't use ln -sf as not all "ln -sf" over write the file/link 1118ec530c81Sbellard# 1119ec530c81Sbellardrm -f $target_dir/Makefile 1120ec530c81Sbellardln -s $source_path/Makefile.target $target_dir/Makefile 1121ec530c81Sbellard 112297a847bcSbellard 112397a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 112497a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 112597a847bcSbellard 112697a847bcSbellard 112797a847bcSbellardecho "include ../config-host.mak" >> $config_mak 112897a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h 11291e43adfcSbellard 1130e5fe0c52Spbrookbflt="no" 1131cb33da57Sblueswir1elfload32="no" 11321e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 11331e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 113497a847bcSbellard 113597a847bcSbellardif test "$target_cpu" = "i386" ; then 113697a847bcSbellard echo "TARGET_ARCH=i386" >> $config_mak 113797a847bcSbellard echo "#define TARGET_ARCH \"i386\"" >> $config_h 113897a847bcSbellard echo "#define TARGET_I386 1" >> $config_h 113907f4ddbfSbellard if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then 1140824d560fSbellard echo "#define USE_KQEMU 1" >> $config_h 1141824d560fSbellard fi 11420938cda5Saurel32elif test "$target_cpu" = "x86_64" ; then 11430938cda5Saurel32 echo "TARGET_ARCH=x86_64" >> $config_mak 11440938cda5Saurel32 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h 11450938cda5Saurel32 echo "#define TARGET_I386 1" >> $config_h 11460938cda5Saurel32 echo "#define TARGET_X86_64 1" >> $config_h 11470938cda5Saurel32 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then 11480938cda5Saurel32 echo "#define USE_KQEMU 1" >> $config_h 11490938cda5Saurel32 fi 11500938cda5Saurel32elif test "$target_cpu" = "alpha" ; then 11510938cda5Saurel32 echo "TARGET_ARCH=alpha" >> $config_mak 11520938cda5Saurel32 echo "#define TARGET_ARCH \"alpha\"" >> $config_h 11530938cda5Saurel32 echo "#define TARGET_ALPHA 1" >> $config_h 1154808c4954Sbellardelif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then 115597a847bcSbellard echo "TARGET_ARCH=arm" >> $config_mak 1156663715fbSpbrook echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak 115797a847bcSbellard echo "#define TARGET_ARCH \"arm\"" >> $config_h 115897a847bcSbellard echo "#define TARGET_ARM 1" >> $config_h 1159663715fbSpbrook echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h 1160e5fe0c52Spbrook bflt="yes" 11610938cda5Saurel32elif test "$target_cpu" = "cris" ; then 11620938cda5Saurel32 echo "TARGET_ARCH=cris" >> $config_mak 11630938cda5Saurel32 echo "#define TARGET_ARCH \"cris\"" >> $config_h 11640938cda5Saurel32 echo "#define TARGET_CRIS 1" >> $config_h 11650938cda5Saurel32 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 11660938cda5Saurel32 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 11670938cda5Saurel32elif test "$target_cpu" = "m68k" ; then 11680938cda5Saurel32 echo "TARGET_ARCH=m68k" >> $config_mak 11690938cda5Saurel32 echo "#define TARGET_ARCH \"m68k\"" >> $config_h 11700938cda5Saurel32 echo "#define TARGET_M68K 1" >> $config_h 11710938cda5Saurel32 bflt="yes" 11720938cda5Saurel32elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then 11730938cda5Saurel32 echo "TARGET_ARCH=mips" >> $config_mak 11740938cda5Saurel32 echo "#define TARGET_ARCH \"mips\"" >> $config_h 11750938cda5Saurel32 echo "#define TARGET_MIPS 1" >> $config_h 11760938cda5Saurel32 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h 11770938cda5Saurel32elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then 11780938cda5Saurel32 echo "TARGET_ARCH=mipsn32" >> $config_mak 11790938cda5Saurel32 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h 11800938cda5Saurel32 echo "#define TARGET_MIPS 1" >> $config_h 11810938cda5Saurel32 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h 11820938cda5Saurel32elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then 11830938cda5Saurel32 echo "TARGET_ARCH=mips64" >> $config_mak 11840938cda5Saurel32 echo "#define TARGET_ARCH \"mips64\"" >> $config_h 11850938cda5Saurel32 echo "#define TARGET_MIPS 1" >> $config_h 11860938cda5Saurel32 echo "#define TARGET_MIPS64 1" >> $config_h 11870938cda5Saurel32 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h 118867867308Sbellardelif test "$target_cpu" = "ppc" ; then 118967867308Sbellard echo "TARGET_ARCH=ppc" >> $config_mak 119067867308Sbellard echo "#define TARGET_ARCH \"ppc\"" >> $config_h 119167867308Sbellard echo "#define TARGET_PPC 1" >> $config_h 1192d4082e95Sj_mayerelif test "$target_cpu" = "ppcemb" ; then 1193d4082e95Sj_mayer echo "TARGET_ARCH=ppcemb" >> $config_mak 1194e85e7c6eSj_mayer echo "TARGET_ABI_DIR=ppc" >> $config_mak 1195d4082e95Sj_mayer echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h 1196d4082e95Sj_mayer echo "#define TARGET_PPC 1" >> $config_h 1197d4082e95Sj_mayer echo "#define TARGET_PPCEMB 1" >> $config_h 119822f8a8b3Sj_mayerelif test "$target_cpu" = "ppc64" ; then 119922f8a8b3Sj_mayer echo "TARGET_ARCH=ppc64" >> $config_mak 1200f85e9a68Sj_mayer echo "TARGET_ABI_DIR=ppc" >> $config_mak 12015e692ecdSj_mayer echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 120222f8a8b3Sj_mayer echo "#define TARGET_PPC 1" >> $config_h 120322f8a8b3Sj_mayer echo "#define TARGET_PPC64 1" >> $config_h 1204e85e7c6eSj_mayerelif test "$target_cpu" = "ppc64abi32" ; then 1205e85e7c6eSj_mayer echo "TARGET_ARCH=ppc64" >> $config_mak 1206e85e7c6eSj_mayer echo "TARGET_ABI_DIR=ppc" >> $config_mak 12070c64b9cdSbellard echo "TARGET_ARCH2=ppc64abi32" >> $config_mak 12085e692ecdSj_mayer echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 1209e85e7c6eSj_mayer echo "#define TARGET_PPC 1" >> $config_h 1210e85e7c6eSj_mayer echo "#define TARGET_PPC64 1" >> $config_h 1211e85e7c6eSj_mayer echo "#define TARGET_ABI32 1" >> $config_h 1212908f52b0Spbrookelif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then 1213fdf9b3e8Sbellard echo "TARGET_ARCH=sh4" >> $config_mak 1214fdf9b3e8Sbellard echo "#define TARGET_ARCH \"sh4\"" >> $config_h 1215fdf9b3e8Sbellard echo "#define TARGET_SH4 1" >> $config_h 12164dbed897Spbrook bflt="yes" 12170938cda5Saurel32elif test "$target_cpu" = "sparc" ; then 12180938cda5Saurel32 echo "TARGET_ARCH=sparc" >> $config_mak 12190938cda5Saurel32 echo "#define TARGET_ARCH \"sparc\"" >> $config_h 12200938cda5Saurel32 echo "#define TARGET_SPARC 1" >> $config_h 12210938cda5Saurel32elif test "$target_cpu" = "sparc64" ; then 12220938cda5Saurel32 echo "TARGET_ARCH=sparc64" >> $config_mak 12230938cda5Saurel32 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 12240938cda5Saurel32 echo "#define TARGET_SPARC 1" >> $config_h 12250938cda5Saurel32 echo "#define TARGET_SPARC64 1" >> $config_h 12260938cda5Saurel32 elfload32="yes" 12270938cda5Saurel32elif test "$target_cpu" = "sparc32plus" ; then 12280938cda5Saurel32 echo "TARGET_ARCH=sparc64" >> $config_mak 12290938cda5Saurel32 echo "TARGET_ABI_DIR=sparc" >> $config_mak 12300938cda5Saurel32 echo "TARGET_ARCH2=sparc32plus" >> $config_mak 12310938cda5Saurel32 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 12320938cda5Saurel32 echo "#define TARGET_SPARC 1" >> $config_h 12330938cda5Saurel32 echo "#define TARGET_SPARC64 1" >> $config_h 12340938cda5Saurel32 echo "#define TARGET_ABI32 1" >> $config_h 1235de83cd02Sbellardelse 1236de83cd02Sbellard echo "Unsupported target CPU" 1237de83cd02Sbellard exit 1 1238de83cd02Sbellardfi 1239de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 124097a847bcSbellard echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 124197a847bcSbellard echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 124297a847bcSbellardfi 124397a847bcSbellardif test "$target_softmmu" = "yes" ; then 124497a847bcSbellard echo "CONFIG_SOFTMMU=yes" >> $config_mak 124597a847bcSbellard echo "#define CONFIG_SOFTMMU 1" >> $config_h 1246de83cd02Sbellardfi 1247997344f3Sbellardif test "$target_user_only" = "yes" ; then 1248997344f3Sbellard echo "CONFIG_USER_ONLY=yes" >> $config_mak 1249997344f3Sbellard echo "#define CONFIG_USER_ONLY 1" >> $config_h 1250997344f3Sbellardfi 1251831b7825Sthsif test "$target_linux_user" = "yes" ; then 1252831b7825Sths echo "CONFIG_LINUX_USER=yes" >> $config_mak 1253831b7825Sths echo "#define CONFIG_LINUX_USER 1" >> $config_h 1254831b7825Sthsfi 1255831b7825Sthsif test "$target_darwin_user" = "yes" ; then 1256831b7825Sths echo "CONFIG_DARWIN_USER=yes" >> $config_mak 1257831b7825Sths echo "#define CONFIG_DARWIN_USER 1" >> $config_h 1258831b7825Sthsfi 1259de83cd02Sbellard 12600938cda5Saurel32if test "$target_cpu" = "arm" \ 12610938cda5Saurel32 -o "$target_cpu" = "armeb" \ 12620938cda5Saurel32 -o "$target_cpu" = "m68k" \ 12630938cda5Saurel32 -o "$target_cpu" = "mips" \ 12640938cda5Saurel32 -o "$target_cpu" = "mipsel" \ 12650938cda5Saurel32 -o "$target_cpu" = "mipsn32" \ 12660938cda5Saurel32 -o "$target_cpu" = "mipsn32el" \ 12670938cda5Saurel32 -o "$target_cpu" = "mips64" \ 12680938cda5Saurel32 -o "$target_cpu" = "mips64el" \ 12690938cda5Saurel32 -o "$target_cpu" = "sparc" \ 12700938cda5Saurel32 -o "$target_cpu" = "sparc64" \ 12710938cda5Saurel32 -o "$target_cpu" = "sparc32plus"; then 1272158142c2Sbellard echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 1273158142c2Sbellard echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 1274158142c2Sbellardfi 1275e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 1276e5fe0c52Spbrook echo "TARGET_HAS_BFLT=yes" >> $config_mak 1277e5fe0c52Spbrook echo "#define TARGET_HAS_BFLT 1" >> $config_h 1278e5fe0c52Spbrookfi 1279cb33da57Sblueswir1# 32 bit ELF loader in addition to native 64 bit loader? 1280cb33da57Sblueswir1if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then 1281cb33da57Sblueswir1 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak 1282cb33da57Sblueswir1 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h 1283cb33da57Sblueswir1fi 12845b0753e0Sbellard 128515d9ca0fSthstest -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 128615d9ca0fSths 128797a847bcSbellarddone # for target in $targets 12887d13299dSbellard 12897d13299dSbellard# build tree in object directory if source path is different from current one 12907d13299dSbellardif test "$source_path_used" = "yes" ; then 129149ecc3faSbellard DIRS="tests tests/cris slirp audio" 12927d13299dSbellard FILES="Makefile tests/Makefile" 1293e7daa605Sths FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" 1294e1ffb0f1Sedgar_igl FILES="$FILES tests/test-mmap.c" 12957d13299dSbellard for dir in $DIRS ; do 12967d13299dSbellard mkdir -p $dir 12977d13299dSbellard done 1298ec530c81Sbellard # remove the link and recreate it, as not all "ln -sf" overwrite the link 12997d13299dSbellard for f in $FILES ; do 1300ec530c81Sbellard rm -f $f 1301ec530c81Sbellard ln -s $source_path/$f $f 13027d13299dSbellard done 13037d13299dSbellardfi 13047d13299dSbellard 130597a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS 1306