1#!/bin/sh 2# 3# qemu configure script (c) 2003 Fabrice Bellard 4# 5# set temporary file name 6if test ! -z "$TMPDIR" ; then 7 TMPDIR1="${TMPDIR}" 8elif test ! -z "$TEMPDIR" ; then 9 TMPDIR1="${TEMPDIR}" 10else 11 TMPDIR1="/tmp" 12fi 13 14TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" 15TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" 16TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" 17TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" 18 19# default parameters 20prefix="" 21interp_prefix="/usr/gnemul/qemu-%M" 22static="no" 23cross_prefix="" 24cc="gcc" 25gcc3_search="yes" 26gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32" 27audio_drv_list="" 28audio_card_list="" 29host_cc="gcc" 30ar="ar" 31make="make" 32install="install" 33strip="strip" 34cpu=`uname -m` 35target_list="" 36case "$cpu" in 37 i386|i486|i586|i686|i86pc|BePC) 38 cpu="i386" 39 ;; 40 x86_64|amd64) 41 cpu="x86_64" 42 ;; 43 alpha) 44 cpu="alpha" 45 ;; 46 armv*b) 47 cpu="armv4b" 48 ;; 49 armv*l) 50 cpu="armv4l" 51 ;; 52 cris) 53 cpu="cris" 54 ;; 55 parisc|parisc64) 56 cpu="hppa" 57 ;; 58 ia64) 59 cpu="ia64" 60 ;; 61 m68k) 62 cpu="m68k" 63 ;; 64 mips) 65 cpu="mips" 66 ;; 67 mips64) 68 cpu="mips64" 69 ;; 70 "Power Macintosh"|ppc|ppc64) 71 cpu="powerpc" 72 ;; 73 s390*) 74 cpu="s390" 75 ;; 76 sparc|sun4[cdmuv]) 77 cpu="sparc" 78 ;; 79 sparc64) 80 cpu="sparc64" 81 ;; 82 *) 83 cpu="unknown" 84 ;; 85esac 86gprof="no" 87bigendian="no" 88mingw32="no" 89EXESUF="" 90gdbstub="yes" 91slirp="yes" 92fmod_lib="" 93fmod_inc="" 94vnc_tls="yes" 95bsd="no" 96linux="no" 97kqemu="no" 98profiler="no" 99cocoa="no" 100check_gfx="yes" 101check_gcc="yes" 102softmmu="yes" 103linux_user="no" 104darwin_user="no" 105build_docs="no" 106uname_release="" 107curses="yes" 108nptl="yes" 109mixemu="no" 110 111# OS specific 112targetos=`uname -s` 113case $targetos in 114CYGWIN*) 115mingw32="yes" 116OS_CFLAGS="-mno-cygwin" 117if [ "$cpu" = "i386" ] ; then 118 kqemu="yes" 119fi 120audio_possible_drivers="sdl" 121;; 122MINGW32*) 123mingw32="yes" 124if [ "$cpu" = "i386" ] ; then 125 kqemu="yes" 126fi 127audio_possible_drivers="dsound sdl fmod" 128;; 129GNU/kFreeBSD) 130audio_drv_list="oss" 131audio_possible_drivers="oss sdl esd" 132if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 133 kqemu="yes" 134fi 135;; 136FreeBSD) 137bsd="yes" 138audio_drv_list="oss" 139audio_possible_drivers="oss sdl esd" 140if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 141 kqemu="yes" 142fi 143;; 144NetBSD) 145bsd="yes" 146audio_drv_list="oss" 147audio_possible_drivers="oss sdl esd" 148;; 149OpenBSD) 150bsd="yes" 151audio_drv_list="oss" 152audio_possible_drivers="oss sdl esd" 153;; 154Darwin) 155bsd="yes" 156darwin="yes" 157darwin_user="yes" 158cocoa="yes" 159audio_drv_list="coreaudio" 160audio_possible_drivers="coreaudio sdl fmod" 161OS_CFLAGS="-mdynamic-no-pic" 162OS_LDFLAGS="-framework CoreFoundation -framework IOKit" 163;; 164SunOS) 165 solaris="yes" 166 make="gmake" 167 install="ginstall" 168 needs_libsunmath="no" 169 solarisrev=`uname -r | cut -f2 -d.` 170 # have to select again, because `uname -m` returns i86pc 171 # even on an x86_64 box. 172 solariscpu=`isainfo -k` 173 if test "${solariscpu}" = "amd64" ; then 174 cpu="x86_64" 175 fi 176 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 177 if test "$solarisrev" -le 9 ; then 178 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then 179 needs_libsunmath="yes" 180 else 181 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" 182 echo "libsunmath from the Sun Studio compilers tools, due to a lack of" 183 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" 184 echo "Studio 11 can be downloaded from www.sun.com." 185 exit 1 186 fi 187 fi 188 if test "$solarisrev" -ge 9 ; then 189 kqemu="yes" 190 fi 191 fi 192 if test -f /usr/include/sys/soundcard.h ; then 193 audio_drv_list="oss" 194 fi 195 audio_possible_drivers="oss sdl" 196;; 197*) 198audio_drv_list="oss" 199audio_possible_drivers="oss alsa sdl esd pa" 200linux="yes" 201linux_user="yes" 202if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 203 kqemu="yes" 204 audio_possible_drivers="$audio_possible_drivers fmod" 205fi 206;; 207esac 208 209if [ "$bsd" = "yes" ] ; then 210 if [ "$darwin" != "yes" ] ; then 211 make="gmake" 212 fi 213fi 214 215# find source path 216source_path=`dirname "$0"` 217source_path_used="no" 218workdir=`pwd` 219if [ -z "$source_path" ]; then 220 source_path=$workdir 221else 222 source_path=`cd "$source_path"; pwd` 223fi 224[ -f "$workdir/vl.c" ] || source_path_used="yes" 225 226werror="no" 227# generate compile errors on warnings for development builds 228#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then 229#werror="yes"; 230#fi 231 232for opt do 233 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 234 case "$opt" in 235 --help|-h) show_help=yes 236 ;; 237 --prefix=*) prefix="$optarg" 238 ;; 239 --interp-prefix=*) interp_prefix="$optarg" 240 ;; 241 --source-path=*) source_path="$optarg" 242 source_path_used="yes" 243 ;; 244 --cross-prefix=*) cross_prefix="$optarg" 245 ;; 246 --cc=*) cc="$optarg" 247 gcc3_search="no" 248 ;; 249 --host-cc=*) host_cc="$optarg" 250 ;; 251 --make=*) make="$optarg" 252 ;; 253 --install=*) install="$optarg" 254 ;; 255 --extra-cflags=*) CFLAGS="$optarg" 256 ;; 257 --extra-ldflags=*) LDFLAGS="$optarg" 258 ;; 259 --cpu=*) cpu="$optarg" 260 ;; 261 --target-list=*) target_list="$optarg" 262 ;; 263 --enable-gprof) gprof="yes" 264 ;; 265 --static) static="yes" 266 ;; 267 --disable-sdl) sdl="no" 268 ;; 269 --fmod-lib=*) fmod_lib="$optarg" 270 ;; 271 --fmod-inc=*) fmod_inc="$optarg" 272 ;; 273 --audio-card-list=*) audio_card_list="$optarg" 274 ;; 275 --audio-drv-list=*) audio_drv_list="$optarg" 276 ;; 277 --disable-vnc-tls) vnc_tls="no" 278 ;; 279 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no" 280 ;; 281 --disable-slirp) slirp="no" 282 ;; 283 --disable-kqemu) kqemu="no" 284 ;; 285 --disable-brlapi) brlapi="no" 286 ;; 287 --enable-profiler) profiler="yes" 288 ;; 289 --enable-cocoa) 290 cocoa="yes" ; 291 sdl="no" ; 292 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`" 293 ;; 294 --disable-gfx-check) check_gfx="no" 295 ;; 296 --disable-gcc-check) check_gcc="no" 297 ;; 298 --disable-system) softmmu="no" 299 ;; 300 --enable-system) softmmu="yes" 301 ;; 302 --disable-linux-user) linux_user="no" 303 ;; 304 --enable-linux-user) linux_user="yes" 305 ;; 306 --disable-darwin-user) darwin_user="no" 307 ;; 308 --enable-darwin-user) darwin_user="yes" 309 ;; 310 --enable-uname-release=*) uname_release="$optarg" 311 ;; 312 --sparc_cpu=*) 313 sparc_cpu="$optarg" 314 case $sparc_cpu in 315 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32" 316 target_cpu="sparc"; cpu="sparc" ;; 317 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32" 318 target_cpu="sparc"; cpu="sparc" ;; 319 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64" 320 target_cpu="sparc64"; cpu="sparc64" ;; 321 *) echo "undefined SPARC architecture. Exiting";exit 1;; 322 esac 323 ;; 324 --enable-werror) werror="yes" 325 ;; 326 --disable-werror) werror="no" 327 ;; 328 --disable-curses) curses="no" 329 ;; 330 --disable-nptl) nptl="no" 331 ;; 332 --enable-mixemu) mixemu="yes" 333 ;; 334 *) echo "ERROR: unknown option $opt"; show_help="yes" 335 ;; 336 esac 337done 338 339if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then 340 AIOLIBS= 341else 342 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically. 343 AIOLIBS="-lrt -lpthread" 344fi 345 346# default flags for all hosts 347CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing" 348LDFLAGS="$LDFLAGS -g" 349if test "$werror" = "yes" ; then 350CFLAGS="$CFLAGS -Werror" 351fi 352 353# 354# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right 355# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit) 356# 357case "$cpu" in 358 sparc) if test -z "$sparc_cpu" ; then 359 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__" 360 ARCH_LDFLAGS="-m32" 361 else 362 ARCH_CFLAGS="${SP_CFLAGS}" 363 ARCH_LDFLAGS="${SP_LDFLAGS}" 364 fi 365 ;; 366 sparc64) if test -z "$sparc_cpu" ; then 367 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__" 368 ARCH_LDFLAGS="-m64" 369 else 370 ARCH_CFLAGS="${SP_CFLAGS}" 371 ARCH_LDFLAGS="${SP_LDFLAGS}" 372 fi 373 ;; 374 s390) 375 ARCH_CFLAGS="-march=z900" 376 ;; 377 i386) 378 ARCH_CFLAGS="-m32" 379 ARCH_LDFLAGS="-m32" 380 ;; 381 x86_64) 382 ARCH_CFLAGS="-m64" 383 ARCH_LDFLAGS="-m64" 384 ;; 385esac 386 387if test x"$show_help" = x"yes" ; then 388cat << EOF 389 390Usage: configure [options] 391Options: [defaults in brackets after descriptions] 392 393EOF 394echo "Standard options:" 395echo " --help print this message" 396echo " --prefix=PREFIX install in PREFIX [$prefix]" 397echo " --interp-prefix=PREFIX where to find shared libraries, etc." 398echo " use %M for cpu name [$interp_prefix]" 399echo " --target-list=LIST set target list [$target_list]" 400echo "" 401echo "kqemu kernel acceleration support:" 402echo " --disable-kqemu disable kqemu support" 403echo "" 404echo "Advanced options (experts only):" 405echo " --source-path=PATH path of source code [$source_path]" 406echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 407echo " --cc=CC use C compiler CC [$cc]" 408echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc." 409echo " --make=MAKE use specified make [$make]" 410echo " --install=INSTALL use specified install [$install]" 411echo " --static enable static build [$static]" 412echo " --disable-werror disable compilation abort on warning" 413echo " --disable-sdl disable SDL" 414echo " --enable-cocoa enable COCOA (Mac OS X only)" 415echo " --enable-mingw32 enable Win32 cross compilation with mingw32" 416echo " --audio-drv-list=LIST set audio drivers list:" 417echo " Available drivers: $audio_possible_drivers" 418echo " --audio-card-list=LIST set list of additional emulated audio cards" 419echo " Available cards: ac97 adlib cs4231a gus" 420echo " --enable-mixemu enable mixer emulation" 421echo " --disable-brlapi disable BrlAPI" 422echo " --disable-vnc-tls disable TLS encryption for VNC server" 423echo " --disable-curses disable curses output" 424echo " --disable-nptl disable usermode NPTL support" 425echo " --enable-system enable all system emulation targets" 426echo " --disable-system disable all system emulation targets" 427echo " --enable-linux-user enable all linux usermode emulation targets" 428echo " --disable-linux-user disable all linux usermode emulation targets" 429echo " --enable-darwin-user enable all darwin usermode emulation targets" 430echo " --disable-darwin-user disable all darwin usermode emulation targets" 431echo " --fmod-lib path to FMOD library" 432echo " --fmod-inc path to FMOD includes" 433echo " --enable-uname-release=R Return R for uname -r in usermode emulation" 434echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9" 435echo "" 436echo "NOTE: The object files are built at the place where configure is launched" 437exit 1 438fi 439 440cc="${cross_prefix}${cc}" 441ar="${cross_prefix}${ar}" 442strip="${cross_prefix}${strip}" 443 444# check that the C compiler works. 445cat > $TMPC <<EOF 446int main(void) {} 447EOF 448 449if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then 450 : C compiler works ok 451else 452 echo "ERROR: \"$cc\" either does not exist or does not work" 453 exit 1 454fi 455 456if test "$mingw32" = "yes" ; then 457 linux="no" 458 EXESUF=".exe" 459 oss="no" 460fi 461 462# Check for gcc4, error if pre-gcc4 463if test "$check_gcc" = "yes" ; then 464 cat > $TMPC <<EOF 465#if __GNUC__ < 4 466#error gcc3 467#endif 468int main(){return 0;} 469EOF 470 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 471 echo "WARNING: \"$cc\" looks like gcc 4.x" 472 found_compat_cc="no" 473 if test "$gcc3_search" = "yes" ; then 474 echo "Looking for gcc 3.x" 475 for compat_cc in $gcc3_list ; do 476 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then 477 echo "Found \"$compat_cc\"" 478 cc="$cross_prefix$compat_cc" 479 found_compat_cc="yes" 480 break 481 fi 482 done 483 if test "$found_compat_cc" = "no" ; then 484 echo "gcc 3.x not found!" 485 fi 486 fi 487 if test "$found_compat_cc" = "no" ; then 488 echo "QEMU is known to have problems when compiled with gcc 4.x" 489 echo "It is recommended that you use gcc 3.x to build QEMU" 490 echo "To use this compiler anyway, configure with --disable-gcc-check" 491 exit 1; 492 fi 493 fi 494fi 495 496# 497# Solaris specific configure tool chain decisions 498# 499if test "$solaris" = "yes" ; then 500 # 501 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly 502 # override the check with --disable-gcc-check 503 # 504 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then 505 solgcc=`which $cc` 506 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then 507 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly." 508 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3" 509 echo "or get the latest patch from SunSolve for gcc" 510 exit 1 511 fi 512 fi 513 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"` 514 if test -z "$solinst" ; then 515 echo "Solaris install program not found. Use --install=/usr/ucb/install or" 516 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" 517 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" 518 exit 1 519 fi 520 if test "$solinst" = "/usr/sbin/install" ; then 521 echo "Error: Solaris /usr/sbin/install is not an appropriate install program." 522 echo "try ginstall from the GNU fileutils available from www.blastwave.org" 523 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" 524 exit 1 525 fi 526 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"` 527 if test -z "$sol_ar" ; then 528 echo "Error: No path includes ar" 529 if test -f /usr/ccs/bin/ar ; then 530 echo "Add /usr/ccs/bin to your path and rerun configure" 531 fi 532 exit 1 533 fi 534fi 535 536 537if test -z "$target_list" ; then 538# these targets are portable 539 if [ "$softmmu" = "yes" ] ; then 540 target_list="\ 541i386-softmmu \ 542x86_64-softmmu \ 543arm-softmmu \ 544cris-softmmu \ 545m68k-softmmu \ 546mips-softmmu \ 547mipsel-softmmu \ 548mips64-softmmu \ 549mips64el-softmmu \ 550ppc-softmmu \ 551ppcemb-softmmu \ 552ppc64-softmmu \ 553sh4-softmmu \ 554sh4eb-softmmu \ 555sparc-softmmu \ 556" 557 fi 558# the following are Linux specific 559 if [ "$linux_user" = "yes" ] ; then 560 target_list="${target_list}\ 561i386-linux-user \ 562x86_64-linux-user \ 563alpha-linux-user \ 564arm-linux-user \ 565armeb-linux-user \ 566cris-linux-user \ 567m68k-linux-user \ 568mips-linux-user \ 569mipsel-linux-user \ 570ppc-linux-user \ 571ppc64-linux-user \ 572ppc64abi32-linux-user \ 573sh4-linux-user \ 574sh4eb-linux-user \ 575sparc-linux-user \ 576sparc64-linux-user \ 577sparc32plus-linux-user \ 578" 579 fi 580# the following are Darwin specific 581 if [ "$darwin_user" = "yes" ] ; then 582 target_list="$target_list i386-darwin-user ppc-darwin-user" 583 fi 584else 585 target_list=`echo "$target_list" | sed -e 's/,/ /g'` 586fi 587if test -z "$target_list" ; then 588 echo "No targets enabled" 589 exit 1 590fi 591 592if test -z "$cross_prefix" ; then 593 594# --- 595# big/little endian test 596cat > $TMPC << EOF 597#include <inttypes.h> 598int main(int argc, char ** argv){ 599 volatile uint32_t i=0x01234567; 600 return (*((uint8_t*)(&i))) == 0x67; 601} 602EOF 603 604if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 605$TMPE && bigendian="yes" 606else 607echo big/little test failed 608fi 609 610else 611 612# if cross compiling, cannot launch a program, so make a static guess 613if test "$cpu" = "armv4b" \ 614 -o "$cpu" = "hppa" \ 615 -o "$cpu" = "m68k" \ 616 -o "$cpu" = "mips" \ 617 -o "$cpu" = "mips64" \ 618 -o "$cpu" = "powerpc" \ 619 -o "$cpu" = "s390" \ 620 -o "$cpu" = "sparc" \ 621 -o "$cpu" = "sparc64"; then 622 bigendian="yes" 623fi 624 625fi 626 627# host long bits test 628hostlongbits="32" 629if test "$cpu" = "x86_64" \ 630 -o "$cpu" = "alpha" \ 631 -o "$cpu" = "ia64" \ 632 -o "$cpu" = "sparc64"; then 633 hostlongbits="64" 634fi 635 636# check gcc options support 637cat > $TMPC <<EOF 638int main(void) { 639} 640EOF 641 642# Check host NPTL support 643cat > $TMPC <<EOF 644#include <sched.h> 645#include <linux/futex.h> 646void foo() 647{ 648#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT) 649#error bork 650#endif 651} 652EOF 653 654if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then 655 : 656else 657 nptl="no" 658fi 659 660########################################## 661# SDL probe 662 663sdl_too_old=no 664 665if test -z "$sdl" ; then 666 sdl_config="sdl-config" 667 sdl=no 668 sdl_static=no 669 670 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 671 # win32 cross compilation case 672 sdl_config="i386-mingw32msvc-sdl-config" 673 sdl=yes 674 else 675 # normal SDL probe 676cat > $TMPC << EOF 677#include <SDL.h> 678#undef main /* We don't want SDL to override our main() */ 679int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 680EOF 681 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 682 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 683 if test "$_sdlversion" -lt 121 ; then 684 sdl_too_old=yes 685 else 686 if test "$cocoa" = "no" ; then 687 sdl=yes 688 fi 689 fi 690 691 # static link with sdl ? 692 if test "$sdl" = "yes" ; then 693 aa="no" 694 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes" 695 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null` 696 if [ "$aa" = "yes" ] ; then 697 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 698 fi 699 700 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 701 sdl_static=yes 702 fi 703 fi # static link 704 fi # sdl compile test 705 fi # cross compilation 706else 707 # Make sure to disable cocoa if sdl was set 708 if test "$sdl" = "yes" ; then 709 cocoa="no" 710 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`" 711 fi 712fi # -z $sdl 713 714########################################## 715# VNC TLS detection 716if test "$vnc_tls" = "yes" ; then 717 `pkg-config gnutls` || vnc_tls="no" 718fi 719if test "$vnc_tls" = "yes" ; then 720 vnc_tls_cflags=`pkg-config --cflags gnutls` 721 vnc_tls_libs=`pkg-config --libs gnutls` 722fi 723 724########################################## 725# Sound support libraries probe 726 727audio_drv_probe() 728{ 729 drv=$1 730 hdr=$2 731 lib=$3 732 exp=$4 733 cfl=$5 734 cat > $TMPC << EOF 735#include <$hdr> 736int main(void) { $exp } 737EOF 738 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then 739 : 740 else 741 echo 742 echo "Error: $drv check failed" 743 echo "Make sure to have the $drv libs and headers installed." 744 echo 745 exit 1 746 fi 747} 748 749for drv in $audio_drv_list; do 750 case $drv in 751 alsa) 752 audio_drv_probe $drv alsa/asoundlib.h -lasound \ 753 "snd_pcm_t **handle; return snd_pcm_close(*handle);" 754 ;; 755 756 fmod) 757 if test -z $fmod_lib || test -z $fmod_inc; then 758 echo 759 echo "Error: You must specify path to FMOD library and headers" 760 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 761 echo 762 exit 1 763 fi 764 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc" 765 ;; 766 767 esd) 768 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);' 769 ;; 770 771 pa) 772 audio_drv_probe $drv pulse/simple.h -lpulse-simple \ 773 "pa_simple *s = NULL; pa_simple_free(s); return 0;" 774 ;; 775 776 esac 777done 778 779########################################## 780# BrlAPI probe 781 782if test -z "$brlapi" ; then 783 brlapi=no 784cat > $TMPC << EOF 785#include <brlapi.h> 786int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } 787EOF 788 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then 789 brlapi=yes 790 fi # brlapi compile test 791fi # -z $brlapi 792 793########################################## 794# curses probe 795 796if test "$curses" = "yes" ; then 797 curses=no 798 cat > $TMPC << EOF 799#include <curses.h> 800int main(void) { return curses_version(); } 801EOF 802 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then 803 curses=yes 804 fi 805fi # test "$curses" 806 807# Check if tools are available to build documentation. 808if [ -x "`which texi2html 2>/dev/null`" ] && \ 809 [ -x "`which pod2man 2>/dev/null`" ]; then 810 build_docs="yes" 811fi 812 813if test "$mingw32" = "yes" ; then 814 if test -z "$prefix" ; then 815 prefix="/c/Program Files/Qemu" 816 fi 817 mansuffix="" 818 datasuffix="" 819 docsuffix="" 820 binsuffix="" 821else 822 if test -z "$prefix" ; then 823 prefix="/usr/local" 824 fi 825 mansuffix="/share/man" 826 datasuffix="/share/qemu" 827 docsuffix="/share/doc/qemu" 828 binsuffix="/bin" 829fi 830 831echo "Install prefix $prefix" 832echo "BIOS directory $prefix$datasuffix" 833echo "binary directory $prefix$binsuffix" 834if test "$mingw32" = "no" ; then 835echo "Manual directory $prefix$mansuffix" 836echo "ELF interp prefix $interp_prefix" 837fi 838echo "Source path $source_path" 839echo "C compiler $cc" 840echo "Host C compiler $host_cc" 841echo "ARCH_CFLAGS $ARCH_CFLAGS" 842echo "make $make" 843echo "install $install" 844echo "host CPU $cpu" 845echo "host big endian $bigendian" 846echo "target list $target_list" 847echo "gprof enabled $gprof" 848echo "profiler $profiler" 849echo "static build $static" 850echo "-Werror enabled $werror" 851if test "$darwin" = "yes" ; then 852 echo "Cocoa support $cocoa" 853fi 854echo "SDL support $sdl" 855if test "$sdl" != "no" ; then 856 echo "SDL static link $sdl_static" 857fi 858echo "curses support $curses" 859echo "mingw32 support $mingw32" 860echo "Audio drivers $audio_drv_list" 861echo "Extra audio cards $audio_card_list" 862echo "Mixer emulation $mixemu" 863echo "VNC TLS support $vnc_tls" 864if test "$vnc_tls" = "yes" ; then 865 echo " TLS CFLAGS $vnc_tls_cflags" 866 echo " TLS LIBS $vnc_tls_libs" 867fi 868if test -n "$sparc_cpu"; then 869 echo "Target Sparc Arch $sparc_cpu" 870fi 871echo "kqemu support $kqemu" 872echo "brlapi support $brlapi" 873echo "Documentation $build_docs" 874[ ! -z "$uname_release" ] && \ 875echo "uname -r $uname_release" 876echo "NPTL support $nptl" 877 878if test $sdl_too_old = "yes"; then 879echo "-> Your SDL version is too old - please upgrade to have SDL support" 880fi 881if [ -s /tmp/qemu-$$-sdl-config.log ]; then 882 echo "The error log from compiling the libSDL test is: " 883 cat /tmp/qemu-$$-sdl-config.log 884fi 885rm -f /tmp/qemu-$$-sdl-config.log 886#if test "$sdl_static" = "no"; then 887# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 888#fi 889config_mak="config-host.mak" 890config_h="config-host.h" 891 892#echo "Creating $config_mak and $config_h" 893 894test -f $config_h && mv $config_h ${config_h}~ 895 896echo "# Automatically generated by configure - do not modify" > $config_mak 897echo "# Configured with: $0 $@" >> $config_mak 898echo "/* Automatically generated by configure - do not modify */" > $config_h 899 900echo "prefix=$prefix" >> $config_mak 901echo "bindir=\${prefix}$binsuffix" >> $config_mak 902echo "mandir=\${prefix}$mansuffix" >> $config_mak 903echo "datadir=\${prefix}$datasuffix" >> $config_mak 904echo "docdir=\${prefix}$docsuffix" >> $config_mak 905echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h 906echo "MAKE=$make" >> $config_mak 907echo "INSTALL=$install" >> $config_mak 908echo "CC=$cc" >> $config_mak 909echo "HOST_CC=$host_cc" >> $config_mak 910echo "AR=$ar" >> $config_mak 911echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak 912# XXX: only use CFLAGS and LDFLAGS ? 913# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross 914# compilation of dyngen tool (useful for win32 build on Linux host) 915echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak 916echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak 917echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak 918echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak 919echo "CFLAGS=$CFLAGS" >> $config_mak 920echo "LDFLAGS=$LDFLAGS" >> $config_mak 921echo "EXESUF=$EXESUF" >> $config_mak 922echo "AIOLIBS=$AIOLIBS" >> $config_mak 923case "$cpu" in 924 i386) 925 echo "ARCH=i386" >> $config_mak 926 echo "#define HOST_I386 1" >> $config_h 927 ;; 928 x86_64) 929 echo "ARCH=x86_64" >> $config_mak 930 echo "#define HOST_X86_64 1" >> $config_h 931 ;; 932 alpha) 933 echo "ARCH=alpha" >> $config_mak 934 echo "#define HOST_ALPHA 1" >> $config_h 935 ;; 936 armv4b) 937 echo "ARCH=arm" >> $config_mak 938 echo "#define HOST_ARM 1" >> $config_h 939 ;; 940 armv4l) 941 echo "ARCH=arm" >> $config_mak 942 echo "#define HOST_ARM 1" >> $config_h 943 ;; 944 cris) 945 echo "ARCH=cris" >> $config_mak 946 echo "#define HOST_CRIS 1" >> $config_h 947 ;; 948 hppa) 949 echo "ARCH=hppa" >> $config_mak 950 echo "#define HOST_HPPA 1" >> $config_h 951 ;; 952 ia64) 953 echo "ARCH=ia64" >> $config_mak 954 echo "#define HOST_IA64 1" >> $config_h 955 ;; 956 m68k) 957 echo "ARCH=m68k" >> $config_mak 958 echo "#define HOST_M68K 1" >> $config_h 959 ;; 960 mips) 961 echo "ARCH=mips" >> $config_mak 962 echo "#define HOST_MIPS 1" >> $config_h 963 ;; 964 mips64) 965 echo "ARCH=mips64" >> $config_mak 966 echo "#define HOST_MIPS64 1" >> $config_h 967 ;; 968 powerpc) 969 echo "ARCH=ppc" >> $config_mak 970 echo "#define HOST_PPC 1" >> $config_h 971 ;; 972 s390) 973 echo "ARCH=s390" >> $config_mak 974 echo "#define HOST_S390 1" >> $config_h 975 ;; 976 sparc) 977 echo "ARCH=sparc" >> $config_mak 978 echo "#define HOST_SPARC 1" >> $config_h 979 ;; 980 sparc64) 981 echo "ARCH=sparc64" >> $config_mak 982 echo "#define HOST_SPARC64 1" >> $config_h 983 ;; 984 *) 985 echo "Unsupported CPU = $cpu" 986 exit 1 987 ;; 988esac 989if test "$bigendian" = "yes" ; then 990 echo "WORDS_BIGENDIAN=yes" >> $config_mak 991 echo "#define WORDS_BIGENDIAN 1" >> $config_h 992fi 993echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h 994if test "$mingw32" = "yes" ; then 995 echo "CONFIG_WIN32=yes" >> $config_mak 996 echo "#define CONFIG_WIN32 1" >> $config_h 997else 998 cat > $TMPC << EOF 999#include <byteswap.h> 1000int main(void) { return bswap_32(0); } 1001EOF 1002 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then 1003 echo "#define HAVE_BYTESWAP_H 1" >> $config_h 1004 fi 1005fi 1006if test "$darwin" = "yes" ; then 1007 echo "CONFIG_DARWIN=yes" >> $config_mak 1008 echo "#define CONFIG_DARWIN 1" >> $config_h 1009fi 1010if test "$solaris" = "yes" ; then 1011 echo "CONFIG_SOLARIS=yes" >> $config_mak 1012 echo "#define HOST_SOLARIS $solarisrev" >> $config_h 1013 if test "$needs_libsunmath" = "yes" ; then 1014 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak 1015 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h 1016 fi 1017fi 1018if test -n "$sparc_cpu"; then 1019 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak 1020 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h 1021fi 1022if test "$gdbstub" = "yes" ; then 1023 echo "CONFIG_GDBSTUB=yes" >> $config_mak 1024 echo "#define CONFIG_GDBSTUB 1" >> $config_h 1025fi 1026if test "$gprof" = "yes" ; then 1027 echo "TARGET_GPROF=yes" >> $config_mak 1028 echo "#define HAVE_GPROF 1" >> $config_h 1029fi 1030if test "$static" = "yes" ; then 1031 echo "CONFIG_STATIC=yes" >> $config_mak 1032 echo "#define CONFIG_STATIC 1" >> $config_h 1033fi 1034if test $profiler = "yes" ; then 1035 echo "#define CONFIG_PROFILER 1" >> $config_h 1036fi 1037if test "$slirp" = "yes" ; then 1038 echo "CONFIG_SLIRP=yes" >> $config_mak 1039 echo "#define CONFIG_SLIRP 1" >> $config_h 1040fi 1041for card in $audio_card_list; do 1042 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'` 1043 echo "$def=yes" >> $config_mak 1044 echo "#define $def 1" >> $config_h 1045done 1046echo "#define AUDIO_DRIVERS \\" >> $config_h 1047for drv in $audio_drv_list; do 1048 echo " &${drv}_audio_driver, \\" >>$config_h 1049 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'` 1050 echo "$def=yes" >> $config_mak 1051 if test "$drv" = "fmod"; then 1052 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak 1053 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak 1054 fi 1055done 1056echo "" >>$config_h 1057if test "$mixemu" = "yes" ; then 1058 echo "CONFIG_MIXEMU=yes" >> $config_mak 1059 echo "#define CONFIG_MIXEMU 1" >> $config_h 1060fi 1061if test "$vnc_tls" = "yes" ; then 1062 echo "CONFIG_VNC_TLS=yes" >> $config_mak 1063 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak 1064 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak 1065 echo "#define CONFIG_VNC_TLS 1" >> $config_h 1066fi 1067qemu_version=`head $source_path/VERSION` 1068echo "VERSION=$qemu_version" >>$config_mak 1069echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h 1070 1071echo "SRC_PATH=$source_path" >> $config_mak 1072if [ "$source_path_used" = "yes" ]; then 1073 echo "VPATH=$source_path" >> $config_mak 1074fi 1075echo "TARGET_DIRS=$target_list" >> $config_mak 1076if [ "$build_docs" = "yes" ] ; then 1077 echo "BUILD_DOCS=yes" >> $config_mak 1078fi 1079if test "$static" = "yes"; then 1080 sdl1=$sdl_static 1081else 1082 sdl1=$sdl 1083fi 1084if test "$sdl1" = "yes" ; then 1085 echo "#define CONFIG_SDL 1" >> $config_h 1086 echo "CONFIG_SDL=yes" >> $config_mak 1087 if test "$target_softmmu" = "no" -o "$static" = "yes"; then 1088 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 1089 else 1090 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 1091 fi 1092 if [ "${aa}" = "yes" ] ; then 1093 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak 1094 else 1095 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 1096 fi 1097fi 1098if test "$cocoa" = "yes" ; then 1099 echo "#define CONFIG_COCOA 1" >> $config_h 1100 echo "CONFIG_COCOA=yes" >> $config_mak 1101fi 1102if test "$curses" = "yes" ; then 1103 echo "#define CONFIG_CURSES 1" >> $config_h 1104 echo "CONFIG_CURSES=yes" >> $config_mak 1105 echo "CURSES_LIBS=-lcurses" >> $config_mak 1106fi 1107if test "$brlapi" = "yes" ; then 1108 echo "CONFIG_BRLAPI=yes" >> $config_mak 1109 echo "#define CONFIG_BRLAPI 1" >> $config_h 1110 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak 1111fi 1112 1113# XXX: suppress that 1114if [ "$bsd" = "yes" ] ; then 1115 echo "#define O_LARGEFILE 0" >> $config_h 1116 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 1117 echo "#define _BSD 1" >> $config_h 1118fi 1119 1120echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h 1121 1122tools= 1123if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then 1124 tools="qemu-img\$(EXESUF) $tools" 1125 if [ "$linux" = "yes" ] ; then 1126 tools="qemu-nbd\$(EXESUF) $tools" 1127 fi 1128fi 1129echo "TOOLS=$tools" >> $config_mak 1130 1131test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 1132 1133for target in $target_list; do 1134target_dir="$target" 1135config_mak=$target_dir/config.mak 1136config_h=$target_dir/config.h 1137target_cpu=`echo $target | cut -d '-' -f 1` 1138target_bigendian="no" 1139[ "$target_cpu" = "armeb" ] && target_bigendian=yes 1140[ "$target_cpu" = "m68k" ] && target_bigendian=yes 1141[ "$target_cpu" = "mips" ] && target_bigendian=yes 1142[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes 1143[ "$target_cpu" = "mips64" ] && target_bigendian=yes 1144[ "$target_cpu" = "ppc" ] && target_bigendian=yes 1145[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes 1146[ "$target_cpu" = "ppc64" ] && target_bigendian=yes 1147[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes 1148[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes 1149[ "$target_cpu" = "sparc" ] && target_bigendian=yes 1150[ "$target_cpu" = "sparc64" ] && target_bigendian=yes 1151[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes 1152target_softmmu="no" 1153target_user_only="no" 1154target_linux_user="no" 1155target_darwin_user="no" 1156case "$target" in 1157 ${target_cpu}-softmmu) 1158 target_softmmu="yes" 1159 ;; 1160 ${target_cpu}-linux-user) 1161 target_user_only="yes" 1162 target_linux_user="yes" 1163 ;; 1164 ${target_cpu}-darwin-user) 1165 target_user_only="yes" 1166 target_darwin_user="yes" 1167 ;; 1168 *) 1169 echo "ERROR: Target '$target' not recognised" 1170 exit 1 1171 ;; 1172esac 1173 1174if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ 1175 -a "$sdl" = "no" -a "$cocoa" = "no" ; then 1176 echo "ERROR: QEMU requires SDL or Cocoa for graphical output" 1177 echo "To build QEMU without graphical output configure with --disable-gfx-check" 1178 echo "Note that this will disable all output from the virtual graphics card" 1179 echo "except through VNC or curses." 1180 exit 1; 1181fi 1182 1183#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 1184 1185test -f $config_h && mv $config_h ${config_h}~ 1186 1187mkdir -p $target_dir 1188mkdir -p $target_dir/fpu 1189mkdir -p $target_dir/tcg 1190if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then 1191 mkdir -p $target_dir/nwfpe 1192fi 1193 1194# 1195# don't use ln -sf as not all "ln -sf" over write the file/link 1196# 1197rm -f $target_dir/Makefile 1198ln -s $source_path/Makefile.target $target_dir/Makefile 1199 1200 1201echo "# Automatically generated by configure - do not modify" > $config_mak 1202echo "/* Automatically generated by configure - do not modify */" > $config_h 1203 1204 1205echo "include ../config-host.mak" >> $config_mak 1206echo "#include \"../config-host.h\"" >> $config_h 1207 1208bflt="no" 1209elfload32="no" 1210target_nptl="no" 1211interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 1212echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 1213 1214case "$target_cpu" in 1215 i386) 1216 echo "TARGET_ARCH=i386" >> $config_mak 1217 echo "#define TARGET_ARCH \"i386\"" >> $config_h 1218 echo "#define TARGET_I386 1" >> $config_h 1219 if test $kqemu = "yes" -a "$target_softmmu" = "yes" 1220 then 1221 echo "#define USE_KQEMU 1" >> $config_h 1222 fi 1223 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.` 1224 if test -n "$gcc3minver" && test $gcc3minver -gt 3 1225 then 1226 echo "HAVE_GT_GCC_3_3=true" >> $config_mak 1227 else 1228 echo "HAVE_GT_GCC_3_3=false" >> $config_mak 1229 fi 1230 ;; 1231 x86_64) 1232 echo "TARGET_ARCH=x86_64" >> $config_mak 1233 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h 1234 echo "#define TARGET_I386 1" >> $config_h 1235 echo "#define TARGET_X86_64 1" >> $config_h 1236 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" 1237 then 1238 echo "#define USE_KQEMU 1" >> $config_h 1239 fi 1240 ;; 1241 alpha) 1242 echo "TARGET_ARCH=alpha" >> $config_mak 1243 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak 1244 echo "#define TARGET_ARCH \"alpha\"" >> $config_h 1245 echo "#define TARGET_ALPHA 1" >> $config_h 1246 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h 1247 ;; 1248 arm|armeb) 1249 echo "TARGET_ARCH=arm" >> $config_mak 1250 echo "#define TARGET_ARCH \"arm\"" >> $config_h 1251 echo "#define TARGET_ARM 1" >> $config_h 1252 bflt="yes" 1253 target_nptl="yes" 1254 ;; 1255 cris) 1256 echo "TARGET_ARCH=cris" >> $config_mak 1257 echo "#define TARGET_ARCH \"cris\"" >> $config_h 1258 echo "#define TARGET_CRIS 1" >> $config_h 1259 ;; 1260 m68k) 1261 echo "TARGET_ARCH=m68k" >> $config_mak 1262 echo "#define TARGET_ARCH \"m68k\"" >> $config_h 1263 echo "#define TARGET_M68K 1" >> $config_h 1264 bflt="yes" 1265 ;; 1266 mips|mipsel) 1267 echo "TARGET_ARCH=mips" >> $config_mak 1268 echo "#define TARGET_ARCH \"mips\"" >> $config_h 1269 echo "#define TARGET_MIPS 1" >> $config_h 1270 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h 1271 ;; 1272 mipsn32|mipsn32el) 1273 echo "TARGET_ARCH=mipsn32" >> $config_mak 1274 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h 1275 echo "#define TARGET_MIPS 1" >> $config_h 1276 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h 1277 ;; 1278 mips64|mips64el) 1279 echo "TARGET_ARCH=mips64" >> $config_mak 1280 echo "#define TARGET_ARCH \"mips64\"" >> $config_h 1281 echo "#define TARGET_MIPS 1" >> $config_h 1282 echo "#define TARGET_MIPS64 1" >> $config_h 1283 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h 1284 ;; 1285 ppc) 1286 echo "TARGET_ARCH=ppc" >> $config_mak 1287 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak 1288 echo "#define TARGET_ARCH \"ppc\"" >> $config_h 1289 echo "#define TARGET_PPC 1" >> $config_h 1290 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h 1291 ;; 1292 ppcemb) 1293 echo "TARGET_ARCH=ppcemb" >> $config_mak 1294 echo "TARGET_ABI_DIR=ppc" >> $config_mak 1295 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak 1296 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h 1297 echo "#define TARGET_PPC 1" >> $config_h 1298 echo "#define TARGET_PPCEMB 1" >> $config_h 1299 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h 1300 ;; 1301 ppc64) 1302 echo "TARGET_ARCH=ppc64" >> $config_mak 1303 echo "TARGET_ABI_DIR=ppc" >> $config_mak 1304 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak 1305 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 1306 echo "#define TARGET_PPC 1" >> $config_h 1307 echo "#define TARGET_PPC64 1" >> $config_h 1308 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h 1309 ;; 1310 ppc64abi32) 1311 echo "TARGET_ARCH=ppc64" >> $config_mak 1312 echo "TARGET_ABI_DIR=ppc" >> $config_mak 1313 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak 1314 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak 1315 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 1316 echo "#define TARGET_PPC 1" >> $config_h 1317 echo "#define TARGET_PPC64 1" >> $config_h 1318 echo "#define TARGET_ABI32 1" >> $config_h 1319 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h 1320 ;; 1321 sh4|sh4eb) 1322 echo "TARGET_ARCH=sh4" >> $config_mak 1323 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak 1324 echo "#define TARGET_ARCH \"sh4\"" >> $config_h 1325 echo "#define TARGET_SH4 1" >> $config_h 1326 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h 1327 bflt="yes" 1328 ;; 1329 sparc) 1330 echo "TARGET_ARCH=sparc" >> $config_mak 1331 echo "#define TARGET_ARCH \"sparc\"" >> $config_h 1332 echo "#define TARGET_SPARC 1" >> $config_h 1333 ;; 1334 sparc64) 1335 echo "TARGET_ARCH=sparc64" >> $config_mak 1336 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 1337 echo "#define TARGET_SPARC 1" >> $config_h 1338 echo "#define TARGET_SPARC64 1" >> $config_h 1339 elfload32="yes" 1340 ;; 1341 sparc32plus) 1342 echo "TARGET_ARCH=sparc64" >> $config_mak 1343 echo "TARGET_ABI_DIR=sparc" >> $config_mak 1344 echo "TARGET_ARCH2=sparc32plus" >> $config_mak 1345 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 1346 echo "#define TARGET_SPARC 1" >> $config_h 1347 echo "#define TARGET_SPARC64 1" >> $config_h 1348 echo "#define TARGET_ABI32 1" >> $config_h 1349 ;; 1350 *) 1351 echo "Unsupported target CPU" 1352 exit 1 1353 ;; 1354esac 1355if test "$target_bigendian" = "yes" ; then 1356 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 1357 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 1358fi 1359if test "$target_softmmu" = "yes" ; then 1360 echo "CONFIG_SOFTMMU=yes" >> $config_mak 1361 echo "#define CONFIG_SOFTMMU 1" >> $config_h 1362fi 1363if test "$target_user_only" = "yes" ; then 1364 echo "CONFIG_USER_ONLY=yes" >> $config_mak 1365 echo "#define CONFIG_USER_ONLY 1" >> $config_h 1366fi 1367if test "$target_linux_user" = "yes" ; then 1368 echo "CONFIG_LINUX_USER=yes" >> $config_mak 1369 echo "#define CONFIG_LINUX_USER 1" >> $config_h 1370fi 1371if test "$target_darwin_user" = "yes" ; then 1372 echo "CONFIG_DARWIN_USER=yes" >> $config_mak 1373 echo "#define CONFIG_DARWIN_USER 1" >> $config_h 1374fi 1375 1376if test "$target_cpu" = "arm" \ 1377 -o "$target_cpu" = "armeb" \ 1378 -o "$target_cpu" = "m68k" \ 1379 -o "$target_cpu" = "mips" \ 1380 -o "$target_cpu" = "mipsel" \ 1381 -o "$target_cpu" = "mipsn32" \ 1382 -o "$target_cpu" = "mipsn32el" \ 1383 -o "$target_cpu" = "mips64" \ 1384 -o "$target_cpu" = "mips64el" \ 1385 -o "$target_cpu" = "sparc" \ 1386 -o "$target_cpu" = "sparc64" \ 1387 -o "$target_cpu" = "sparc32plus"; then 1388 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 1389 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 1390fi 1391if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 1392 echo "TARGET_HAS_BFLT=yes" >> $config_mak 1393 echo "#define TARGET_HAS_BFLT 1" >> $config_h 1394fi 1395if test "$target_user_only" = "yes" \ 1396 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then 1397 echo "#define USE_NPTL 1" >> $config_h 1398fi 1399# 32 bit ELF loader in addition to native 64 bit loader? 1400if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then 1401 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak 1402 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h 1403fi 1404 1405test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 1406 1407done # for target in $targets 1408 1409# build tree in object directory if source path is different from current one 1410if test "$source_path_used" = "yes" ; then 1411 DIRS="tests tests/cris slirp audio" 1412 FILES="Makefile tests/Makefile" 1413 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" 1414 FILES="$FILES tests/test-mmap.c" 1415 for dir in $DIRS ; do 1416 mkdir -p $dir 1417 done 1418 # remove the link and recreate it, as not all "ln -sf" overwrite the link 1419 for f in $FILES ; do 1420 rm -f $f 1421 ln -s $source_path/$f $f 1422 done 1423fi 1424 1425rm -f $TMPO $TMPC $TMPE $TMPS 1426