target-alpha: factorize load/store code
[qemu/qemu-JZ.git] / configure
blob826da7c01aeb2f956b7fdad8ac749f0aa42d60a1
1 #!/bin/sh
3 # qemu configure script (c) 2003 Fabrice Bellard
5 # set temporary file name
6 if test ! -z "$TMPDIR" ; then
7 TMPDIR1="${TMPDIR}"
8 elif test ! -z "$TEMPDIR" ; then
9 TMPDIR1="${TEMPDIR}"
10 else
11 TMPDIR1="/tmp"
14 TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15 TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16 TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17 TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
19 # default parameters
20 prefix=""
21 interp_prefix="/usr/gnemul/qemu-%M"
22 static="no"
23 cross_prefix=""
24 cc="gcc"
25 gcc3_search="yes"
26 gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
27 audio_drv_list=""
28 audio_card_list=""
29 host_cc="gcc"
30 ar="ar"
31 make="make"
32 install="install"
33 strip="strip"
34 cpu=`uname -m`
35 target_list=""
36 case "$cpu" in
37 i386|i486|i586|i686|i86pc|BePC)
38 cpu="i386"
40 x86_64|amd64)
41 cpu="x86_64"
43 alpha)
44 cpu="alpha"
46 armv*b)
47 cpu="armv4b"
49 armv*l)
50 cpu="armv4l"
52 cris)
53 cpu="cris"
55 parisc|parisc64)
56 cpu="hppa"
58 ia64)
59 cpu="ia64"
61 m68k)
62 cpu="m68k"
64 mips)
65 cpu="mips"
67 mips64)
68 cpu="mips64"
70 "Power Macintosh"|ppc|ppc64)
71 cpu="powerpc"
73 s390*)
74 cpu="s390"
76 sparc|sun4[cdmuv])
77 cpu="sparc"
79 sparc64)
80 cpu="sparc64"
83 cpu="unknown"
85 esac
86 gprof="no"
87 bigendian="no"
88 mingw32="no"
89 EXESUF=""
90 gdbstub="yes"
91 slirp="yes"
92 vde="yes"
93 fmod_lib=""
94 fmod_inc=""
95 oss_lib=""
96 vnc_tls="yes"
97 bsd="no"
98 linux="no"
99 kqemu="no"
100 profiler="no"
101 cocoa="no"
102 check_gfx="yes"
103 check_gcc="yes"
104 softmmu="yes"
105 linux_user="no"
106 darwin_user="no"
107 build_docs="no"
108 uname_release=""
109 curses="yes"
110 aio="yes"
111 nptl="yes"
112 mixemu="no"
113 bluez="yes"
114 signalfd="no"
115 eventfd="no"
117 # OS specific
118 targetos=`uname -s`
119 case $targetos in
120 CYGWIN*)
121 mingw32="yes"
122 OS_CFLAGS="-mno-cygwin"
123 if [ "$cpu" = "i386" ] ; then
124 kqemu="yes"
126 audio_possible_drivers="sdl"
128 MINGW32*)
129 mingw32="yes"
130 if [ "$cpu" = "i386" ] ; then
131 kqemu="yes"
133 audio_possible_drivers="dsound sdl fmod"
135 GNU/kFreeBSD)
136 audio_drv_list="oss"
137 audio_possible_drivers="oss sdl esd pa"
138 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
139 kqemu="yes"
142 FreeBSD)
143 bsd="yes"
144 audio_drv_list="oss"
145 audio_possible_drivers="oss sdl esd pa"
146 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
147 kqemu="yes"
150 NetBSD)
151 bsd="yes"
152 audio_drv_list="oss"
153 audio_possible_drivers="oss sdl esd"
155 OpenBSD)
156 bsd="yes"
157 openbsd="yes"
158 audio_drv_list="oss"
159 audio_possible_drivers="oss sdl esd"
160 oss_lib="-lossaudio"
162 Darwin)
163 bsd="yes"
164 darwin="yes"
165 darwin_user="yes"
166 cocoa="yes"
167 audio_drv_list="coreaudio"
168 audio_possible_drivers="coreaudio sdl fmod"
169 OS_CFLAGS="-mdynamic-no-pic"
170 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
172 SunOS)
173 solaris="yes"
174 make="gmake"
175 install="ginstall"
176 needs_libsunmath="no"
177 solarisrev=`uname -r | cut -f2 -d.`
178 # have to select again, because `uname -m` returns i86pc
179 # even on an x86_64 box.
180 solariscpu=`isainfo -k`
181 if test "${solariscpu}" = "amd64" ; then
182 cpu="x86_64"
184 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
185 if test "$solarisrev" -le 9 ; then
186 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
187 needs_libsunmath="yes"
188 else
189 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
190 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
191 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
192 echo "Studio 11 can be downloaded from www.sun.com."
193 exit 1
196 if test "$solarisrev" -ge 9 ; then
197 kqemu="yes"
200 if test -f /usr/include/sys/soundcard.h ; then
201 audio_drv_list="oss"
203 audio_possible_drivers="oss sdl"
206 audio_drv_list="oss"
207 audio_possible_drivers="oss alsa sdl esd pa"
208 linux="yes"
209 linux_user="yes"
210 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
211 kqemu="yes"
212 audio_possible_drivers="$audio_possible_drivers fmod"
215 esac
217 if [ "$bsd" = "yes" ] ; then
218 if [ "$darwin" != "yes" ] ; then
219 make="gmake"
223 # find source path
224 source_path=`dirname "$0"`
225 source_path_used="no"
226 workdir=`pwd`
227 if [ -z "$source_path" ]; then
228 source_path=$workdir
229 else
230 source_path=`cd "$source_path"; pwd`
232 [ -f "$workdir/vl.c" ] || source_path_used="yes"
234 werror="no"
235 # generate compile errors on warnings for development builds
236 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
237 #werror="yes";
240 for opt do
241 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
242 case "$opt" in
243 --help|-h) show_help=yes
245 --prefix=*) prefix="$optarg"
247 --interp-prefix=*) interp_prefix="$optarg"
249 --source-path=*) source_path="$optarg"
250 source_path_used="yes"
252 --cross-prefix=*) cross_prefix="$optarg"
254 --cc=*) cc="$optarg"
255 gcc3_search="no"
257 --host-cc=*) host_cc="$optarg"
259 --make=*) make="$optarg"
261 --install=*) install="$optarg"
263 --extra-cflags=*) CFLAGS="$optarg"
265 --extra-ldflags=*) LDFLAGS="$optarg"
267 --cpu=*) cpu="$optarg"
269 --target-list=*) target_list="$optarg"
271 --enable-gprof) gprof="yes"
273 --static) static="yes"
275 --disable-sdl) sdl="no"
277 --fmod-lib=*) fmod_lib="$optarg"
279 --fmod-inc=*) fmod_inc="$optarg"
281 --oss-lib=*) oss_lib="$optarg"
283 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
285 --audio-drv-list=*) audio_drv_list="$optarg"
287 --disable-vnc-tls) vnc_tls="no"
289 --disable-slirp) slirp="no"
291 --disable-vde) vde="no"
293 --disable-kqemu) kqemu="no"
295 --disable-brlapi) brlapi="no"
297 --disable-bluez) bluez="no"
299 --enable-profiler) profiler="yes"
301 --enable-cocoa)
302 cocoa="yes" ;
303 sdl="no" ;
304 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
306 --disable-gfx-check) check_gfx="no"
308 --disable-gcc-check) check_gcc="no"
310 --disable-system) softmmu="no"
312 --enable-system) softmmu="yes"
314 --disable-linux-user) linux_user="no"
316 --enable-linux-user) linux_user="yes"
318 --disable-darwin-user) darwin_user="no"
320 --enable-darwin-user) darwin_user="yes"
322 --enable-uname-release=*) uname_release="$optarg"
324 --sparc_cpu=*)
325 sparc_cpu="$optarg"
326 case $sparc_cpu in
327 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
328 target_cpu="sparc"; cpu="sparc" ;;
329 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
330 target_cpu="sparc"; cpu="sparc" ;;
331 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
332 target_cpu="sparc64"; cpu="sparc64" ;;
333 *) echo "undefined SPARC architecture. Exiting";exit 1;;
334 esac
336 --enable-werror) werror="yes"
338 --disable-werror) werror="no"
340 --disable-curses) curses="no"
342 --disable-nptl) nptl="no"
344 --enable-mixemu) mixemu="yes"
346 --disable-aio) aio="no"
348 *) echo "ERROR: unknown option $opt"; show_help="yes"
350 esac
351 done
353 # default flags for all hosts
354 CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
355 CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
356 LDFLAGS="$LDFLAGS -g"
357 if test "$werror" = "yes" ; then
358 CFLAGS="$CFLAGS -Werror"
361 if ld --version 2>/dev/null | grep -q "GNU ld" ; then
362 LDFLAGS="$LDFLAGS -Wl,--warn-common"
366 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
367 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
369 case "$cpu" in
370 sparc) if test -z "$sparc_cpu" ; then
371 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
372 ARCH_LDFLAGS="-m32"
373 else
374 ARCH_CFLAGS="${SP_CFLAGS}"
375 ARCH_LDFLAGS="${SP_LDFLAGS}"
378 sparc64) if test -z "$sparc_cpu" ; then
379 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
380 ARCH_LDFLAGS="-m64"
381 else
382 ARCH_CFLAGS="${SP_CFLAGS}"
383 ARCH_LDFLAGS="${SP_LDFLAGS}"
386 s390)
387 ARCH_CFLAGS="-march=z900"
389 i386)
390 ARCH_CFLAGS="-m32"
391 ARCH_LDFLAGS="-m32"
393 x86_64)
394 ARCH_CFLAGS="-m64"
395 ARCH_LDFLAGS="-m64"
397 esac
399 if test x"$show_help" = x"yes" ; then
400 cat << EOF
402 Usage: configure [options]
403 Options: [defaults in brackets after descriptions]
406 echo "Standard options:"
407 echo " --help print this message"
408 echo " --prefix=PREFIX install in PREFIX [$prefix]"
409 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
410 echo " use %M for cpu name [$interp_prefix]"
411 echo " --target-list=LIST set target list [$target_list]"
412 echo ""
413 echo "kqemu kernel acceleration support:"
414 echo " --disable-kqemu disable kqemu support"
415 echo ""
416 echo "Advanced options (experts only):"
417 echo " --source-path=PATH path of source code [$source_path]"
418 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
419 echo " --cc=CC use C compiler CC [$cc]"
420 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
421 echo " --make=MAKE use specified make [$make]"
422 echo " --install=INSTALL use specified install [$install]"
423 echo " --static enable static build [$static]"
424 echo " --disable-werror disable compilation abort on warning"
425 echo " --disable-sdl disable SDL"
426 echo " --enable-cocoa enable COCOA (Mac OS X only)"
427 echo " --audio-drv-list=LIST set audio drivers list:"
428 echo " Available drivers: $audio_possible_drivers"
429 echo " --audio-card-list=LIST set list of additional emulated audio cards"
430 echo " Available cards: ac97 adlib cs4231a gus"
431 echo " --enable-mixemu enable mixer emulation"
432 echo " --disable-brlapi disable BrlAPI"
433 echo " --disable-vnc-tls disable TLS encryption for VNC server"
434 echo " --disable-curses disable curses output"
435 echo " --disable-bluez disable bluez stack connectivity"
436 echo " --disable-nptl disable usermode NPTL support"
437 echo " --enable-system enable all system emulation targets"
438 echo " --disable-system disable all system emulation targets"
439 echo " --enable-linux-user enable all linux usermode emulation targets"
440 echo " --disable-linux-user disable all linux usermode emulation targets"
441 echo " --enable-darwin-user enable all darwin usermode emulation targets"
442 echo " --disable-darwin-user disable all darwin usermode emulation targets"
443 echo " --fmod-lib path to FMOD library"
444 echo " --fmod-inc path to FMOD includes"
445 echo " --oss-lib path to OSS library"
446 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
447 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
448 echo " --disable-vde disable support for vde network"
449 echo " --disable-aio disable AIO support"
450 echo ""
451 echo "NOTE: The object files are built at the place where configure is launched"
452 exit 1
455 cc="${cross_prefix}${cc}"
456 ar="${cross_prefix}${ar}"
457 strip="${cross_prefix}${strip}"
459 # check that the C compiler works.
460 cat > $TMPC <<EOF
461 int main(void) {}
464 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
465 : C compiler works ok
466 else
467 echo "ERROR: \"$cc\" either does not exist or does not work"
468 exit 1
471 # check compiler to see if we're on mingw32
472 cat > $TMPC <<EOF
473 #include <windows.h>
474 #ifndef _WIN32
475 #error not windows
476 #endif
477 int main(void) {}
480 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
481 mingw32="yes"
484 if test "$mingw32" = "yes" ; then
485 linux="no"
486 EXESUF=".exe"
487 oss="no"
488 linux_user="no"
491 if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
492 AIOLIBS=
493 elif [ "$bsd" = "yes" ]; then
494 AIOLIBS="-lpthread"
495 else
496 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
497 AIOLIBS="-lrt -lpthread"
500 # Check for gcc4, error if pre-gcc4
501 if test "$check_gcc" = "yes" ; then
502 cat > $TMPC <<EOF
503 #if __GNUC__ < 4
504 #error gcc3
505 #endif
506 int main(){return 0;}
508 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
509 echo "WARNING: \"$cc\" looks like gcc 4.x"
510 found_compat_cc="no"
511 if test "$gcc3_search" = "yes" ; then
512 echo "Looking for gcc 3.x"
513 for compat_cc in $gcc3_list ; do
514 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
515 echo "Found \"$compat_cc\""
516 cc="$cross_prefix$compat_cc"
517 found_compat_cc="yes"
518 break
520 done
521 if test "$found_compat_cc" = "no" ; then
522 echo "gcc 3.x not found!"
525 if test "$found_compat_cc" = "no" ; then
526 echo "QEMU is known to have problems when compiled with gcc 4.x"
527 echo "It is recommended that you use gcc 3.x to build QEMU"
528 echo "To use this compiler anyway, configure with --disable-gcc-check"
529 exit 1;
535 # Solaris specific configure tool chain decisions
537 if test "$solaris" = "yes" ; then
539 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
540 # override the check with --disable-gcc-check
542 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
543 solgcc=`which $cc`
544 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
545 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
546 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
547 echo "or get the latest patch from SunSolve for gcc"
548 exit 1
551 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
552 if test -z "$solinst" ; then
553 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
554 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
555 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
556 exit 1
558 if test "$solinst" = "/usr/sbin/install" ; then
559 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
560 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
561 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
562 exit 1
564 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
565 if test -z "$sol_ar" ; then
566 echo "Error: No path includes ar"
567 if test -f /usr/ccs/bin/ar ; then
568 echo "Add /usr/ccs/bin to your path and rerun configure"
570 exit 1
575 if test -z "$target_list" ; then
576 # these targets are portable
577 if [ "$softmmu" = "yes" ] ; then
578 target_list="\
579 i386-softmmu \
580 x86_64-softmmu \
581 arm-softmmu \
582 cris-softmmu \
583 m68k-softmmu \
584 mips-softmmu \
585 mipsel-softmmu \
586 mips64-softmmu \
587 mips64el-softmmu \
588 ppc-softmmu \
589 ppcemb-softmmu \
590 ppc64-softmmu \
591 sh4-softmmu \
592 sh4eb-softmmu \
593 sparc-softmmu \
596 # the following are Linux specific
597 if [ "$linux_user" = "yes" ] ; then
598 target_list="${target_list}\
599 i386-linux-user \
600 x86_64-linux-user \
601 alpha-linux-user \
602 arm-linux-user \
603 armeb-linux-user \
604 cris-linux-user \
605 m68k-linux-user \
606 mips-linux-user \
607 mipsel-linux-user \
608 ppc-linux-user \
609 ppc64-linux-user \
610 ppc64abi32-linux-user \
611 sh4-linux-user \
612 sh4eb-linux-user \
613 sparc-linux-user \
614 sparc64-linux-user \
615 sparc32plus-linux-user \
618 # the following are Darwin specific
619 if [ "$darwin_user" = "yes" ] ; then
620 target_list="$target_list i386-darwin-user ppc-darwin-user"
622 else
623 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
625 if test -z "$target_list" ; then
626 echo "No targets enabled"
627 exit 1
630 if test -z "$cross_prefix" ; then
632 # ---
633 # big/little endian test
634 cat > $TMPC << EOF
635 #include <inttypes.h>
636 int main(int argc, char ** argv){
637 volatile uint32_t i=0x01234567;
638 return (*((uint8_t*)(&i))) == 0x67;
642 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
643 $TMPE && bigendian="yes"
644 else
645 echo big/little test failed
648 else
650 # if cross compiling, cannot launch a program, so make a static guess
651 if test "$cpu" = "armv4b" \
652 -o "$cpu" = "hppa" \
653 -o "$cpu" = "m68k" \
654 -o "$cpu" = "mips" \
655 -o "$cpu" = "mips64" \
656 -o "$cpu" = "powerpc" \
657 -o "$cpu" = "s390" \
658 -o "$cpu" = "sparc" \
659 -o "$cpu" = "sparc64"; then
660 bigendian="yes"
665 # host long bits test
666 hostlongbits="32"
667 if test "$cpu" = "x86_64" \
668 -o "$cpu" = "alpha" \
669 -o "$cpu" = "ia64" \
670 -o "$cpu" = "sparc64"; then
671 hostlongbits="64"
674 # ppc specific hostlongbits selection
675 if test "$cpu" = "powerpc" ; then
676 cat > $TMPC <<EOF
677 int main(void){return sizeof(long);}
680 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null; then
681 $TMPE
682 case $? in
683 4) hostlongbits="32";;
684 8) hostlongbits="64";;
685 *) echo "Couldn't determine bits per long value"; exit 1;;
686 esac
687 else
688 echo hostlongbits test failed
689 exit 1
693 # check gcc options support
694 cat > $TMPC <<EOF
695 int main(void) {
699 # Check host NPTL support
700 cat > $TMPC <<EOF
701 #include <sched.h>
702 #include <linux/futex.h>
703 void foo()
705 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
706 #error bork
707 #endif
711 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
713 else
714 nptl="no"
717 ##########################################
718 # SDL probe
720 sdl_too_old=no
722 if test -z "$sdl" ; then
723 sdl_config="sdl-config"
724 sdl=no
725 sdl_static=no
727 cat > $TMPC << EOF
728 #include <SDL.h>
729 #undef main /* We don't want SDL to override our main() */
730 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
732 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
733 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
734 if test "$_sdlversion" -lt 121 ; then
735 sdl_too_old=yes
736 else
737 if test "$cocoa" = "no" ; then
738 sdl=yes
742 # static link with sdl ?
743 if test "$sdl" = "yes" ; then
744 aa="no"
745 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
746 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
747 if [ "$aa" = "yes" ] ; then
748 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
751 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
752 sdl_static=yes
754 fi # static link
755 fi # sdl compile test
756 else
757 # Make sure to disable cocoa if sdl was set
758 if test "$sdl" = "yes" ; then
759 cocoa="no"
760 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
762 fi # -z $sdl
764 ##########################################
765 # VNC TLS detection
766 if test "$vnc_tls" = "yes" ; then
767 cat > $TMPC <<EOF
768 #include <gnutls/gnutls.h>
769 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
771 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
772 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
773 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
774 $vnc_tls_libs 2> /dev/null ; then
776 else
777 vnc_tls="no"
781 ##########################################
782 # vde libraries probe
783 if test "$vde" = "yes" ; then
784 cat > $TMPC << EOF
785 #include <libvdeplug.h>
786 int main(void)
788 struct vde_open_args a = {0, 0, 0};
789 vde_open("", "", &a);
790 return 0;
793 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
795 else
796 vde="no"
800 ##########################################
801 # Sound support libraries probe
803 audio_drv_probe()
805 drv=$1
806 hdr=$2
807 lib=$3
808 exp=$4
809 cfl=$5
810 cat > $TMPC << EOF
811 #include <$hdr>
812 int main(void) { $exp }
814 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
816 else
817 echo
818 echo "Error: $drv check failed"
819 echo "Make sure to have the $drv libs and headers installed."
820 echo
821 exit 1
825 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
826 for drv in $audio_drv_list; do
827 case $drv in
828 alsa)
829 audio_drv_probe $drv alsa/asoundlib.h -lasound \
830 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
833 fmod)
834 if test -z $fmod_lib || test -z $fmod_inc; then
835 echo
836 echo "Error: You must specify path to FMOD library and headers"
837 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
838 echo
839 exit 1
841 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
844 esd)
845 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
849 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
850 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
853 oss|sdl|core|wav|dsound)
854 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
858 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
859 echo
860 echo "Error: Unknown driver '$drv' selected"
861 echo "Possible drivers are: $audio_possible_drivers"
862 echo
863 exit 1
866 esac
867 done
869 ##########################################
870 # BrlAPI probe
872 if test -z "$brlapi" ; then
873 brlapi=no
874 cat > $TMPC << EOF
875 #include <brlapi.h>
876 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
878 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
879 brlapi=yes
880 fi # brlapi compile test
881 fi # -z $brlapi
883 ##########################################
884 # curses probe
886 if test "$curses" = "yes" ; then
887 curses=no
888 cat > $TMPC << EOF
889 #include <curses.h>
890 int main(void) { return curses_version(); }
892 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
893 curses=yes
895 fi # test "$curses"
897 ##########################################
898 # bluez support probe
899 if test "$bluez" = "yes" ; then
900 `pkg-config bluez` || bluez="no"
902 if test "$bluez" = "yes" ; then
903 bluez_cflags=`pkg-config --cflags bluez`
904 bluez_libs=`pkg-config --libs bluez`
907 ##########################################
908 # AIO probe
909 if test "$aio" = "yes" ; then
910 aio=no
911 cat > $TMPC << EOF
912 #include <aio.h>
913 int main(void) { return aio_write(NULL); }
915 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
916 aio=yes
920 ##########################################
921 # signalfd probe
922 cat > $TMPC << EOF
923 #define _GNU_SOURCE
924 #include <unistd.h>
925 #include <sys/syscall.h>
926 #include <signal.h>
927 int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
930 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
931 signalfd=yes
934 ##########################################
935 # eventfd probe
936 cat > $TMPC << EOF
937 #define _GNU_SOURCE
938 #include <unistd.h>
939 #include <sys/syscall.h>
940 int main(void) { return syscall(SYS_eventfd, 0); }
943 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
944 eventfd=yes
947 # Check if tools are available to build documentation.
948 if [ -x "`which texi2html 2>/dev/null`" ] && \
949 [ -x "`which pod2man 2>/dev/null`" ]; then
950 build_docs="yes"
953 if test "$mingw32" = "yes" ; then
954 if test -z "$prefix" ; then
955 prefix="/c/Program Files/Qemu"
957 mansuffix=""
958 datasuffix=""
959 docsuffix=""
960 binsuffix=""
961 else
962 if test -z "$prefix" ; then
963 prefix="/usr/local"
965 mansuffix="/share/man"
966 datasuffix="/share/qemu"
967 docsuffix="/share/doc/qemu"
968 binsuffix="/bin"
971 echo "Install prefix $prefix"
972 echo "BIOS directory $prefix$datasuffix"
973 echo "binary directory $prefix$binsuffix"
974 if test "$mingw32" = "no" ; then
975 echo "Manual directory $prefix$mansuffix"
976 echo "ELF interp prefix $interp_prefix"
978 echo "Source path $source_path"
979 echo "C compiler $cc"
980 echo "Host C compiler $host_cc"
981 echo "ARCH_CFLAGS $ARCH_CFLAGS"
982 echo "make $make"
983 echo "install $install"
984 echo "host CPU $cpu"
985 echo "host big endian $bigendian"
986 echo "target list $target_list"
987 echo "gprof enabled $gprof"
988 echo "profiler $profiler"
989 echo "static build $static"
990 echo "-Werror enabled $werror"
991 if test "$darwin" = "yes" ; then
992 echo "Cocoa support $cocoa"
994 echo "SDL support $sdl"
995 if test "$sdl" != "no" ; then
996 echo "SDL static link $sdl_static"
998 echo "curses support $curses"
999 echo "mingw32 support $mingw32"
1000 echo "Audio drivers $audio_drv_list"
1001 echo "Extra audio cards $audio_card_list"
1002 echo "Mixer emulation $mixemu"
1003 echo "VNC TLS support $vnc_tls"
1004 if test "$vnc_tls" = "yes" ; then
1005 echo " TLS CFLAGS $vnc_tls_cflags"
1006 echo " TLS LIBS $vnc_tls_libs"
1008 if test -n "$sparc_cpu"; then
1009 echo "Target Sparc Arch $sparc_cpu"
1011 echo "kqemu support $kqemu"
1012 echo "brlapi support $brlapi"
1013 echo "Documentation $build_docs"
1014 [ ! -z "$uname_release" ] && \
1015 echo "uname -r $uname_release"
1016 echo "NPTL support $nptl"
1017 echo "vde support $vde"
1018 echo "AIO support $aio"
1020 if test $sdl_too_old = "yes"; then
1021 echo "-> Your SDL version is too old - please upgrade to have SDL support"
1023 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1024 echo "The error log from compiling the libSDL test is: "
1025 cat /tmp/qemu-$$-sdl-config.log
1027 rm -f /tmp/qemu-$$-sdl-config.log
1028 #if test "$sdl_static" = "no"; then
1029 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1031 config_mak="config-host.mak"
1032 config_h="config-host.h"
1034 #echo "Creating $config_mak and $config_h"
1036 test -f $config_h && mv $config_h ${config_h}~
1038 echo "# Automatically generated by configure - do not modify" > $config_mak
1039 echo "# Configured with: $0 $@" >> $config_mak
1040 echo "/* Automatically generated by configure - do not modify */" > $config_h
1042 echo "prefix=$prefix" >> $config_mak
1043 echo "bindir=\${prefix}$binsuffix" >> $config_mak
1044 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1045 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1046 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1047 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1048 echo "MAKE=$make" >> $config_mak
1049 echo "INSTALL=$install" >> $config_mak
1050 echo "CC=$cc" >> $config_mak
1051 echo "HOST_CC=$host_cc" >> $config_mak
1052 echo "AR=$ar" >> $config_mak
1053 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1054 # XXX: only use CFLAGS and LDFLAGS ?
1055 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1056 # compilation of dyngen tool (useful for win32 build on Linux host)
1057 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1058 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1059 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1060 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1061 echo "CFLAGS=$CFLAGS" >> $config_mak
1062 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1063 echo "EXESUF=$EXESUF" >> $config_mak
1064 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1065 case "$cpu" in
1066 i386)
1067 echo "ARCH=i386" >> $config_mak
1068 echo "#define HOST_I386 1" >> $config_h
1070 x86_64)
1071 echo "ARCH=x86_64" >> $config_mak
1072 echo "#define HOST_X86_64 1" >> $config_h
1074 alpha)
1075 echo "ARCH=alpha" >> $config_mak
1076 echo "#define HOST_ALPHA 1" >> $config_h
1078 armv4b)
1079 echo "ARCH=arm" >> $config_mak
1080 echo "#define HOST_ARM 1" >> $config_h
1082 armv4l)
1083 echo "ARCH=arm" >> $config_mak
1084 echo "#define HOST_ARM 1" >> $config_h
1086 cris)
1087 echo "ARCH=cris" >> $config_mak
1088 echo "#define HOST_CRIS 1" >> $config_h
1090 hppa)
1091 echo "ARCH=hppa" >> $config_mak
1092 echo "#define HOST_HPPA 1" >> $config_h
1094 ia64)
1095 echo "ARCH=ia64" >> $config_mak
1096 echo "#define HOST_IA64 1" >> $config_h
1098 m68k)
1099 echo "ARCH=m68k" >> $config_mak
1100 echo "#define HOST_M68K 1" >> $config_h
1102 mips)
1103 echo "ARCH=mips" >> $config_mak
1104 echo "#define HOST_MIPS 1" >> $config_h
1106 mips64)
1107 echo "ARCH=mips64" >> $config_mak
1108 echo "#define HOST_MIPS64 1" >> $config_h
1110 powerpc)
1111 if test "$hostlongbits" = "32"; then
1112 echo "ARCH=ppc" >> $config_mak
1113 echo "#define HOST_PPC 1" >> $config_h
1114 else
1115 echo "ARCH=ppc64" >> $config_mak
1116 echo "#define HOST_PPC64 1" >> $config_h
1119 s390)
1120 echo "ARCH=s390" >> $config_mak
1121 echo "#define HOST_S390 1" >> $config_h
1123 sparc)
1124 echo "ARCH=sparc" >> $config_mak
1125 echo "#define HOST_SPARC 1" >> $config_h
1127 sparc64)
1128 echo "ARCH=sparc64" >> $config_mak
1129 echo "#define HOST_SPARC64 1" >> $config_h
1132 echo "Unsupported CPU = $cpu"
1133 exit 1
1135 esac
1136 if test "$bigendian" = "yes" ; then
1137 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1138 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1140 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1141 if test "$mingw32" = "yes" ; then
1142 echo "CONFIG_WIN32=yes" >> $config_mak
1143 echo "#define CONFIG_WIN32 1" >> $config_h
1144 else
1145 cat > $TMPC << EOF
1146 #include <byteswap.h>
1147 int main(void) { return bswap_32(0); }
1149 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1150 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1154 if [ "$openbsd" = "yes" ] ; then
1155 echo "#define ENOTSUP 4096" >> $config_h
1158 if test "$darwin" = "yes" ; then
1159 echo "CONFIG_DARWIN=yes" >> $config_mak
1160 echo "#define CONFIG_DARWIN 1" >> $config_h
1162 if test "$solaris" = "yes" ; then
1163 echo "CONFIG_SOLARIS=yes" >> $config_mak
1164 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1165 if test "$needs_libsunmath" = "yes" ; then
1166 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1167 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1170 if test -n "$sparc_cpu"; then
1171 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1172 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1174 if test "$gdbstub" = "yes" ; then
1175 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1176 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1178 if test "$gprof" = "yes" ; then
1179 echo "TARGET_GPROF=yes" >> $config_mak
1180 echo "#define HAVE_GPROF 1" >> $config_h
1182 if test "$static" = "yes" ; then
1183 echo "CONFIG_STATIC=yes" >> $config_mak
1184 echo "#define CONFIG_STATIC 1" >> $config_h
1186 if test $profiler = "yes" ; then
1187 echo "#define CONFIG_PROFILER 1" >> $config_h
1189 if test "$slirp" = "yes" ; then
1190 echo "CONFIG_SLIRP=yes" >> $config_mak
1191 echo "#define CONFIG_SLIRP 1" >> $config_h
1193 if test "$vde" = "yes" ; then
1194 echo "CONFIG_VDE=yes" >> $config_mak
1195 echo "#define CONFIG_VDE 1" >> $config_h
1196 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1198 for card in $audio_card_list; do
1199 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1200 echo "$def=yes" >> $config_mak
1201 echo "#define $def 1" >> $config_h
1202 done
1203 echo "#define AUDIO_DRIVERS \\" >> $config_h
1204 for drv in $audio_drv_list; do
1205 echo " &${drv}_audio_driver, \\" >>$config_h
1206 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1207 echo "$def=yes" >> $config_mak
1208 if test "$drv" = "fmod"; then
1209 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1210 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1211 elif test "$drv" = "oss"; then
1212 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1214 done
1215 echo "" >>$config_h
1216 if test "$mixemu" = "yes" ; then
1217 echo "CONFIG_MIXEMU=yes" >> $config_mak
1218 echo "#define CONFIG_MIXEMU 1" >> $config_h
1220 if test "$vnc_tls" = "yes" ; then
1221 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1222 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1223 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1224 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1226 qemu_version=`head $source_path/VERSION`
1227 echo "VERSION=$qemu_version" >>$config_mak
1228 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1230 echo "SRC_PATH=$source_path" >> $config_mak
1231 if [ "$source_path_used" = "yes" ]; then
1232 echo "VPATH=$source_path" >> $config_mak
1234 echo "TARGET_DIRS=$target_list" >> $config_mak
1235 if [ "$build_docs" = "yes" ] ; then
1236 echo "BUILD_DOCS=yes" >> $config_mak
1238 if test "$static" = "yes"; then
1239 sdl1=$sdl_static
1240 else
1241 sdl1=$sdl
1243 if test "$sdl1" = "yes" ; then
1244 echo "#define CONFIG_SDL 1" >> $config_h
1245 echo "CONFIG_SDL=yes" >> $config_mak
1246 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1247 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1248 else
1249 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1251 if [ "${aa}" = "yes" ] ; then
1252 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1253 else
1254 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1257 if test "$cocoa" = "yes" ; then
1258 echo "#define CONFIG_COCOA 1" >> $config_h
1259 echo "CONFIG_COCOA=yes" >> $config_mak
1261 if test "$curses" = "yes" ; then
1262 echo "#define CONFIG_CURSES 1" >> $config_h
1263 echo "CONFIG_CURSES=yes" >> $config_mak
1264 echo "CURSES_LIBS=-lcurses" >> $config_mak
1266 if test "$brlapi" = "yes" ; then
1267 echo "CONFIG_BRLAPI=yes" >> $config_mak
1268 echo "#define CONFIG_BRLAPI 1" >> $config_h
1269 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1271 if test "$bluez" = "yes" ; then
1272 echo "CONFIG_BLUEZ=yes" >> $config_mak
1273 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1274 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1275 echo "#define CONFIG_BLUEZ 1" >> $config_h
1277 if test "$aio" = "yes" ; then
1278 echo "#define CONFIG_AIO 1" >> $config_h
1279 echo "CONFIG_AIO=yes" >> $config_mak
1281 if test "$signalfd" = "yes" ; then
1282 echo "#define CONFIG_signalfd 1" >> $config_h
1284 if test "$eventfd" = "yes" ; then
1285 echo "#define CONFIG_eventfd 1" >> $config_h
1288 # XXX: suppress that
1289 if [ "$bsd" = "yes" ] ; then
1290 echo "#define O_LARGEFILE 0" >> $config_h
1291 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1292 echo "#define _BSD 1" >> $config_h
1295 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1297 tools=
1298 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1299 tools="qemu-img\$(EXESUF) $tools"
1300 if [ "$linux" = "yes" ] ; then
1301 tools="qemu-nbd\$(EXESUF) $tools"
1304 echo "TOOLS=$tools" >> $config_mak
1306 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1308 for target in $target_list; do
1309 target_dir="$target"
1310 config_mak=$target_dir/config.mak
1311 config_h=$target_dir/config.h
1312 target_cpu=`echo $target | cut -d '-' -f 1`
1313 target_bigendian="no"
1314 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1315 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1316 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1317 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1318 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1319 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1320 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1321 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1322 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1323 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1324 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1325 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1326 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1327 target_softmmu="no"
1328 target_user_only="no"
1329 target_linux_user="no"
1330 target_darwin_user="no"
1331 case "$target" in
1332 ${target_cpu}-softmmu)
1333 target_softmmu="yes"
1335 ${target_cpu}-linux-user)
1336 target_user_only="yes"
1337 target_linux_user="yes"
1339 ${target_cpu}-darwin-user)
1340 target_user_only="yes"
1341 target_darwin_user="yes"
1344 echo "ERROR: Target '$target' not recognised"
1345 exit 1
1347 esac
1349 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1350 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1351 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1352 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1353 echo "Note that this will disable all output from the virtual graphics card"
1354 echo "except through VNC or curses."
1355 exit 1;
1358 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1360 test -f $config_h && mv $config_h ${config_h}~
1362 mkdir -p $target_dir
1363 mkdir -p $target_dir/fpu
1364 mkdir -p $target_dir/tcg
1365 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1366 mkdir -p $target_dir/nwfpe
1370 # don't use ln -sf as not all "ln -sf" over write the file/link
1372 rm -f $target_dir/Makefile
1373 ln -s $source_path/Makefile.target $target_dir/Makefile
1376 echo "# Automatically generated by configure - do not modify" > $config_mak
1377 echo "/* Automatically generated by configure - do not modify */" > $config_h
1380 echo "include ../config-host.mak" >> $config_mak
1381 echo "#include \"../config-host.h\"" >> $config_h
1383 bflt="no"
1384 elfload32="no"
1385 target_nptl="no"
1386 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1387 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1389 case "$target_cpu" in
1390 i386)
1391 echo "TARGET_ARCH=i386" >> $config_mak
1392 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1393 echo "#define TARGET_I386 1" >> $config_h
1394 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1395 then
1396 echo "#define USE_KQEMU 1" >> $config_h
1398 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1399 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1400 then
1401 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1402 else
1403 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1406 x86_64)
1407 echo "TARGET_ARCH=x86_64" >> $config_mak
1408 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1409 echo "#define TARGET_I386 1" >> $config_h
1410 echo "#define TARGET_X86_64 1" >> $config_h
1411 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1412 then
1413 echo "#define USE_KQEMU 1" >> $config_h
1416 alpha)
1417 echo "TARGET_ARCH=alpha" >> $config_mak
1418 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1419 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1420 echo "#define TARGET_ALPHA 1" >> $config_h
1421 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1423 arm|armeb)
1424 echo "TARGET_ARCH=arm" >> $config_mak
1425 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1426 echo "#define TARGET_ARM 1" >> $config_h
1427 bflt="yes"
1428 target_nptl="yes"
1430 cris)
1431 echo "TARGET_ARCH=cris" >> $config_mak
1432 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1433 echo "#define TARGET_CRIS 1" >> $config_h
1435 m68k)
1436 echo "TARGET_ARCH=m68k" >> $config_mak
1437 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1438 echo "#define TARGET_M68K 1" >> $config_h
1439 bflt="yes"
1441 mips|mipsel)
1442 echo "TARGET_ARCH=mips" >> $config_mak
1443 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1444 echo "#define TARGET_MIPS 1" >> $config_h
1445 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1447 mipsn32|mipsn32el)
1448 echo "TARGET_ARCH=mipsn32" >> $config_mak
1449 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1450 echo "#define TARGET_MIPS 1" >> $config_h
1451 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1453 mips64|mips64el)
1454 echo "TARGET_ARCH=mips64" >> $config_mak
1455 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1456 echo "#define TARGET_MIPS 1" >> $config_h
1457 echo "#define TARGET_MIPS64 1" >> $config_h
1458 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1460 ppc)
1461 echo "TARGET_ARCH=ppc" >> $config_mak
1462 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1463 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1464 echo "#define TARGET_PPC 1" >> $config_h
1465 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1467 ppcemb)
1468 echo "TARGET_ARCH=ppcemb" >> $config_mak
1469 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1470 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1471 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1472 echo "#define TARGET_PPC 1" >> $config_h
1473 echo "#define TARGET_PPCEMB 1" >> $config_h
1474 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1476 ppc64)
1477 echo "TARGET_ARCH=ppc64" >> $config_mak
1478 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1479 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1480 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1481 echo "#define TARGET_PPC 1" >> $config_h
1482 echo "#define TARGET_PPC64 1" >> $config_h
1483 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1485 ppc64abi32)
1486 echo "TARGET_ARCH=ppc64" >> $config_mak
1487 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1488 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1489 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1490 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1491 echo "#define TARGET_PPC 1" >> $config_h
1492 echo "#define TARGET_PPC64 1" >> $config_h
1493 echo "#define TARGET_ABI32 1" >> $config_h
1494 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1496 sh4|sh4eb)
1497 echo "TARGET_ARCH=sh4" >> $config_mak
1498 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1499 echo "#define TARGET_SH4 1" >> $config_h
1500 bflt="yes"
1501 target_nptl="yes"
1503 sparc)
1504 echo "TARGET_ARCH=sparc" >> $config_mak
1505 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1506 echo "#define TARGET_SPARC 1" >> $config_h
1508 sparc64)
1509 echo "TARGET_ARCH=sparc64" >> $config_mak
1510 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1511 echo "#define TARGET_SPARC 1" >> $config_h
1512 echo "#define TARGET_SPARC64 1" >> $config_h
1513 elfload32="yes"
1515 sparc32plus)
1516 echo "TARGET_ARCH=sparc64" >> $config_mak
1517 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1518 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1519 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1520 echo "#define TARGET_SPARC 1" >> $config_h
1521 echo "#define TARGET_SPARC64 1" >> $config_h
1522 echo "#define TARGET_ABI32 1" >> $config_h
1525 echo "Unsupported target CPU"
1526 exit 1
1528 esac
1529 if test "$target_bigendian" = "yes" ; then
1530 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1531 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1533 if test "$target_softmmu" = "yes" ; then
1534 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1535 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1537 if test "$target_user_only" = "yes" ; then
1538 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1539 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1541 if test "$target_linux_user" = "yes" ; then
1542 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1543 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1545 if test "$target_darwin_user" = "yes" ; then
1546 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1547 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1550 if test "$target_cpu" = "arm" \
1551 -o "$target_cpu" = "armeb" \
1552 -o "$target_cpu" = "m68k" \
1553 -o "$target_cpu" = "mips" \
1554 -o "$target_cpu" = "mipsel" \
1555 -o "$target_cpu" = "mipsn32" \
1556 -o "$target_cpu" = "mipsn32el" \
1557 -o "$target_cpu" = "mips64" \
1558 -o "$target_cpu" = "mips64el" \
1559 -o "$target_cpu" = "sparc" \
1560 -o "$target_cpu" = "sparc64" \
1561 -o "$target_cpu" = "sparc32plus"; then
1562 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1563 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1565 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1566 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1567 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1569 if test "$target_user_only" = "yes" \
1570 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1571 echo "#define USE_NPTL 1" >> $config_h
1573 # 32 bit ELF loader in addition to native 64 bit loader?
1574 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1575 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1576 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1579 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1581 done # for target in $targets
1583 # build tree in object directory if source path is different from current one
1584 if test "$source_path_used" = "yes" ; then
1585 DIRS="tests tests/cris slirp audio"
1586 FILES="Makefile tests/Makefile"
1587 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1588 FILES="$FILES tests/test-mmap.c"
1589 for dir in $DIRS ; do
1590 mkdir -p $dir
1591 done
1592 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1593 for f in $FILES ; do
1594 rm -f $f
1595 ln -s $source_path/$f $f
1596 done
1599 rm -f $TMPO $TMPC $TMPE $TMPS