Silence some warnings about uninitialized variables
[qemu/mini2440.git] / configure
blob3859bc6c1d307bd200d6f7da7e748e0ffb07f478
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 cat > $TMPC << EOF
904 #include <bluetooth/bluetooth.h>
905 int main(void) { return bt_error(0); }
907 bluez_cflags=`pkg-config --cflags bluez`
908 bluez_libs=`pkg-config --libs bluez`
909 if $cc $ARCH_CFLAGS -o $TMPE ${OS_FLAGS} $bluez_cflags $TMPC \
910 $bluez_libs 2> /dev/null ; then
912 else
913 bluez="no"
917 ##########################################
918 # AIO probe
919 if test "$aio" = "yes" ; then
920 aio=no
921 cat > $TMPC << EOF
922 #include <aio.h>
923 int main(void) { return aio_write(NULL); }
925 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
926 aio=yes
930 ##########################################
931 # signalfd probe
932 cat > $TMPC << EOF
933 #define _GNU_SOURCE
934 #include <unistd.h>
935 #include <sys/syscall.h>
936 #include <signal.h>
937 int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
940 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
941 signalfd=yes
944 ##########################################
945 # eventfd probe
946 cat > $TMPC << EOF
947 #define _GNU_SOURCE
948 #include <unistd.h>
949 #include <sys/syscall.h>
950 int main(void) { return syscall(SYS_eventfd, 0); }
953 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
954 eventfd=yes
957 # Check if tools are available to build documentation.
958 if [ -x "`which texi2html 2>/dev/null`" ] && \
959 [ -x "`which pod2man 2>/dev/null`" ]; then
960 build_docs="yes"
963 if test "$mingw32" = "yes" ; then
964 if test -z "$prefix" ; then
965 prefix="/c/Program Files/Qemu"
967 mansuffix=""
968 datasuffix=""
969 docsuffix=""
970 binsuffix=""
971 else
972 if test -z "$prefix" ; then
973 prefix="/usr/local"
975 mansuffix="/share/man"
976 datasuffix="/share/qemu"
977 docsuffix="/share/doc/qemu"
978 binsuffix="/bin"
981 echo "Install prefix $prefix"
982 echo "BIOS directory $prefix$datasuffix"
983 echo "binary directory $prefix$binsuffix"
984 if test "$mingw32" = "no" ; then
985 echo "Manual directory $prefix$mansuffix"
986 echo "ELF interp prefix $interp_prefix"
988 echo "Source path $source_path"
989 echo "C compiler $cc"
990 echo "Host C compiler $host_cc"
991 echo "ARCH_CFLAGS $ARCH_CFLAGS"
992 echo "make $make"
993 echo "install $install"
994 echo "host CPU $cpu"
995 echo "host big endian $bigendian"
996 echo "target list $target_list"
997 echo "gprof enabled $gprof"
998 echo "profiler $profiler"
999 echo "static build $static"
1000 echo "-Werror enabled $werror"
1001 if test "$darwin" = "yes" ; then
1002 echo "Cocoa support $cocoa"
1004 echo "SDL support $sdl"
1005 if test "$sdl" != "no" ; then
1006 echo "SDL static link $sdl_static"
1008 echo "curses support $curses"
1009 echo "mingw32 support $mingw32"
1010 echo "Audio drivers $audio_drv_list"
1011 echo "Extra audio cards $audio_card_list"
1012 echo "Mixer emulation $mixemu"
1013 echo "VNC TLS support $vnc_tls"
1014 if test "$vnc_tls" = "yes" ; then
1015 echo " TLS CFLAGS $vnc_tls_cflags"
1016 echo " TLS LIBS $vnc_tls_libs"
1018 if test -n "$sparc_cpu"; then
1019 echo "Target Sparc Arch $sparc_cpu"
1021 echo "kqemu support $kqemu"
1022 echo "brlapi support $brlapi"
1023 echo "Documentation $build_docs"
1024 [ ! -z "$uname_release" ] && \
1025 echo "uname -r $uname_release"
1026 echo "NPTL support $nptl"
1027 echo "vde support $vde"
1028 echo "AIO support $aio"
1030 if test $sdl_too_old = "yes"; then
1031 echo "-> Your SDL version is too old - please upgrade to have SDL support"
1033 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1034 echo "The error log from compiling the libSDL test is: "
1035 cat /tmp/qemu-$$-sdl-config.log
1037 rm -f /tmp/qemu-$$-sdl-config.log
1038 #if test "$sdl_static" = "no"; then
1039 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1041 config_mak="config-host.mak"
1042 config_h="config-host.h"
1044 #echo "Creating $config_mak and $config_h"
1046 test -f $config_h && mv $config_h ${config_h}~
1048 echo "# Automatically generated by configure - do not modify" > $config_mak
1049 echo "# Configured with: $0 $@" >> $config_mak
1050 echo "/* Automatically generated by configure - do not modify */" > $config_h
1052 echo "prefix=$prefix" >> $config_mak
1053 echo "bindir=\${prefix}$binsuffix" >> $config_mak
1054 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1055 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1056 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1057 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1058 echo "MAKE=$make" >> $config_mak
1059 echo "INSTALL=$install" >> $config_mak
1060 echo "CC=$cc" >> $config_mak
1061 echo "HOST_CC=$host_cc" >> $config_mak
1062 echo "AR=$ar" >> $config_mak
1063 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1064 # XXX: only use CFLAGS and LDFLAGS ?
1065 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1066 # compilation of dyngen tool (useful for win32 build on Linux host)
1067 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1068 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1069 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1070 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1071 echo "CFLAGS=$CFLAGS" >> $config_mak
1072 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1073 echo "EXESUF=$EXESUF" >> $config_mak
1074 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1075 case "$cpu" in
1076 i386)
1077 echo "ARCH=i386" >> $config_mak
1078 echo "#define HOST_I386 1" >> $config_h
1080 x86_64)
1081 echo "ARCH=x86_64" >> $config_mak
1082 echo "#define HOST_X86_64 1" >> $config_h
1084 alpha)
1085 echo "ARCH=alpha" >> $config_mak
1086 echo "#define HOST_ALPHA 1" >> $config_h
1088 armv4b)
1089 echo "ARCH=arm" >> $config_mak
1090 echo "#define HOST_ARM 1" >> $config_h
1092 armv4l)
1093 echo "ARCH=arm" >> $config_mak
1094 echo "#define HOST_ARM 1" >> $config_h
1096 cris)
1097 echo "ARCH=cris" >> $config_mak
1098 echo "#define HOST_CRIS 1" >> $config_h
1100 hppa)
1101 echo "ARCH=hppa" >> $config_mak
1102 echo "#define HOST_HPPA 1" >> $config_h
1104 ia64)
1105 echo "ARCH=ia64" >> $config_mak
1106 echo "#define HOST_IA64 1" >> $config_h
1108 m68k)
1109 echo "ARCH=m68k" >> $config_mak
1110 echo "#define HOST_M68K 1" >> $config_h
1112 mips)
1113 echo "ARCH=mips" >> $config_mak
1114 echo "#define HOST_MIPS 1" >> $config_h
1116 mips64)
1117 echo "ARCH=mips64" >> $config_mak
1118 echo "#define HOST_MIPS64 1" >> $config_h
1120 powerpc)
1121 if test "$hostlongbits" = "32"; then
1122 echo "ARCH=ppc" >> $config_mak
1123 echo "#define HOST_PPC 1" >> $config_h
1124 else
1125 echo "ARCH=ppc64" >> $config_mak
1126 echo "#define HOST_PPC64 1" >> $config_h
1129 s390)
1130 echo "ARCH=s390" >> $config_mak
1131 echo "#define HOST_S390 1" >> $config_h
1133 sparc)
1134 echo "ARCH=sparc" >> $config_mak
1135 echo "#define HOST_SPARC 1" >> $config_h
1137 sparc64)
1138 echo "ARCH=sparc64" >> $config_mak
1139 echo "#define HOST_SPARC64 1" >> $config_h
1142 echo "Unsupported CPU = $cpu"
1143 exit 1
1145 esac
1146 if test "$bigendian" = "yes" ; then
1147 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1148 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1150 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1151 if test "$mingw32" = "yes" ; then
1152 echo "CONFIG_WIN32=yes" >> $config_mak
1153 echo "#define CONFIG_WIN32 1" >> $config_h
1154 else
1155 cat > $TMPC << EOF
1156 #include <byteswap.h>
1157 int main(void) { return bswap_32(0); }
1159 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1160 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1164 if [ "$openbsd" = "yes" ] ; then
1165 echo "#define ENOTSUP 4096" >> $config_h
1168 if test "$darwin" = "yes" ; then
1169 echo "CONFIG_DARWIN=yes" >> $config_mak
1170 echo "#define CONFIG_DARWIN 1" >> $config_h
1172 if test "$solaris" = "yes" ; then
1173 echo "CONFIG_SOLARIS=yes" >> $config_mak
1174 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1175 if test "$needs_libsunmath" = "yes" ; then
1176 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1177 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1180 if test -n "$sparc_cpu"; then
1181 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1182 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1184 if test "$gdbstub" = "yes" ; then
1185 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1186 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1188 if test "$gprof" = "yes" ; then
1189 echo "TARGET_GPROF=yes" >> $config_mak
1190 echo "#define HAVE_GPROF 1" >> $config_h
1192 if test "$static" = "yes" ; then
1193 echo "CONFIG_STATIC=yes" >> $config_mak
1194 echo "#define CONFIG_STATIC 1" >> $config_h
1196 if test $profiler = "yes" ; then
1197 echo "#define CONFIG_PROFILER 1" >> $config_h
1199 if test "$slirp" = "yes" ; then
1200 echo "CONFIG_SLIRP=yes" >> $config_mak
1201 echo "#define CONFIG_SLIRP 1" >> $config_h
1203 if test "$vde" = "yes" ; then
1204 echo "CONFIG_VDE=yes" >> $config_mak
1205 echo "#define CONFIG_VDE 1" >> $config_h
1206 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1208 for card in $audio_card_list; do
1209 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1210 echo "$def=yes" >> $config_mak
1211 echo "#define $def 1" >> $config_h
1212 done
1213 echo "#define AUDIO_DRIVERS \\" >> $config_h
1214 for drv in $audio_drv_list; do
1215 echo " &${drv}_audio_driver, \\" >>$config_h
1216 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1217 echo "$def=yes" >> $config_mak
1218 if test "$drv" = "fmod"; then
1219 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1220 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1221 elif test "$drv" = "oss"; then
1222 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1224 done
1225 echo "" >>$config_h
1226 if test "$mixemu" = "yes" ; then
1227 echo "CONFIG_MIXEMU=yes" >> $config_mak
1228 echo "#define CONFIG_MIXEMU 1" >> $config_h
1230 if test "$vnc_tls" = "yes" ; then
1231 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1232 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1233 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1234 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1236 qemu_version=`head $source_path/VERSION`
1237 echo "VERSION=$qemu_version" >>$config_mak
1238 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1240 echo "SRC_PATH=$source_path" >> $config_mak
1241 if [ "$source_path_used" = "yes" ]; then
1242 echo "VPATH=$source_path" >> $config_mak
1244 echo "TARGET_DIRS=$target_list" >> $config_mak
1245 if [ "$build_docs" = "yes" ] ; then
1246 echo "BUILD_DOCS=yes" >> $config_mak
1248 if test "$static" = "yes"; then
1249 sdl1=$sdl_static
1250 else
1251 sdl1=$sdl
1253 if test "$sdl1" = "yes" ; then
1254 echo "#define CONFIG_SDL 1" >> $config_h
1255 echo "CONFIG_SDL=yes" >> $config_mak
1256 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1257 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1258 else
1259 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1261 if [ "${aa}" = "yes" ] ; then
1262 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1263 else
1264 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1267 if test "$cocoa" = "yes" ; then
1268 echo "#define CONFIG_COCOA 1" >> $config_h
1269 echo "CONFIG_COCOA=yes" >> $config_mak
1271 if test "$curses" = "yes" ; then
1272 echo "#define CONFIG_CURSES 1" >> $config_h
1273 echo "CONFIG_CURSES=yes" >> $config_mak
1274 echo "CURSES_LIBS=-lcurses" >> $config_mak
1276 if test "$brlapi" = "yes" ; then
1277 echo "CONFIG_BRLAPI=yes" >> $config_mak
1278 echo "#define CONFIG_BRLAPI 1" >> $config_h
1279 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1281 if test "$bluez" = "yes" ; then
1282 echo "CONFIG_BLUEZ=yes" >> $config_mak
1283 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1284 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1285 echo "#define CONFIG_BLUEZ 1" >> $config_h
1287 if test "$aio" = "yes" ; then
1288 echo "#define CONFIG_AIO 1" >> $config_h
1289 echo "CONFIG_AIO=yes" >> $config_mak
1291 if test "$signalfd" = "yes" ; then
1292 echo "#define CONFIG_signalfd 1" >> $config_h
1294 if test "$eventfd" = "yes" ; then
1295 echo "#define CONFIG_eventfd 1" >> $config_h
1298 # XXX: suppress that
1299 if [ "$bsd" = "yes" ] ; then
1300 echo "#define O_LARGEFILE 0" >> $config_h
1301 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1302 echo "#define _BSD 1" >> $config_h
1305 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1307 tools=
1308 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1309 tools="qemu-img\$(EXESUF) $tools"
1310 if [ "$linux" = "yes" ] ; then
1311 tools="qemu-nbd\$(EXESUF) $tools"
1314 echo "TOOLS=$tools" >> $config_mak
1316 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1318 for target in $target_list; do
1319 target_dir="$target"
1320 config_mak=$target_dir/config.mak
1321 config_h=$target_dir/config.h
1322 target_cpu=`echo $target | cut -d '-' -f 1`
1323 target_bigendian="no"
1324 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1325 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1326 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1327 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1328 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1329 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1330 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1331 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1332 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1333 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1334 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1335 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1336 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1337 target_softmmu="no"
1338 target_user_only="no"
1339 target_linux_user="no"
1340 target_darwin_user="no"
1341 case "$target" in
1342 ${target_cpu}-softmmu)
1343 target_softmmu="yes"
1345 ${target_cpu}-linux-user)
1346 target_user_only="yes"
1347 target_linux_user="yes"
1349 ${target_cpu}-darwin-user)
1350 target_user_only="yes"
1351 target_darwin_user="yes"
1354 echo "ERROR: Target '$target' not recognised"
1355 exit 1
1357 esac
1359 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1360 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1361 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1362 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1363 echo "Note that this will disable all output from the virtual graphics card"
1364 echo "except through VNC or curses."
1365 exit 1;
1368 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1370 test -f $config_h && mv $config_h ${config_h}~
1372 mkdir -p $target_dir
1373 mkdir -p $target_dir/fpu
1374 mkdir -p $target_dir/tcg
1375 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1376 mkdir -p $target_dir/nwfpe
1380 # don't use ln -sf as not all "ln -sf" over write the file/link
1382 rm -f $target_dir/Makefile
1383 ln -s $source_path/Makefile.target $target_dir/Makefile
1386 echo "# Automatically generated by configure - do not modify" > $config_mak
1387 echo "/* Automatically generated by configure - do not modify */" > $config_h
1390 echo "include ../config-host.mak" >> $config_mak
1391 echo "#include \"../config-host.h\"" >> $config_h
1393 bflt="no"
1394 elfload32="no"
1395 target_nptl="no"
1396 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1397 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1399 case "$target_cpu" in
1400 i386)
1401 echo "TARGET_ARCH=i386" >> $config_mak
1402 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1403 echo "#define TARGET_I386 1" >> $config_h
1404 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1405 then
1406 echo "#define USE_KQEMU 1" >> $config_h
1408 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1409 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1410 then
1411 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1412 else
1413 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1416 x86_64)
1417 echo "TARGET_ARCH=x86_64" >> $config_mak
1418 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1419 echo "#define TARGET_I386 1" >> $config_h
1420 echo "#define TARGET_X86_64 1" >> $config_h
1421 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1422 then
1423 echo "#define USE_KQEMU 1" >> $config_h
1426 alpha)
1427 echo "TARGET_ARCH=alpha" >> $config_mak
1428 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1429 echo "#define TARGET_ALPHA 1" >> $config_h
1431 arm|armeb)
1432 echo "TARGET_ARCH=arm" >> $config_mak
1433 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1434 echo "#define TARGET_ARM 1" >> $config_h
1435 bflt="yes"
1436 target_nptl="yes"
1438 cris)
1439 echo "TARGET_ARCH=cris" >> $config_mak
1440 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1441 echo "#define TARGET_CRIS 1" >> $config_h
1443 m68k)
1444 echo "TARGET_ARCH=m68k" >> $config_mak
1445 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1446 echo "#define TARGET_M68K 1" >> $config_h
1447 bflt="yes"
1449 mips|mipsel)
1450 echo "TARGET_ARCH=mips" >> $config_mak
1451 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1452 echo "#define TARGET_MIPS 1" >> $config_h
1453 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1455 mipsn32|mipsn32el)
1456 echo "TARGET_ARCH=mipsn32" >> $config_mak
1457 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1458 echo "#define TARGET_MIPS 1" >> $config_h
1459 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1461 mips64|mips64el)
1462 echo "TARGET_ARCH=mips64" >> $config_mak
1463 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1464 echo "#define TARGET_MIPS 1" >> $config_h
1465 echo "#define TARGET_MIPS64 1" >> $config_h
1466 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1468 ppc)
1469 echo "TARGET_ARCH=ppc" >> $config_mak
1470 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1471 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1472 echo "#define TARGET_PPC 1" >> $config_h
1473 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1475 ppcemb)
1476 echo "TARGET_ARCH=ppcemb" >> $config_mak
1477 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1478 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1479 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1480 echo "#define TARGET_PPC 1" >> $config_h
1481 echo "#define TARGET_PPCEMB 1" >> $config_h
1482 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1484 ppc64)
1485 echo "TARGET_ARCH=ppc64" >> $config_mak
1486 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1487 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1488 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1489 echo "#define TARGET_PPC 1" >> $config_h
1490 echo "#define TARGET_PPC64 1" >> $config_h
1491 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1493 ppc64abi32)
1494 echo "TARGET_ARCH=ppc64" >> $config_mak
1495 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1496 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1497 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1498 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1499 echo "#define TARGET_PPC 1" >> $config_h
1500 echo "#define TARGET_PPC64 1" >> $config_h
1501 echo "#define TARGET_ABI32 1" >> $config_h
1502 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1504 sh4|sh4eb)
1505 echo "TARGET_ARCH=sh4" >> $config_mak
1506 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1507 echo "#define TARGET_SH4 1" >> $config_h
1508 bflt="yes"
1509 target_nptl="yes"
1511 sparc)
1512 echo "TARGET_ARCH=sparc" >> $config_mak
1513 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1514 echo "#define TARGET_SPARC 1" >> $config_h
1516 sparc64)
1517 echo "TARGET_ARCH=sparc64" >> $config_mak
1518 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1519 echo "#define TARGET_SPARC 1" >> $config_h
1520 echo "#define TARGET_SPARC64 1" >> $config_h
1521 elfload32="yes"
1523 sparc32plus)
1524 echo "TARGET_ARCH=sparc64" >> $config_mak
1525 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1526 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1527 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1528 echo "#define TARGET_SPARC 1" >> $config_h
1529 echo "#define TARGET_SPARC64 1" >> $config_h
1530 echo "#define TARGET_ABI32 1" >> $config_h
1533 echo "Unsupported target CPU"
1534 exit 1
1536 esac
1537 if test "$target_bigendian" = "yes" ; then
1538 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1539 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1541 if test "$target_softmmu" = "yes" ; then
1542 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1543 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1545 if test "$target_user_only" = "yes" ; then
1546 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1547 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1549 if test "$target_linux_user" = "yes" ; then
1550 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1551 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1553 if test "$target_darwin_user" = "yes" ; then
1554 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1555 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1558 if test "$target_cpu" = "arm" \
1559 -o "$target_cpu" = "armeb" \
1560 -o "$target_cpu" = "m68k" \
1561 -o "$target_cpu" = "mips" \
1562 -o "$target_cpu" = "mipsel" \
1563 -o "$target_cpu" = "mipsn32" \
1564 -o "$target_cpu" = "mipsn32el" \
1565 -o "$target_cpu" = "mips64" \
1566 -o "$target_cpu" = "mips64el" \
1567 -o "$target_cpu" = "sparc" \
1568 -o "$target_cpu" = "sparc64" \
1569 -o "$target_cpu" = "sparc32plus"; then
1570 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1571 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1573 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1574 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1575 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1577 if test "$target_user_only" = "yes" \
1578 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1579 echo "#define USE_NPTL 1" >> $config_h
1581 # 32 bit ELF loader in addition to native 64 bit loader?
1582 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1583 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1584 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1587 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1589 done # for target in $targets
1591 # build tree in object directory if source path is different from current one
1592 if test "$source_path_used" = "yes" ; then
1593 DIRS="tests tests/cris slirp audio"
1594 FILES="Makefile tests/Makefile"
1595 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1596 FILES="$FILES tests/test-mmap.c"
1597 for dir in $DIRS ; do
1598 mkdir -p $dir
1599 done
1600 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1601 for f in $FILES ; do
1602 rm -f $f
1603 ln -s $source_path/$f $f
1604 done
1607 rm -f $TMPO $TMPC $TMPE $TMPS