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" 25*328a4240Spbrookgcc3_search="yes" 26*328a4240Spbrookgcc3_list="gcc-3.4 gcc34 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 ;; 53fb3e5849Sbellard s390) 54fb3e5849Sbellard cpu="s390" 55fb3e5849Sbellard ;; 5694ac5158Spbrook sparc|sun4[muv]) 57ae228531Sbellard cpu="sparc" 58ae228531Sbellard ;; 59ae228531Sbellard sparc64) 60ae228531Sbellard cpu="sparc64" 61ae228531Sbellard ;; 62a8baa8c5Sbellard ia64) 63a8baa8c5Sbellard cpu="ia64" 64a8baa8c5Sbellard ;; 6538e584a0Sbellard m68k) 6638e584a0Sbellard cpu="m68k" 6738e584a0Sbellard ;; 68bc51c5c9Sbellard x86_64|amd64) 690b0babc6Sbellard cpu="x86_64" 70bc51c5c9Sbellard ;; 717d13299dSbellard *) 727d13299dSbellard cpu="unknown" 737d13299dSbellard ;; 747d13299dSbellardesac 757d13299dSbellardgprof="no" 767d13299dSbellardbigendian="no" 7767b915a5Sbellardmingw32="no" 7867b915a5SbellardEXESUF="" 7967b915a5Sbellardgdbstub="yes" 80443f1376Sbellardslirp="yes" 81fb065187Sbellardadlib="no" 82fb065187Sbellardoss="no" 831d14ffa9Sbellarddsound="no" 841d14ffa9Sbellardcoreaudio="no" 851d14ffa9Sbellardalsa="no" 86102a52e4Sbellardfmod="no" 87102a52e4Sbellardfmod_lib="" 88102a52e4Sbellardfmod_inc="" 89b1a550a0Spbrookbsd="no" 905327cf48Sbellardlinux="no" 91c9ec1fe4Sbellardkqemu="no" 9205c2a3e7Sbellardprofiler="no" 935b0753e0Sbellardcocoa="no" 9497ccc689Sbellardcheck_gfx="yes" 951aff381fSbellardcheck_gcc="yes" 960a8e90f4Spbrooksoftmmu="yes" 970a8e90f4Spbrookuser="no" 98cc8ae6deSpbrookbuild_docs="no" 99c5937220Spbrookuname_release="" 1007d13299dSbellard 1017d13299dSbellard# OS specific 1027d13299dSbellardtargetos=`uname -s` 1037d13299dSbellardcase $targetos in 104c326e0afSbellardCYGWIN*) 105c326e0afSbellardmingw32="yes" 106c326e0afSbellardCFLAGS="-O2 -mno-cygwin" 107c326e0afSbellard;; 10867b915a5SbellardMINGW32*) 10967b915a5Sbellardmingw32="yes" 11067b915a5Sbellard;; 1117d3505c5SbellardFreeBSD) 1127d3505c5Sbellardbsd="yes" 113fb065187Sbellardoss="yes" 114e99f9060Sbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 11507f4ddbfSbellard kqemu="yes" 11607f4ddbfSbellardfi 1177d3505c5Sbellard;; 1187d3505c5SbellardNetBSD) 1197d3505c5Sbellardbsd="yes" 120fb065187Sbellardoss="yes" 1217d3505c5Sbellard;; 1227d3505c5SbellardOpenBSD) 1237d3505c5Sbellardbsd="yes" 124fb065187Sbellardoss="yes" 1257d3505c5Sbellard;; 12683fb7adfSbellardDarwin) 12783fb7adfSbellardbsd="yes" 12883fb7adfSbellarddarwin="yes" 12983fb7adfSbellard;; 130ec530c81SbellardSunOS) 131ec530c81Sbellardsolaris="yes" 132ec530c81Sbellard;; 133fb065187Sbellard*) 134fb065187Sbellardoss="yes" 1355327cf48Sbellardlinux="yes" 1360a8e90f4Spbrookuser="yes" 13707f4ddbfSbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 138c9ec1fe4Sbellard kqemu="yes" 139c9ec1fe4Sbellardfi 140fb065187Sbellard;; 1417d13299dSbellardesac 1427d13299dSbellard 1437d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 144b1a550a0Spbrook if [ "$darwin" != "yes" ] ; then 1457d3505c5Sbellard make="gmake" 14683fb7adfSbellard fi 1477d3505c5Sbellardfi 1487d3505c5Sbellard 149ec530c81Sbellardif [ "$solaris" = "yes" ] ; then 150ec530c81Sbellard make="gmake" 151ec530c81Sbellard install="ginstall" 152ec530c81Sbellard solarisrev=`uname -r | cut -f2 -d.` 153ec530c81Sbellardfi 154ec530c81Sbellard 1557d13299dSbellard# find source path 156ad064840Spbrooksource_path=`dirname "$0"` 157ad064840Spbrookif [ -z "$source_path" ]; then 1587d13299dSbellard source_path=`pwd` 159ad064840Spbrookelse 160ad064840Spbrook source_path=`cd "$source_path"; pwd` 161ad064840Spbrookfi 162ad064840Spbrookif test "$source_path" = `pwd` ; then 1637d13299dSbellard source_path_used="no" 164ad064840Spbrookelse 165ad064840Spbrook source_path_used="yes" 1667d13299dSbellardfi 1677d13299dSbellard 1687d13299dSbellardfor opt do 169a46e4035Spbrook optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 1707d13299dSbellard case "$opt" in 1712efc3265Sbellard --help|-h) show_help=yes 1722efc3265Sbellard ;; 173b1a550a0Spbrook --prefix=*) prefix="$optarg" 1747d13299dSbellard ;; 175b1a550a0Spbrook --interp-prefix=*) interp_prefix="$optarg" 17632ce6337Sbellard ;; 177b1a550a0Spbrook --source-path=*) source_path="$optarg" 178ad064840Spbrook source_path_used="yes" 1797d13299dSbellard ;; 180b1a550a0Spbrook --cross-prefix=*) cross_prefix="$optarg" 1817d13299dSbellard ;; 182b1a550a0Spbrook --cc=*) cc="$optarg" 183*328a4240Spbrook gcc3_search="no" 1847d13299dSbellard ;; 185b1a550a0Spbrook --host-cc=*) host_cc="$optarg" 18683469015Sbellard ;; 187b1a550a0Spbrook --make=*) make="$optarg" 1887d13299dSbellard ;; 1896a882643Spbrook --install=*) install="$optarg" 1906a882643Spbrook ;; 191b1a550a0Spbrook --extra-cflags=*) CFLAGS="$optarg" 1927d13299dSbellard ;; 193b1a550a0Spbrook --extra-ldflags=*) LDFLAGS="$optarg" 1947d13299dSbellard ;; 195b1a550a0Spbrook --cpu=*) cpu="$optarg" 1967d13299dSbellard ;; 197b1a550a0Spbrook --target-list=*) target_list="$optarg" 198de83cd02Sbellard ;; 1997d13299dSbellard --enable-gprof) gprof="yes" 2007d13299dSbellard ;; 20143ce4dfeSbellard --static) static="yes" 20243ce4dfeSbellard ;; 20397a847bcSbellard --disable-sdl) sdl="no" 20497a847bcSbellard ;; 2051d14ffa9Sbellard --enable-coreaudio) coreaudio="yes" 2061d14ffa9Sbellard ;; 2071d14ffa9Sbellard --enable-alsa) alsa="yes" 2081d14ffa9Sbellard ;; 2091d14ffa9Sbellard --enable-dsound) dsound="yes" 2101d14ffa9Sbellard ;; 211102a52e4Sbellard --enable-fmod) fmod="yes" 212102a52e4Sbellard ;; 213b1a550a0Spbrook --fmod-lib=*) fmod_lib="$optarg" 214102a52e4Sbellard ;; 215b1a550a0Spbrook --fmod-inc=*) fmod_inc="$optarg" 216102a52e4Sbellard ;; 21787ac5427Sbellard --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; user="no" 21867b915a5Sbellard ;; 219443f1376Sbellard --disable-slirp) slirp="no" 220c20709aaSbellard ;; 221fb065187Sbellard --enable-adlib) adlib="yes" 222fb065187Sbellard ;; 223c9ec1fe4Sbellard --disable-kqemu) kqemu="no" 224c9ec1fe4Sbellard ;; 22505c2a3e7Sbellard --enable-profiler) profiler="yes" 22605c2a3e7Sbellard ;; 2271d14ffa9Sbellard --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no" 2285b0753e0Sbellard ;; 22997ccc689Sbellard --disable-gfx-check) check_gfx="no" 23097ccc689Sbellard ;; 2311aff381fSbellard --disable-gcc-check) check_gcc="no" 2321aff381fSbellard ;; 233cad25d69Spbrook --disable-system) softmmu="no" 2340a8e90f4Spbrook ;; 235cad25d69Spbrook --enable-system) softmmu="yes" 2360a8e90f4Spbrook ;; 2370a8e90f4Spbrook --disable-user) user="no" 2380a8e90f4Spbrook ;; 2390a8e90f4Spbrook --enable-user) user="yes" 2400a8e90f4Spbrook ;; 241c5937220Spbrook --enable-uname-release=*) uname_release="$optarg" 242c5937220Spbrook ;; 2437d13299dSbellard esac 2447d13299dSbellarddone 2457d13299dSbellard 2467d13299dSbellard# Checking for CFLAGS 2477d13299dSbellardif test -z "$CFLAGS"; then 2487d13299dSbellard CFLAGS="-O2" 2497d13299dSbellardfi 2507d13299dSbellard 251af5db58eSpbrookif test x"$show_help" = x"yes" ; then 252af5db58eSpbrookcat << EOF 253af5db58eSpbrook 254af5db58eSpbrookUsage: configure [options] 255af5db58eSpbrookOptions: [defaults in brackets after descriptions] 256af5db58eSpbrook 257af5db58eSpbrookEOF 258af5db58eSpbrookecho "Standard options:" 259af5db58eSpbrookecho " --help print this message" 260af5db58eSpbrookecho " --prefix=PREFIX install in PREFIX [$prefix]" 261af5db58eSpbrookecho " --interp-prefix=PREFIX where to find shared libraries, etc." 262af5db58eSpbrookecho " use %M for cpu name [$interp_prefix]" 263af5db58eSpbrookecho " --target-list=LIST set target list [$target_list]" 264af5db58eSpbrookecho "" 265af5db58eSpbrookecho "kqemu kernel acceleration support:" 266af5db58eSpbrookecho " --disable-kqemu disable kqemu support" 267af5db58eSpbrookecho "" 268af5db58eSpbrookecho "Advanced options (experts only):" 269af5db58eSpbrookecho " --source-path=PATH path of source code [$source_path]" 270af5db58eSpbrookecho " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 271af5db58eSpbrookecho " --cc=CC use C compiler CC [$cc]" 272af5db58eSpbrookecho " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc." 273af5db58eSpbrookecho " --make=MAKE use specified make [$make]" 2746a882643Spbrookecho " --install=INSTALL use specified install [$install]" 275af5db58eSpbrookecho " --static enable static build [$static]" 276af5db58eSpbrookecho " --enable-cocoa enable COCOA (Mac OS X only)" 277af5db58eSpbrookecho " --enable-mingw32 enable Win32 cross compilation with mingw32" 278af5db58eSpbrookecho " --enable-adlib enable Adlib emulation" 279af5db58eSpbrookecho " --enable-coreaudio enable Coreaudio audio driver" 280af5db58eSpbrookecho " --enable-alsa enable ALSA audio driver" 281af5db58eSpbrookecho " --enable-fmod enable FMOD audio driver" 282af5db58eSpbrookecho " --enabled-dsound enable DirectSound audio driver" 283af5db58eSpbrookecho " --enable-system enable all system emulation targets" 284af5db58eSpbrookecho " --disable-system disable all system emulation targets" 285af5db58eSpbrookecho " --enable-user enable all linux usermode emulation targets" 286af5db58eSpbrookecho " --disable-user disable all linux usermode emulation targets" 287af5db58eSpbrookecho " --fmod-lib path to FMOD library" 288af5db58eSpbrookecho " --fmod-inc path to FMOD includes" 289c5937220Spbrookecho " --enable-uname-release=R Return R for uname -r in usermode emulation" 290af5db58eSpbrookecho "" 291af5db58eSpbrookecho "NOTE: The object files are build at the place where configure is launched" 292af5db58eSpbrookexit 1 293af5db58eSpbrookfi 294af5db58eSpbrook 2957d13299dSbellardcc="${cross_prefix}${cc}" 2967d13299dSbellardar="${cross_prefix}${ar}" 2977d13299dSbellardstrip="${cross_prefix}${strip}" 2987d13299dSbellard 299064aae13Spbrook# check that the C compiler works. 300064aae13Spbrookcat > $TMPC <<EOF 301064aae13Spbrookint main(void) {} 302064aae13SpbrookEOF 303064aae13Spbrook 304064aae13Spbrookif $cc -c -o $TMPO $TMPC 2>/dev/null ; then 305064aae13Spbrook : C compiler works ok 306064aae13Spbrookelse 307064aae13Spbrook echo "ERROR: \"$cc\" either does not exist or does not work" 308064aae13Spbrook exit 1 309a7350fa1Sbellardfi 310a7350fa1Sbellard 31167b915a5Sbellardif test "$mingw32" = "yes" ; then 3125327cf48Sbellard linux="no" 31367b915a5Sbellard EXESUF=".exe" 3149f059ecaSbellard oss="no" 31507f4ddbfSbellard if [ "$cpu" = "i386" ] ; then 31607f4ddbfSbellard kqemu="yes" 31707f4ddbfSbellard fi 31867b915a5Sbellardfi 31967b915a5Sbellard 320*328a4240Spbrook# Check for gcc4, error if pre-gcc4 321*328a4240Spbrookif test "$check_gcc" = "yes" ; then 322*328a4240Spbrook cat > $TMPC <<EOF 323*328a4240Spbrook#if __GNUC__ < 4 324*328a4240Spbrook#error gcc3 325*328a4240Spbrook#endif 326*328a4240Spbrookint main(){return 0;} 327*328a4240SpbrookEOF 328*328a4240Spbrook check_cc() { 329*328a4240Spbrook which "$1" >&/dev/null 330*328a4240Spbrook return $? 331*328a4240Spbrook } 332*328a4240Spbrook 333*328a4240Spbrook if "$cc" -o $TMPE $TMPC 2>/dev/null ; then 334*328a4240Spbrook echo "WARNING: \"$cc\" looks like gcc 4.x" 335*328a4240Spbrook found_compat_cc="no" 336*328a4240Spbrook if test "$gcc3_search" = "yes" ; then 337*328a4240Spbrook echo "Looking for gcc 3.x" 338*328a4240Spbrook for compat_cc in $gcc3_list ; do 339*328a4240Spbrook if check_cc "$compat_cc" ; then 340*328a4240Spbrook echo "Found \"$compat_cc\"" 341*328a4240Spbrook cc="$compat_cc" 342*328a4240Spbrook found_compat_cc="yes" 343*328a4240Spbrook break 344*328a4240Spbrook fi 345*328a4240Spbrook done 346*328a4240Spbrook if test "$found_compat_cc" = "no" ; then 347*328a4240Spbrook echo "gcc 3.x not found!" 348*328a4240Spbrook fi 349*328a4240Spbrook fi 350*328a4240Spbrook if test "$found_compat_cc" = "no" ; then 351*328a4240Spbrook echo "QEMU is known to have problems when compiled with gcc 4.x" 352*328a4240Spbrook echo "It is recommended that you use gcc 3.x to build QEMU" 353*328a4240Spbrook echo "To use this compiler anyway, configure with --disable-gcc-check" 354*328a4240Spbrook exit 1; 355*328a4240Spbrook fi 356*328a4240Spbrook fi 357*328a4240Spbrookfi 358*328a4240Spbrook 359ec530c81Sbellard# 360ec530c81Sbellard# Solaris specific configure tool chain decisions 361ec530c81Sbellard# 362ec530c81Sbellardif test "$solaris" = "yes" ; then 363ec530c81Sbellard # 364ec530c81Sbellard # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly 365ec530c81Sbellard # override the check with --disable-gcc-check 366ec530c81Sbellard # 367ec530c81Sbellard if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then 368ec530c81Sbellard solgcc=`which $cc` 369ec530c81Sbellard if test "$solgcc" = "/usr/sfw/bin/gcc" ; then 370ec530c81Sbellard echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly." 371ec530c81Sbellard echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3" 372ec530c81Sbellard echo "or get the latest patch from SunSolve for gcc" 373ec530c81Sbellard exit 1 374ec530c81Sbellard fi 375ec530c81Sbellard fi 376ec530c81Sbellard solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"` 377ec530c81Sbellard if test -z "$solinst" ; then 378ec530c81Sbellard echo "Solaris install program not found. Use --install=/usr/ucb/install or" 379ec530c81Sbellard echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" 380ec530c81Sbellard echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" 381ec530c81Sbellard exit 1 382ec530c81Sbellard fi 383ec530c81Sbellard if test "$solinst" = "/usr/sbin/install" ; then 384ec530c81Sbellard echo "Error: Solaris /usr/sbin/install is not an appropriate install program." 385ec530c81Sbellard echo "try ginstall from the GNU fileutils available from www.blastwave.org" 386ec530c81Sbellard echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" 387ec530c81Sbellard exit 1 388ec530c81Sbellard fi 389ec530c81Sbellard sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"` 390ec530c81Sbellard if test -z "$sol_ar" ; then 391ec530c81Sbellard echo "Error: No path includes ar" 392ec530c81Sbellard if test -f /usr/ccs/bin/ar ; then 393ec530c81Sbellard echo "Add /usr/ccs/bin to your path and rerun configure" 394ec530c81Sbellard fi 395ec530c81Sbellard exit 1 396ec530c81Sbellard fi 397ec530c81Sbellardfi 398ec530c81Sbellard 399ec530c81Sbellard 4005327cf48Sbellardif test -z "$target_list" ; then 4015327cf48Sbellard# these targets are portable 4020a8e90f4Spbrook if [ "$softmmu" = "yes" ] ; then 40338260998Spbrook target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu" 4040a8e90f4Spbrook fi 4055327cf48Sbellard# the following are Linux specific 4060a8e90f4Spbrook if [ "$user" = "yes" ] ; then 407e6e5906bSpbrook target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user m68k-user $target_list" 4085327cf48Sbellard fi 4096e20a45fSbellardelse 410b1a550a0Spbrook target_list=`echo "$target_list" | sed -e 's/,/ /g'` 4115327cf48Sbellardfi 4120a8e90f4Spbrookif test -z "$target_list" ; then 4130a8e90f4Spbrook echo "No targets enabled" 4140a8e90f4Spbrook exit 1 4150a8e90f4Spbrookfi 4165327cf48Sbellard 4177d13299dSbellardif test -z "$cross_prefix" ; then 4187d13299dSbellard 4197d13299dSbellard# --- 4207d13299dSbellard# big/little endian test 4217d13299dSbellardcat > $TMPC << EOF 4227d13299dSbellard#include <inttypes.h> 4237d13299dSbellardint main(int argc, char ** argv){ 4247d13299dSbellard volatile uint32_t i=0x01234567; 4257d13299dSbellard return (*((uint8_t*)(&i))) == 0x67; 4267d13299dSbellard} 4277d13299dSbellardEOF 4287d13299dSbellard 4297d13299dSbellardif $cc -o $TMPE $TMPC 2>/dev/null ; then 4307d13299dSbellard$TMPE && bigendian="yes" 4317d13299dSbellardelse 4327d13299dSbellardecho big/little test failed 4337d13299dSbellardfi 4347d13299dSbellard 4357d13299dSbellardelse 4367d13299dSbellard 4377d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess 438808c4954Sbellardif test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then 4397d13299dSbellard bigendian="yes" 4407d13299dSbellardfi 4417d13299dSbellard 4427d13299dSbellardfi 4437d13299dSbellard 444b6853697Sbellard# host long bits test 445b6853697Sbellardhostlongbits="32" 446b6853697Sbellardif test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then 447b6853697Sbellard hostlongbits="64" 448b6853697Sbellardfi 449b6853697Sbellard 450e8cd23deSbellard# check gcc options support 45104369ff2Sbellardcat > $TMPC <<EOF 45204369ff2Sbellardint main(void) { 45304369ff2Sbellard} 45404369ff2SbellardEOF 45504369ff2Sbellard 456e8cd23deSbellardhave_gcc3_options="no" 457e8cd23deSbellardif $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then 458e8cd23deSbellard have_gcc3_options="yes" 45904369ff2Sbellardfi 460ca735206Sbellard 46111d9f695Sbellard########################################## 46211d9f695Sbellard# SDL probe 46311d9f695Sbellard 46411d9f695Sbellardsdl_too_old=no 46511d9f695Sbellard 46611d9f695Sbellardif test -z "$sdl" ; then 46711d9f695Sbellard 468a6e022adSbellardsdl_config="sdl-config" 469a6e022adSbellardsdl=no 4707c1f25b4Sbellardsdl_static=no 471a6e022adSbellard 472a6e022adSbellardif test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 473a6e022adSbellard# win32 cross compilation case 474a6e022adSbellard sdl_config="i386-mingw32msvc-sdl-config" 475a6e022adSbellard sdl=yes 476a6e022adSbellardelse 477a6e022adSbellard# normal SDL probe 47811d9f695Sbellardcat > $TMPC << EOF 47911d9f695Sbellard#include <SDL.h> 48011d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 48111d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 48211d9f695SbellardEOF 48311d9f695Sbellard 484a6e022adSbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then 485a6e022adSbellard_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 48611d9f695Sbellardif test "$_sdlversion" -lt 121 ; then 48711d9f695Sbellardsdl_too_old=yes 48811d9f695Sbellardelse 48911d9f695Sbellardsdl=yes 49011d9f695Sbellardfi 4917c1f25b4Sbellard 4927c1f25b4Sbellard# static link with sdl ? 4937c1f25b4Sbellardif test "$sdl" = "yes" ; then 4947c1f25b4Sbellardaa="no" 4957c1f25b4Sbellard`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes" 4967c1f25b4Sbellardsdl_static_libs=`$sdl_config --static-libs` 4977c1f25b4Sbellardif [ "$aa" = "yes" ] ; then 498d8d8aa4eSbellard sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 49911d9f695Sbellardfi 50011d9f695Sbellard 5017c1f25b4Sbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 5027c1f25b4Sbellard sdl_static=yes 5037c1f25b4Sbellardfi 5047c1f25b4Sbellard 5057c1f25b4Sbellardfi # static link 5067c1f25b4Sbellard 5077c1f25b4Sbellardfi # sdl compile test 5087c1f25b4Sbellard 509a6e022adSbellardfi # cross compilation 510a6e022adSbellardfi # -z $sdl 51111d9f695Sbellard 512cc8ae6deSpbrook# Check if tools are available to build documentation. 51394ac5158Spbrookif [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then 514cc8ae6deSpbrook build_docs="yes" 515cc8ae6deSpbrookfi 516cc8ae6deSpbrook 51711d9f695Sbellardif test "$mingw32" = "yes" ; then 51811d9f695Sbellardif test -z "$prefix" ; then 51911d9f695Sbellard prefix="/c/Program Files/Qemu" 52011d9f695Sbellardfi 52111d9f695Sbellardmandir="$prefix" 5227efa4387Sbellarddatadir="$prefix" 5231f50f8d1Sbellarddocdir="$prefix" 52411d9f695Sbellardbindir="$prefix" 52511d9f695Sbellardelse 52611d9f695Sbellardif test -z "$prefix" ; then 52711d9f695Sbellard prefix="/usr/local" 52811d9f695Sbellardfi 5295a67135aSbellardmandir="$prefix/share/man" 5307efa4387Sbellarddatadir="$prefix/share/qemu" 5311f50f8d1Sbellarddocdir="$prefix/share/doc/qemu" 53211d9f695Sbellardbindir="$prefix/bin" 53311d9f695Sbellardfi 5345a67135aSbellard 5357d13299dSbellardecho "Install prefix $prefix" 5367efa4387Sbellardecho "BIOS directory $datadir" 53711d9f695Sbellardecho "binary directory $bindir" 53811d9f695Sbellardif test "$mingw32" = "no" ; then 53911d9f695Sbellardecho "Manual directory $mandir" 54043ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 54111d9f695Sbellardfi 5425a67135aSbellardecho "Source path $source_path" 5437d13299dSbellardecho "C compiler $cc" 54483469015Sbellardecho "Host C compiler $host_cc" 5457d13299dSbellardecho "make $make" 5466a882643Spbrookecho "install $install" 547a98fd896Sbellardecho "host CPU $cpu" 548de83cd02Sbellardecho "host big endian $bigendian" 54997a847bcSbellardecho "target list $target_list" 5507d13299dSbellardecho "gprof enabled $gprof" 55105c2a3e7Sbellardecho "profiler $profiler" 55243ce4dfeSbellardecho "static build $static" 5535b0753e0Sbellardif test "$darwin" = "yes" ; then 5545b0753e0Sbellard echo "Cocoa support $cocoa" 5555b0753e0Sbellardfi 55697a847bcSbellardecho "SDL support $sdl" 557e4afee97Sbellardif test "$sdl" != "no" ; then 5587c1f25b4Sbellard echo "SDL static link $sdl_static" 559e4afee97Sbellardfi 56067b915a5Sbellardecho "mingw32 support $mingw32" 561fb065187Sbellardecho "Adlib support $adlib" 5621d14ffa9Sbellardecho "CoreAudio support $coreaudio" 5631d14ffa9Sbellardecho "ALSA support $alsa" 5641d14ffa9Sbellardecho "DSound support $dsound" 5651d14ffa9Sbellardif test "$fmod" = "yes"; then 5661d14ffa9Sbellard if test -z $fmod_lib || test -z $fmod_inc; then 5671d14ffa9Sbellard echo 5681d14ffa9Sbellard echo "Error: You must specify path to FMOD library and headers" 5691d14ffa9Sbellard echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 5701d14ffa9Sbellard echo 5711d14ffa9Sbellard exit 1 5721d14ffa9Sbellard fi 573b1a550a0Spbrook fmod_support=" (lib='$fmod_lib' include='$fmod_inc')" 574b1a550a0Spbrookelse 575b1a550a0Spbrook fmod_support="" 576102a52e4Sbellardfi 577b1a550a0Spbrookecho "FMOD support $fmod $fmod_support" 57807f4ddbfSbellardecho "kqemu support $kqemu" 579cc8ae6deSpbrookecho "Documentation $build_docs" 580c5937220Spbrook[ ! -z "$uname_release" ] && \ 581c5937220Spbrookecho "uname -r $uname_release" 58267b915a5Sbellard 58397a847bcSbellardif test $sdl_too_old = "yes"; then 58424b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support" 585e8cd23deSbellardfi 58624b55b96Sbellard#if test "$sdl_static" = "no"; then 58724b55b96Sbellard# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 58824b55b96Sbellard#fi 58997a847bcSbellardconfig_mak="config-host.mak" 59097a847bcSbellardconfig_h="config-host.h" 59197a847bcSbellard 5927c1f25b4Sbellard#echo "Creating $config_mak and $config_h" 59397a847bcSbellard 59497a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 59529517134Spbrookecho "# Configured with: $0 $@" >> $config_mak 59697a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 59797a847bcSbellard 59897a847bcSbellardecho "prefix=$prefix" >> $config_mak 59911d9f695Sbellardecho "bindir=$bindir" >> $config_mak 6005a67135aSbellardecho "mandir=$mandir" >> $config_mak 6017efa4387Sbellardecho "datadir=$datadir" >> $config_mak 6021f50f8d1Sbellardecho "docdir=$docdir" >> $config_mak 6037efa4387Sbellardecho "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h 60497a847bcSbellardecho "MAKE=$make" >> $config_mak 6056a882643Spbrookecho "INSTALL=$install" >> $config_mak 60697a847bcSbellardecho "CC=$cc" >> $config_mak 60797a847bcSbellardif test "$have_gcc3_options" = "yes" ; then 60897a847bcSbellard echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak 60997a847bcSbellardfi 61097a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak 61197a847bcSbellardecho "AR=$ar" >> $config_mak 61297a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak 61397a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak 61497a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak 61567b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak 61697a847bcSbellardif test "$cpu" = "i386" ; then 61797a847bcSbellard echo "ARCH=i386" >> $config_mak 61897a847bcSbellard echo "#define HOST_I386 1" >> $config_h 6190b0babc6Sbellardelif test "$cpu" = "x86_64" ; then 6200b0babc6Sbellard echo "ARCH=x86_64" >> $config_mak 6210b0babc6Sbellard echo "#define HOST_X86_64 1" >> $config_h 622808c4954Sbellardelif test "$cpu" = "armv4b" ; then 623808c4954Sbellard echo "ARCH=arm" >> $config_mak 624808c4954Sbellard echo "#define HOST_ARM 1" >> $config_h 6257d13299dSbellardelif test "$cpu" = "armv4l" ; then 62697a847bcSbellard echo "ARCH=arm" >> $config_mak 62797a847bcSbellard echo "#define HOST_ARM 1" >> $config_h 6287d13299dSbellardelif test "$cpu" = "powerpc" ; then 62997a847bcSbellard echo "ARCH=ppc" >> $config_mak 63097a847bcSbellard echo "#define HOST_PPC 1" >> $config_h 6317d13299dSbellardelif test "$cpu" = "mips" ; then 63297a847bcSbellard echo "ARCH=mips" >> $config_mak 63397a847bcSbellard echo "#define HOST_MIPS 1" >> $config_h 634fb3e5849Sbellardelif test "$cpu" = "s390" ; then 63597a847bcSbellard echo "ARCH=s390" >> $config_mak 63697a847bcSbellard echo "#define HOST_S390 1" >> $config_h 637295defa5Sbellardelif test "$cpu" = "alpha" ; then 63897a847bcSbellard echo "ARCH=alpha" >> $config_mak 63997a847bcSbellard echo "#define HOST_ALPHA 1" >> $config_h 640ae228531Sbellardelif test "$cpu" = "sparc" ; then 64197a847bcSbellard echo "ARCH=sparc" >> $config_mak 64297a847bcSbellard echo "#define HOST_SPARC 1" >> $config_h 643ae228531Sbellardelif test "$cpu" = "sparc64" ; then 64497a847bcSbellard echo "ARCH=sparc64" >> $config_mak 64597a847bcSbellard echo "#define HOST_SPARC64 1" >> $config_h 646a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then 64797a847bcSbellard echo "ARCH=ia64" >> $config_mak 64897a847bcSbellard echo "#define HOST_IA64 1" >> $config_h 64938e584a0Sbellardelif test "$cpu" = "m68k" ; then 65038ca2abcSbellard echo "ARCH=m68k" >> $config_mak 65138ca2abcSbellard echo "#define HOST_M68K 1" >> $config_h 6527d13299dSbellardelse 6537d13299dSbellard echo "Unsupported CPU" 6547d13299dSbellard exit 1 6557d13299dSbellardfi 6567d13299dSbellardif test "$bigendian" = "yes" ; then 65797a847bcSbellard echo "WORDS_BIGENDIAN=yes" >> $config_mak 65897a847bcSbellard echo "#define WORDS_BIGENDIAN 1" >> $config_h 65997a847bcSbellardfi 660b6853697Sbellardecho "#define HOST_LONG_BITS $hostlongbits" >> $config_h 66167b915a5Sbellardif test "$mingw32" = "yes" ; then 66267b915a5Sbellard echo "CONFIG_WIN32=yes" >> $config_mak 66311d9f695Sbellard echo "#define CONFIG_WIN32 1" >> $config_h 6647d3505c5Sbellardelif test -f "/usr/include/byteswap.h" ; then 66597a847bcSbellard echo "#define HAVE_BYTESWAP_H 1" >> $config_h 66667b915a5Sbellardfi 66783fb7adfSbellardif test "$darwin" = "yes" ; then 66883fb7adfSbellard echo "CONFIG_DARWIN=yes" >> $config_mak 66983fb7adfSbellard echo "#define CONFIG_DARWIN 1" >> $config_h 67083fb7adfSbellardfi 671ec530c81Sbellardif test "$solaris" = "yes" ; then 672ec530c81Sbellard echo "CONFIG_SOLARIS=yes" >> $config_mak 67338cfa06cSbellard echo "#define HOST_SOLARIS $solarisrev" >> $config_h 674ec530c81Sbellardfi 67567b915a5Sbellardif test "$gdbstub" = "yes" ; then 67667b915a5Sbellard echo "CONFIG_GDBSTUB=yes" >> $config_mak 67767b915a5Sbellard echo "#define CONFIG_GDBSTUB 1" >> $config_h 67867b915a5Sbellardfi 67997a847bcSbellardif test "$gprof" = "yes" ; then 68097a847bcSbellard echo "TARGET_GPROF=yes" >> $config_mak 68197a847bcSbellard echo "#define HAVE_GPROF 1" >> $config_h 68297a847bcSbellardfi 68397a847bcSbellardif test "$static" = "yes" ; then 68497a847bcSbellard echo "CONFIG_STATIC=yes" >> $config_mak 68550863472Sbellard echo "#define CONFIG_STATIC 1" >> $config_h 68697a847bcSbellardfi 68705c2a3e7Sbellardif test $profiler = "yes" ; then 68805c2a3e7Sbellard echo "#define CONFIG_PROFILER 1" >> $config_h 68905c2a3e7Sbellardfi 690c20709aaSbellardif test "$slirp" = "yes" ; then 691c20709aaSbellard echo "CONFIG_SLIRP=yes" >> $config_mak 692c20709aaSbellard echo "#define CONFIG_SLIRP 1" >> $config_h 693c20709aaSbellardfi 694fb065187Sbellardif test "$adlib" = "yes" ; then 695fb065187Sbellard echo "CONFIG_ADLIB=yes" >> $config_mak 696fb065187Sbellard echo "#define CONFIG_ADLIB 1" >> $config_h 697fb065187Sbellardfi 698fb065187Sbellardif test "$oss" = "yes" ; then 699fb065187Sbellard echo "CONFIG_OSS=yes" >> $config_mak 700fb065187Sbellard echo "#define CONFIG_OSS 1" >> $config_h 701fb065187Sbellardfi 7021d14ffa9Sbellardif test "$coreaudio" = "yes" ; then 7031d14ffa9Sbellard echo "CONFIG_COREAUDIO=yes" >> $config_mak 7041d14ffa9Sbellard echo "#define CONFIG_COREAUDIO 1" >> $config_h 7051d14ffa9Sbellardfi 7061d14ffa9Sbellardif test "$alsa" = "yes" ; then 7071d14ffa9Sbellard echo "CONFIG_ALSA=yes" >> $config_mak 7081d14ffa9Sbellard echo "#define CONFIG_ALSA 1" >> $config_h 7091d14ffa9Sbellardfi 7101d14ffa9Sbellardif test "$dsound" = "yes" ; then 7111d14ffa9Sbellard echo "CONFIG_DSOUND=yes" >> $config_mak 7121d14ffa9Sbellard echo "#define CONFIG_DSOUND 1" >> $config_h 7131d14ffa9Sbellardfi 714102a52e4Sbellardif test "$fmod" = "yes" ; then 715102a52e4Sbellard echo "CONFIG_FMOD=yes" >> $config_mak 716102a52e4Sbellard echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak 717102a52e4Sbellard echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak 718102a52e4Sbellard echo "#define CONFIG_FMOD 1" >> $config_h 719102a52e4Sbellardfi 720b1a550a0Spbrookqemu_version=`head $source_path/VERSION` 721b1a550a0Spbrookecho "VERSION=$qemu_version" >>$config_mak 722d4b8f039Spbrookecho "#define QEMU_VERSION \"$qemu_version\"" >> $config_h 72397a847bcSbellard 72497a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak 725ad064840Spbrookif [ "$source_path_used" = "yes" ]; then 726ad064840Spbrook echo "VPATH=$source_path" >> $config_mak 727ad064840Spbrookfi 72897a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak 729cc8ae6deSpbrookif [ "$build_docs" = "yes" ] ; then 730cc8ae6deSpbrook echo "BUILD_DOCS=yes" >> $config_mak 731cc8ae6deSpbrookfi 73297a847bcSbellard 73383fb7adfSbellard# XXX: suppress that 7347d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 73543003046Sbellard echo "#define O_LARGEFILE 0" >> $config_h 73643003046Sbellard echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 7377d3505c5Sbellard echo "#define _BSD 1" >> $config_h 7387d3505c5Sbellardfi 7397d3505c5Sbellard 740c5937220Spbrookecho "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h 741c5937220Spbrook 74297a847bcSbellardfor target in $target_list; do 74397a847bcSbellardtarget_dir="$target" 74497a847bcSbellardconfig_mak=$target_dir/config.mak 74597a847bcSbellardconfig_h=$target_dir/config.h 74697a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1` 74797a847bcSbellardtarget_bigendian="no" 748808c4954Sbellard[ "$target_cpu" = "armeb" ] && target_bigendian=yes 7491e43adfcSbellard[ "$target_cpu" = "sparc" ] && target_bigendian=yes 75064b3ab24Sbellard[ "$target_cpu" = "sparc64" ] && target_bigendian=yes 75167867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes 752a2458627Sbellard[ "$target_cpu" = "ppc64" ] && target_bigendian=yes 753d3258560Sbellard[ "$target_cpu" = "mips" ] && target_bigendian=yes 754908f52b0Spbrook[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes 755e6e5906bSpbrook[ "$target_cpu" = "m68k" ] && target_bigendian=yes 75697a847bcSbellardtarget_softmmu="no" 75797a847bcSbellardif expr $target : '.*-softmmu' > /dev/null ; then 75897a847bcSbellard target_softmmu="yes" 7597d13299dSbellardfi 760997344f3Sbellardtarget_user_only="no" 761997344f3Sbellardif expr $target : '.*-user' > /dev/null ; then 762997344f3Sbellard target_user_only="yes" 763997344f3Sbellardfi 764de83cd02Sbellard 76597ccc689Sbellardif test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ 76697ccc689Sbellard -a "$sdl" = "no" -a "$cocoa" = "no" ; then 76797ccc689Sbellard echo "ERROR: QEMU requires SDL or Cocoa for graphical output" 7689c038506Spbrook echo "To build QEMU without graphical output configure with --disable-gfx-check" 76997ccc689Sbellard echo "Note that this will disable all output from the virtual graphics card." 77097ccc689Sbellard exit 1; 77197ccc689Sbellardfi 77297ccc689Sbellard 7737c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 77497a847bcSbellard 77597a847bcSbellardmkdir -p $target_dir 776158142c2Sbellardmkdir -p $target_dir/fpu 777808c4954Sbellardif test "$target" = "arm-user" -o "$target" = "armeb-user" ; then 77869de927cSbellard mkdir -p $target_dir/nwfpe 77969de927cSbellardfi 780a7e61ed4Sbellardif test "$target_user_only" = "no" ; then 781a7e61ed4Sbellard mkdir -p $target_dir/slirp 782a7e61ed4Sbellardfi 78369de927cSbellard 784ec530c81Sbellard# 785ec530c81Sbellard# don't use ln -sf as not all "ln -sf" over write the file/link 786ec530c81Sbellard# 787ec530c81Sbellardrm -f $target_dir/Makefile 788ec530c81Sbellardln -s $source_path/Makefile.target $target_dir/Makefile 789ec530c81Sbellard 79097a847bcSbellard 79197a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 79297a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 79397a847bcSbellard 79497a847bcSbellard 79597a847bcSbellardecho "include ../config-host.mak" >> $config_mak 79697a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h 7971e43adfcSbellard 798e5fe0c52Spbrookbflt="no" 7991e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 8001e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 80197a847bcSbellard 80297a847bcSbellardif test "$target_cpu" = "i386" ; then 80397a847bcSbellard echo "TARGET_ARCH=i386" >> $config_mak 80497a847bcSbellard echo "#define TARGET_ARCH \"i386\"" >> $config_h 80597a847bcSbellard echo "#define TARGET_I386 1" >> $config_h 80607f4ddbfSbellard if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then 807824d560fSbellard echo "#define USE_KQEMU 1" >> $config_h 808824d560fSbellard fi 809808c4954Sbellardelif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then 81097a847bcSbellard echo "TARGET_ARCH=arm" >> $config_mak 81197a847bcSbellard echo "#define TARGET_ARCH \"arm\"" >> $config_h 81297a847bcSbellard echo "#define TARGET_ARM 1" >> $config_h 813e5fe0c52Spbrook bflt="yes" 8141e43adfcSbellardelif test "$target_cpu" = "sparc" ; then 8151e43adfcSbellard echo "TARGET_ARCH=sparc" >> $config_mak 8161e43adfcSbellard echo "#define TARGET_ARCH \"sparc\"" >> $config_h 8171e43adfcSbellard echo "#define TARGET_SPARC 1" >> $config_h 81864b3ab24Sbellardelif test "$target_cpu" = "sparc64" ; then 81964b3ab24Sbellard echo "TARGET_ARCH=sparc64" >> $config_mak 82064b3ab24Sbellard echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 82164b3ab24Sbellard echo "#define TARGET_SPARC 1" >> $config_h 82264b3ab24Sbellard echo "#define TARGET_SPARC64 1" >> $config_h 82367867308Sbellardelif test "$target_cpu" = "ppc" ; then 82467867308Sbellard echo "TARGET_ARCH=ppc" >> $config_mak 82567867308Sbellard echo "#define TARGET_ARCH \"ppc\"" >> $config_h 82667867308Sbellard echo "#define TARGET_PPC 1" >> $config_h 827a2458627Sbellardelif test "$target_cpu" = "ppc64" ; then 828a2458627Sbellard echo "TARGET_ARCH=ppc64" >> $config_mak 829a2458627Sbellard echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 830a2458627Sbellard echo "#define TARGET_PPC 1" >> $config_h 831a2458627Sbellard echo "#define TARGET_PPC64 1" >> $config_h 8320b0babc6Sbellardelif test "$target_cpu" = "x86_64" ; then 8330b0babc6Sbellard echo "TARGET_ARCH=x86_64" >> $config_mak 8340b0babc6Sbellard echo "#define TARGET_ARCH \"x86_64\"" >> $config_h 8350b0babc6Sbellard echo "#define TARGET_I386 1" >> $config_h 8360b0babc6Sbellard echo "#define TARGET_X86_64 1" >> $config_h 83707f4ddbfSbellard if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then 83807f4ddbfSbellard echo "#define USE_KQEMU 1" >> $config_h 83907f4ddbfSbellard fi 840c20eb473Sbellardelif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then 841d3258560Sbellard echo "TARGET_ARCH=mips" >> $config_mak 842d3258560Sbellard echo "#define TARGET_ARCH \"mips\"" >> $config_h 843d3258560Sbellard echo "#define TARGET_MIPS 1" >> $config_h 8446ea83fedSbellard echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 8456ea83fedSbellard echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 846908f52b0Spbrookelif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then 847fdf9b3e8Sbellard echo "TARGET_ARCH=sh4" >> $config_mak 848fdf9b3e8Sbellard echo "#define TARGET_ARCH \"sh4\"" >> $config_h 849fdf9b3e8Sbellard echo "#define TARGET_SH4 1" >> $config_h 8504dbed897Spbrook bflt="yes" 851e6e5906bSpbrookelif test "$target_cpu" = "m68k" ; then 852e6e5906bSpbrook echo "TARGET_ARCH=m68k" >> $config_mak 853e6e5906bSpbrook echo "#define TARGET_ARCH \"m68k\"" >> $config_h 854e6e5906bSpbrook echo "#define TARGET_M68K 1" >> $config_h 855e6e5906bSpbrook bflt="yes" 856de83cd02Sbellardelse 857de83cd02Sbellard echo "Unsupported target CPU" 858de83cd02Sbellard exit 1 859de83cd02Sbellardfi 860de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 86197a847bcSbellard echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 86297a847bcSbellard echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 86397a847bcSbellardfi 86497a847bcSbellardif test "$target_softmmu" = "yes" ; then 86597a847bcSbellard echo "CONFIG_SOFTMMU=yes" >> $config_mak 86697a847bcSbellard echo "#define CONFIG_SOFTMMU 1" >> $config_h 867de83cd02Sbellardfi 868997344f3Sbellardif test "$target_user_only" = "yes" ; then 869997344f3Sbellard echo "CONFIG_USER_ONLY=yes" >> $config_mak 870997344f3Sbellard echo "#define CONFIG_USER_ONLY 1" >> $config_h 871997344f3Sbellardfi 872de83cd02Sbellard 873e6e5906bSpbrookif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then 874158142c2Sbellard echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 875158142c2Sbellard echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 876158142c2Sbellardfi 877e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 878e5fe0c52Spbrook echo "TARGET_HAS_BFLT=yes" >> $config_mak 879e5fe0c52Spbrook echo "#define TARGET_HAS_BFLT 1" >> $config_h 880e5fe0c52Spbrookfi 8817c1f25b4Sbellard# sdl defines 8827c1f25b4Sbellard 8837c1f25b4Sbellardif test "$target_user_only" = "no"; then 8847c1f25b4Sbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 885dbb2c921Sbellard sdl1=$sdl_static 8867c1f25b4Sbellard else 887dbb2c921Sbellard sdl1=$sdl 888dbb2c921Sbellard fi 889dbb2c921Sbellard if test "$sdl1" = "yes" ; then 8907c1f25b4Sbellard echo "#define CONFIG_SDL 1" >> $config_h 8917c1f25b4Sbellard echo "CONFIG_SDL=yes" >> $config_mak 892dbb2c921Sbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 893dbb2c921Sbellard echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 894dbb2c921Sbellard else 8957c1f25b4Sbellard echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 8967c1f25b4Sbellard fi 8977c1f25b4Sbellard if [ "${aa}" = "yes" ] ; then 898b1a550a0Spbrook echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak 899b1a550a0Spbrook else 900b1a550a0Spbrook echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 9017c1f25b4Sbellard fi 9027c1f25b4Sbellard fi 903dbb2c921Sbellardfi 9047c1f25b4Sbellard 9055b0753e0Sbellardif test "$cocoa" = "yes" ; then 9065b0753e0Sbellard echo "#define CONFIG_COCOA 1" >> $config_h 9075b0753e0Sbellard echo "CONFIG_COCOA=yes" >> $config_mak 9085b0753e0Sbellardfi 9095b0753e0Sbellard 91097a847bcSbellarddone # for target in $targets 9117d13299dSbellard 9127d13299dSbellard# build tree in object directory if source path is different from current one 9137d13299dSbellardif test "$source_path_used" = "yes" ; then 9147d13299dSbellard DIRS="tests" 9157d13299dSbellard FILES="Makefile tests/Makefile" 9167d13299dSbellard for dir in $DIRS ; do 9177d13299dSbellard mkdir -p $dir 9187d13299dSbellard done 919ec530c81Sbellard # remove the link and recreate it, as not all "ln -sf" overwrite the link 9207d13299dSbellard for f in $FILES ; do 921ec530c81Sbellard rm -f $f 922ec530c81Sbellard ln -s $source_path/$f $f 9237d13299dSbellard done 9247d13299dSbellardfi 9257d13299dSbellard 92697a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS 927