Avoid (some) ppc cross-compilation problems
[qemu/mini2440.git] / configure
bloba224e6a6b64bb28269b7cde15bb55ebeca44e6d9
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"
18 TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
20 # default parameters
21 prefix=""
22 interp_prefix="/usr/gnemul/qemu-%M"
23 static="no"
24 cross_prefix=""
25 cc="gcc"
26 gcc3_search="yes"
27 gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
28 audio_drv_list=""
29 audio_card_list=""
30 host_cc="gcc"
31 ar="ar"
32 make="make"
33 install="install"
34 strip="strip"
35 cpu=`uname -m`
36 target_list=""
37 case "$cpu" in
38 i386|i486|i586|i686|i86pc|BePC)
39 cpu="i386"
41 x86_64|amd64)
42 cpu="x86_64"
44 alpha)
45 cpu="alpha"
47 armv*b)
48 cpu="armv4b"
50 armv*l)
51 cpu="armv4l"
53 cris)
54 cpu="cris"
56 parisc|parisc64)
57 cpu="hppa"
59 ia64)
60 cpu="ia64"
62 m68k)
63 cpu="m68k"
65 mips)
66 cpu="mips"
68 mips64)
69 cpu="mips64"
71 "Power Macintosh"|ppc|ppc64)
72 cpu="powerpc"
74 s390*)
75 cpu="s390"
77 sparc|sun4[cdmuv])
78 cpu="sparc"
80 sparc64)
81 cpu="sparc64"
84 cpu="unknown"
86 esac
87 gprof="no"
88 bigendian="no"
89 mingw32="no"
90 EXESUF=""
91 gdbstub="yes"
92 slirp="yes"
93 vde="yes"
94 fmod_lib=""
95 fmod_inc=""
96 oss_lib=""
97 vnc_tls="yes"
98 bsd="no"
99 linux="no"
100 kqemu="no"
101 profiler="no"
102 cocoa="no"
103 check_gfx="yes"
104 check_gcc="yes"
105 softmmu="yes"
106 linux_user="no"
107 darwin_user="no"
108 build_docs="no"
109 uname_release=""
110 curses="yes"
111 aio="yes"
112 nptl="yes"
113 mixemu="no"
114 bluez="yes"
115 signalfd="no"
116 eventfd="no"
118 # OS specific
119 targetos=`uname -s`
120 case $targetos in
121 CYGWIN*)
122 mingw32="yes"
123 OS_CFLAGS="-mno-cygwin"
124 if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
127 audio_possible_drivers="sdl"
129 MINGW32*)
130 mingw32="yes"
131 if [ "$cpu" = "i386" ] ; then
132 kqemu="yes"
134 audio_possible_drivers="dsound sdl fmod"
136 GNU/kFreeBSD)
137 audio_drv_list="oss"
138 audio_possible_drivers="oss sdl esd pa"
139 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
140 kqemu="yes"
143 FreeBSD)
144 bsd="yes"
145 audio_drv_list="oss"
146 audio_possible_drivers="oss sdl esd pa"
147 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
148 kqemu="yes"
151 NetBSD)
152 bsd="yes"
153 audio_drv_list="oss"
154 audio_possible_drivers="oss sdl esd"
156 OpenBSD)
157 bsd="yes"
158 openbsd="yes"
159 audio_drv_list="oss"
160 audio_possible_drivers="oss sdl esd"
161 oss_lib="-lossaudio"
163 Darwin)
164 bsd="yes"
165 darwin="yes"
166 darwin_user="yes"
167 cocoa="yes"
168 audio_drv_list="coreaudio"
169 audio_possible_drivers="coreaudio sdl fmod"
170 OS_CFLAGS="-mdynamic-no-pic"
171 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
173 SunOS)
174 solaris="yes"
175 make="gmake"
176 install="ginstall"
177 needs_libsunmath="no"
178 solarisrev=`uname -r | cut -f2 -d.`
179 # have to select again, because `uname -m` returns i86pc
180 # even on an x86_64 box.
181 solariscpu=`isainfo -k`
182 if test "${solariscpu}" = "amd64" ; then
183 cpu="x86_64"
185 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
186 if test "$solarisrev" -le 9 ; then
187 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
188 needs_libsunmath="yes"
189 else
190 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
191 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
192 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
193 echo "Studio 11 can be downloaded from www.sun.com."
194 exit 1
197 if test "$solarisrev" -ge 9 ; then
198 kqemu="yes"
201 if test -f /usr/include/sys/soundcard.h ; then
202 audio_drv_list="oss"
204 audio_possible_drivers="oss sdl"
207 audio_drv_list="oss"
208 audio_possible_drivers="oss alsa sdl esd pa"
209 linux="yes"
210 linux_user="yes"
211 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
212 kqemu="yes"
213 audio_possible_drivers="$audio_possible_drivers fmod"
216 esac
218 if [ "$bsd" = "yes" ] ; then
219 if [ "$darwin" != "yes" ] ; then
220 make="gmake"
224 # find source path
225 source_path=`dirname "$0"`
226 source_path_used="no"
227 workdir=`pwd`
228 if [ -z "$source_path" ]; then
229 source_path=$workdir
230 else
231 source_path=`cd "$source_path"; pwd`
233 [ -f "$workdir/vl.c" ] || source_path_used="yes"
235 werror="no"
236 # generate compile errors on warnings for development builds
237 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
238 #werror="yes";
241 for opt do
242 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
243 case "$opt" in
244 --help|-h) show_help=yes
246 --prefix=*) prefix="$optarg"
248 --interp-prefix=*) interp_prefix="$optarg"
250 --source-path=*) source_path="$optarg"
251 source_path_used="yes"
253 --cross-prefix=*) cross_prefix="$optarg"
255 --cc=*) cc="$optarg"
256 gcc3_search="no"
258 --host-cc=*) host_cc="$optarg"
260 --make=*) make="$optarg"
262 --install=*) install="$optarg"
264 --extra-cflags=*) CFLAGS="$optarg"
266 --extra-ldflags=*) LDFLAGS="$optarg"
268 --cpu=*) cpu="$optarg"
270 --target-list=*) target_list="$optarg"
272 --enable-gprof) gprof="yes"
274 --static) static="yes"
276 --disable-sdl) sdl="no"
278 --fmod-lib=*) fmod_lib="$optarg"
280 --fmod-inc=*) fmod_inc="$optarg"
282 --oss-lib=*) oss_lib="$optarg"
284 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
286 --audio-drv-list=*) audio_drv_list="$optarg"
288 --disable-vnc-tls) vnc_tls="no"
290 --disable-slirp) slirp="no"
292 --disable-vde) vde="no"
294 --disable-kqemu) kqemu="no"
296 --disable-brlapi) brlapi="no"
298 --disable-bluez) bluez="no"
300 --enable-profiler) profiler="yes"
302 --enable-cocoa)
303 cocoa="yes" ;
304 sdl="no" ;
305 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
307 --disable-gfx-check) check_gfx="no"
309 --disable-gcc-check) check_gcc="no"
311 --disable-system) softmmu="no"
313 --enable-system) softmmu="yes"
315 --disable-linux-user) linux_user="no"
317 --enable-linux-user) linux_user="yes"
319 --disable-darwin-user) darwin_user="no"
321 --enable-darwin-user) darwin_user="yes"
323 --enable-uname-release=*) uname_release="$optarg"
325 --sparc_cpu=*)
326 sparc_cpu="$optarg"
327 case $sparc_cpu in
328 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
329 target_cpu="sparc"; cpu="sparc" ;;
330 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
331 target_cpu="sparc"; cpu="sparc" ;;
332 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
333 target_cpu="sparc64"; cpu="sparc64" ;;
334 *) echo "undefined SPARC architecture. Exiting";exit 1;;
335 esac
337 --enable-werror) werror="yes"
339 --disable-werror) werror="no"
341 --disable-curses) curses="no"
343 --disable-nptl) nptl="no"
345 --enable-mixemu) mixemu="yes"
347 --disable-aio) aio="no"
349 *) echo "ERROR: unknown option $opt"; show_help="yes"
351 esac
352 done
354 # default flags for all hosts
355 CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
356 CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
357 LDFLAGS="$LDFLAGS -g"
358 if test "$werror" = "yes" ; then
359 CFLAGS="$CFLAGS -Werror"
362 if ld --version 2>/dev/null | grep -q "GNU ld" ; then
363 LDFLAGS="$LDFLAGS -Wl,--warn-common"
367 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
368 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
370 case "$cpu" in
371 sparc) if test -z "$sparc_cpu" ; then
372 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
373 ARCH_LDFLAGS="-m32"
374 else
375 ARCH_CFLAGS="${SP_CFLAGS}"
376 ARCH_LDFLAGS="${SP_LDFLAGS}"
379 sparc64) if test -z "$sparc_cpu" ; then
380 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
381 ARCH_LDFLAGS="-m64"
382 else
383 ARCH_CFLAGS="${SP_CFLAGS}"
384 ARCH_LDFLAGS="${SP_LDFLAGS}"
387 s390)
388 ARCH_CFLAGS="-march=z900"
390 i386)
391 ARCH_CFLAGS="-m32"
392 ARCH_LDFLAGS="-m32"
394 x86_64)
395 ARCH_CFLAGS="-m64"
396 ARCH_LDFLAGS="-m64"
398 esac
400 if test x"$show_help" = x"yes" ; then
401 cat << EOF
403 Usage: configure [options]
404 Options: [defaults in brackets after descriptions]
407 echo "Standard options:"
408 echo " --help print this message"
409 echo " --prefix=PREFIX install in PREFIX [$prefix]"
410 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
411 echo " use %M for cpu name [$interp_prefix]"
412 echo " --target-list=LIST set target list [$target_list]"
413 echo ""
414 echo "kqemu kernel acceleration support:"
415 echo " --disable-kqemu disable kqemu support"
416 echo ""
417 echo "Advanced options (experts only):"
418 echo " --source-path=PATH path of source code [$source_path]"
419 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
420 echo " --cc=CC use C compiler CC [$cc]"
421 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
422 echo " --make=MAKE use specified make [$make]"
423 echo " --install=INSTALL use specified install [$install]"
424 echo " --static enable static build [$static]"
425 echo " --disable-werror disable compilation abort on warning"
426 echo " --disable-sdl disable SDL"
427 echo " --enable-cocoa enable COCOA (Mac OS X only)"
428 echo " --audio-drv-list=LIST set audio drivers list:"
429 echo " Available drivers: $audio_possible_drivers"
430 echo " --audio-card-list=LIST set list of additional emulated audio cards"
431 echo " Available cards: ac97 adlib cs4231a gus"
432 echo " --enable-mixemu enable mixer emulation"
433 echo " --disable-brlapi disable BrlAPI"
434 echo " --disable-vnc-tls disable TLS encryption for VNC server"
435 echo " --disable-curses disable curses output"
436 echo " --disable-bluez disable bluez stack connectivity"
437 echo " --disable-nptl disable usermode NPTL support"
438 echo " --enable-system enable all system emulation targets"
439 echo " --disable-system disable all system emulation targets"
440 echo " --enable-linux-user enable all linux usermode emulation targets"
441 echo " --disable-linux-user disable all linux usermode emulation targets"
442 echo " --enable-darwin-user enable all darwin usermode emulation targets"
443 echo " --disable-darwin-user disable all darwin usermode emulation targets"
444 echo " --fmod-lib path to FMOD library"
445 echo " --fmod-inc path to FMOD includes"
446 echo " --oss-lib path to OSS library"
447 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
448 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
449 echo " --disable-vde disable support for vde network"
450 echo " --disable-aio disable AIO support"
451 echo ""
452 echo "NOTE: The object files are built at the place where configure is launched"
453 exit 1
456 cc="${cross_prefix}${cc}"
457 ar="${cross_prefix}${ar}"
458 strip="${cross_prefix}${strip}"
460 # check that the C compiler works.
461 cat > $TMPC <<EOF
462 int main(void) {}
465 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
466 : C compiler works ok
467 else
468 echo "ERROR: \"$cc\" either does not exist or does not work"
469 exit 1
472 # check compiler to see if we're on mingw32
473 cat > $TMPC <<EOF
474 #include <windows.h>
475 #ifndef _WIN32
476 #error not windows
477 #endif
478 int main(void) {}
481 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
482 mingw32="yes"
485 if test "$mingw32" = "yes" ; then
486 linux="no"
487 EXESUF=".exe"
488 oss="no"
489 linux_user="no"
492 if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
493 AIOLIBS=
494 elif [ "$bsd" = "yes" ]; then
495 AIOLIBS="-lpthread"
496 else
497 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
498 AIOLIBS="-lrt -lpthread"
501 # Check for gcc4, error if pre-gcc4
502 if test "$check_gcc" = "yes" ; then
503 cat > $TMPC <<EOF
504 #if __GNUC__ < 4
505 #error gcc3
506 #endif
507 int main(){return 0;}
509 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
510 echo "WARNING: \"$cc\" looks like gcc 4.x"
511 found_compat_cc="no"
512 if test "$gcc3_search" = "yes" ; then
513 echo "Looking for gcc 3.x"
514 for compat_cc in $gcc3_list ; do
515 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
516 echo "Found \"$compat_cc\""
517 cc="$cross_prefix$compat_cc"
518 found_compat_cc="yes"
519 break
521 done
522 if test "$found_compat_cc" = "no" ; then
523 echo "gcc 3.x not found!"
526 if test "$found_compat_cc" = "no" ; then
527 echo "QEMU is known to have problems when compiled with gcc 4.x"
528 echo "It is recommended that you use gcc 3.x to build QEMU"
529 echo "To use this compiler anyway, configure with --disable-gcc-check"
530 exit 1;
536 # Solaris specific configure tool chain decisions
538 if test "$solaris" = "yes" ; then
540 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
541 # override the check with --disable-gcc-check
543 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
544 solgcc=`which $cc`
545 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
546 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
547 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
548 echo "or get the latest patch from SunSolve for gcc"
549 exit 1
552 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
553 if test -z "$solinst" ; then
554 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
555 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
556 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
557 exit 1
559 if test "$solinst" = "/usr/sbin/install" ; then
560 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
561 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
562 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
563 exit 1
565 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
566 if test -z "$sol_ar" ; then
567 echo "Error: No path includes ar"
568 if test -f /usr/ccs/bin/ar ; then
569 echo "Add /usr/ccs/bin to your path and rerun configure"
571 exit 1
576 if test -z "$target_list" ; then
577 # these targets are portable
578 if [ "$softmmu" = "yes" ] ; then
579 target_list="\
580 i386-softmmu \
581 x86_64-softmmu \
582 arm-softmmu \
583 cris-softmmu \
584 m68k-softmmu \
585 mips-softmmu \
586 mipsel-softmmu \
587 mips64-softmmu \
588 mips64el-softmmu \
589 ppc-softmmu \
590 ppcemb-softmmu \
591 ppc64-softmmu \
592 sh4-softmmu \
593 sh4eb-softmmu \
594 sparc-softmmu \
597 # the following are Linux specific
598 if [ "$linux_user" = "yes" ] ; then
599 target_list="${target_list}\
600 i386-linux-user \
601 x86_64-linux-user \
602 alpha-linux-user \
603 arm-linux-user \
604 armeb-linux-user \
605 cris-linux-user \
606 m68k-linux-user \
607 mips-linux-user \
608 mipsel-linux-user \
609 ppc-linux-user \
610 ppc64-linux-user \
611 ppc64abi32-linux-user \
612 sh4-linux-user \
613 sh4eb-linux-user \
614 sparc-linux-user \
615 sparc64-linux-user \
616 sparc32plus-linux-user \
619 # the following are Darwin specific
620 if [ "$darwin_user" = "yes" ] ; then
621 target_list="$target_list i386-darwin-user ppc-darwin-user"
623 else
624 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
626 if test -z "$target_list" ; then
627 echo "No targets enabled"
628 exit 1
631 if test -z "$cross_prefix" ; then
633 # ---
634 # big/little endian test
635 cat > $TMPC << EOF
636 #include <inttypes.h>
637 int main(int argc, char ** argv){
638 volatile uint32_t i=0x01234567;
639 return (*((uint8_t*)(&i))) == 0x67;
643 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
644 $TMPE && bigendian="yes"
645 else
646 echo big/little test failed
649 else
651 # if cross compiling, cannot launch a program, so make a static guess
652 if test "$cpu" = "armv4b" \
653 -o "$cpu" = "hppa" \
654 -o "$cpu" = "m68k" \
655 -o "$cpu" = "mips" \
656 -o "$cpu" = "mips64" \
657 -o "$cpu" = "powerpc" \
658 -o "$cpu" = "s390" \
659 -o "$cpu" = "sparc" \
660 -o "$cpu" = "sparc64"; then
661 bigendian="yes"
666 # host long bits test
667 hostlongbits="32"
668 if test "$cpu" = "x86_64" \
669 -o "$cpu" = "alpha" \
670 -o "$cpu" = "ia64" \
671 -o "$cpu" = "sparc64"; then
672 hostlongbits="64"
675 # ppc specific hostlongbits selection
676 if test "$cpu" = "powerpc" ; then
677 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
678 grep -q __powerpc64__ $TMPI && hostlongbits=64
679 else
680 echo hostlongbits test failed
681 exit 1
685 # check gcc options support
686 cat > $TMPC <<EOF
687 int main(void) {
691 # Check host NPTL support
692 cat > $TMPC <<EOF
693 #include <sched.h>
694 #include <linux/futex.h>
695 void foo()
697 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
698 #error bork
699 #endif
703 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
705 else
706 nptl="no"
709 ##########################################
710 # SDL probe
712 sdl_too_old=no
714 if test -z "$sdl" ; then
715 sdl_config="sdl-config"
716 sdl=no
717 sdl_static=no
719 cat > $TMPC << EOF
720 #include <SDL.h>
721 #undef main /* We don't want SDL to override our main() */
722 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
724 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
725 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
726 if test "$_sdlversion" -lt 121 ; then
727 sdl_too_old=yes
728 else
729 if test "$cocoa" = "no" ; then
730 sdl=yes
734 # static link with sdl ?
735 if test "$sdl" = "yes" ; then
736 aa="no"
737 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
738 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
739 if [ "$aa" = "yes" ] ; then
740 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
743 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
744 sdl_static=yes
746 fi # static link
747 fi # sdl compile test
748 else
749 # Make sure to disable cocoa if sdl was set
750 if test "$sdl" = "yes" ; then
751 cocoa="no"
752 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
754 fi # -z $sdl
756 ##########################################
757 # VNC TLS detection
758 if test "$vnc_tls" = "yes" ; then
759 cat > $TMPC <<EOF
760 #include <gnutls/gnutls.h>
761 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
763 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
764 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
765 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
766 $vnc_tls_libs 2> /dev/null ; then
768 else
769 vnc_tls="no"
773 ##########################################
774 # vde libraries probe
775 if test "$vde" = "yes" ; then
776 cat > $TMPC << EOF
777 #include <libvdeplug.h>
778 int main(void)
780 struct vde_open_args a = {0, 0, 0};
781 vde_open("", "", &a);
782 return 0;
785 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
787 else
788 vde="no"
792 ##########################################
793 # Sound support libraries probe
795 audio_drv_probe()
797 drv=$1
798 hdr=$2
799 lib=$3
800 exp=$4
801 cfl=$5
802 cat > $TMPC << EOF
803 #include <$hdr>
804 int main(void) { $exp }
806 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
808 else
809 echo
810 echo "Error: $drv check failed"
811 echo "Make sure to have the $drv libs and headers installed."
812 echo
813 exit 1
817 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
818 for drv in $audio_drv_list; do
819 case $drv in
820 alsa)
821 audio_drv_probe $drv alsa/asoundlib.h -lasound \
822 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
825 fmod)
826 if test -z $fmod_lib || test -z $fmod_inc; then
827 echo
828 echo "Error: You must specify path to FMOD library and headers"
829 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
830 echo
831 exit 1
833 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
836 esd)
837 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
841 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
842 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
845 oss|sdl|core|wav|dsound)
846 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
850 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
851 echo
852 echo "Error: Unknown driver '$drv' selected"
853 echo "Possible drivers are: $audio_possible_drivers"
854 echo
855 exit 1
858 esac
859 done
861 ##########################################
862 # BrlAPI probe
864 if test -z "$brlapi" ; then
865 brlapi=no
866 cat > $TMPC << EOF
867 #include <brlapi.h>
868 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
870 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
871 brlapi=yes
872 fi # brlapi compile test
873 fi # -z $brlapi
875 ##########################################
876 # curses probe
878 if test "$curses" = "yes" ; then
879 curses=no
880 cat > $TMPC << EOF
881 #include <curses.h>
882 int main(void) { return curses_version(); }
884 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
885 curses=yes
887 fi # test "$curses"
889 ##########################################
890 # bluez support probe
891 if test "$bluez" = "yes" ; then
892 `pkg-config bluez` || bluez="no"
894 if test "$bluez" = "yes" ; then
895 cat > $TMPC << EOF
896 #include <bluetooth/bluetooth.h>
897 int main(void) { return bt_error(0); }
899 bluez_cflags=`pkg-config --cflags bluez`
900 bluez_libs=`pkg-config --libs bluez`
901 if $cc $ARCH_CFLAGS -o $TMPE ${OS_FLAGS} $bluez_cflags $TMPC \
902 $bluez_libs 2> /dev/null ; then
904 else
905 bluez="no"
909 ##########################################
910 # AIO probe
911 if test "$aio" = "yes" ; then
912 aio=no
913 cat > $TMPC << EOF
914 #include <aio.h>
915 int main(void) { return aio_write(NULL); }
917 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
918 aio=yes
922 ##########################################
923 # signalfd probe
924 cat > $TMPC << EOF
925 #define _GNU_SOURCE
926 #include <unistd.h>
927 #include <sys/syscall.h>
928 #include <signal.h>
929 int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
932 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
933 signalfd=yes
936 ##########################################
937 # eventfd probe
938 cat > $TMPC << EOF
939 #define _GNU_SOURCE
940 #include <unistd.h>
941 #include <sys/syscall.h>
942 int main(void) { return syscall(SYS_eventfd, 0); }
945 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
946 eventfd=yes
949 # Check if tools are available to build documentation.
950 if [ -x "`which texi2html 2>/dev/null`" ] && \
951 [ -x "`which pod2man 2>/dev/null`" ]; then
952 build_docs="yes"
955 if test "$mingw32" = "yes" ; then
956 if test -z "$prefix" ; then
957 prefix="/c/Program Files/Qemu"
959 mansuffix=""
960 datasuffix=""
961 docsuffix=""
962 binsuffix=""
963 else
964 if test -z "$prefix" ; then
965 prefix="/usr/local"
967 mansuffix="/share/man"
968 datasuffix="/share/qemu"
969 docsuffix="/share/doc/qemu"
970 binsuffix="/bin"
973 echo "Install prefix $prefix"
974 echo "BIOS directory $prefix$datasuffix"
975 echo "binary directory $prefix$binsuffix"
976 if test "$mingw32" = "no" ; then
977 echo "Manual directory $prefix$mansuffix"
978 echo "ELF interp prefix $interp_prefix"
980 echo "Source path $source_path"
981 echo "C compiler $cc"
982 echo "Host C compiler $host_cc"
983 echo "ARCH_CFLAGS $ARCH_CFLAGS"
984 echo "make $make"
985 echo "install $install"
986 echo "host CPU $cpu"
987 echo "host big endian $bigendian"
988 echo "target list $target_list"
989 echo "gprof enabled $gprof"
990 echo "profiler $profiler"
991 echo "static build $static"
992 echo "-Werror enabled $werror"
993 if test "$darwin" = "yes" ; then
994 echo "Cocoa support $cocoa"
996 echo "SDL support $sdl"
997 if test "$sdl" != "no" ; then
998 echo "SDL static link $sdl_static"
1000 echo "curses support $curses"
1001 echo "mingw32 support $mingw32"
1002 echo "Audio drivers $audio_drv_list"
1003 echo "Extra audio cards $audio_card_list"
1004 echo "Mixer emulation $mixemu"
1005 echo "VNC TLS support $vnc_tls"
1006 if test "$vnc_tls" = "yes" ; then
1007 echo " TLS CFLAGS $vnc_tls_cflags"
1008 echo " TLS LIBS $vnc_tls_libs"
1010 if test -n "$sparc_cpu"; then
1011 echo "Target Sparc Arch $sparc_cpu"
1013 echo "kqemu support $kqemu"
1014 echo "brlapi support $brlapi"
1015 echo "Documentation $build_docs"
1016 [ ! -z "$uname_release" ] && \
1017 echo "uname -r $uname_release"
1018 echo "NPTL support $nptl"
1019 echo "vde support $vde"
1020 echo "AIO support $aio"
1022 if test $sdl_too_old = "yes"; then
1023 echo "-> Your SDL version is too old - please upgrade to have SDL support"
1025 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1026 echo "The error log from compiling the libSDL test is: "
1027 cat /tmp/qemu-$$-sdl-config.log
1029 rm -f /tmp/qemu-$$-sdl-config.log
1030 #if test "$sdl_static" = "no"; then
1031 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1033 config_mak="config-host.mak"
1034 config_h="config-host.h"
1036 #echo "Creating $config_mak and $config_h"
1038 test -f $config_h && mv $config_h ${config_h}~
1040 echo "# Automatically generated by configure - do not modify" > $config_mak
1041 echo "# Configured with: $0 $@" >> $config_mak
1042 echo "/* Automatically generated by configure - do not modify */" > $config_h
1044 echo "prefix=$prefix" >> $config_mak
1045 echo "bindir=\${prefix}$binsuffix" >> $config_mak
1046 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1047 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1048 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1049 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1050 echo "MAKE=$make" >> $config_mak
1051 echo "INSTALL=$install" >> $config_mak
1052 echo "CC=$cc" >> $config_mak
1053 echo "HOST_CC=$host_cc" >> $config_mak
1054 echo "AR=$ar" >> $config_mak
1055 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1056 # XXX: only use CFLAGS and LDFLAGS ?
1057 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1058 # compilation of dyngen tool (useful for win32 build on Linux host)
1059 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1060 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1061 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1062 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1063 echo "CFLAGS=$CFLAGS" >> $config_mak
1064 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1065 echo "EXESUF=$EXESUF" >> $config_mak
1066 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1067 case "$cpu" in
1068 i386)
1069 echo "ARCH=i386" >> $config_mak
1070 echo "#define HOST_I386 1" >> $config_h
1072 x86_64)
1073 echo "ARCH=x86_64" >> $config_mak
1074 echo "#define HOST_X86_64 1" >> $config_h
1076 alpha)
1077 echo "ARCH=alpha" >> $config_mak
1078 echo "#define HOST_ALPHA 1" >> $config_h
1080 armv4b)
1081 echo "ARCH=arm" >> $config_mak
1082 echo "#define HOST_ARM 1" >> $config_h
1084 armv4l)
1085 echo "ARCH=arm" >> $config_mak
1086 echo "#define HOST_ARM 1" >> $config_h
1088 cris)
1089 echo "ARCH=cris" >> $config_mak
1090 echo "#define HOST_CRIS 1" >> $config_h
1092 hppa)
1093 echo "ARCH=hppa" >> $config_mak
1094 echo "#define HOST_HPPA 1" >> $config_h
1096 ia64)
1097 echo "ARCH=ia64" >> $config_mak
1098 echo "#define HOST_IA64 1" >> $config_h
1100 m68k)
1101 echo "ARCH=m68k" >> $config_mak
1102 echo "#define HOST_M68K 1" >> $config_h
1104 mips)
1105 echo "ARCH=mips" >> $config_mak
1106 echo "#define HOST_MIPS 1" >> $config_h
1108 mips64)
1109 echo "ARCH=mips64" >> $config_mak
1110 echo "#define HOST_MIPS64 1" >> $config_h
1112 powerpc)
1113 if test "$hostlongbits" = "32"; then
1114 echo "ARCH=ppc" >> $config_mak
1115 echo "#define HOST_PPC 1" >> $config_h
1116 else
1117 echo "ARCH=ppc64" >> $config_mak
1118 echo "#define HOST_PPC64 1" >> $config_h
1121 s390)
1122 echo "ARCH=s390" >> $config_mak
1123 echo "#define HOST_S390 1" >> $config_h
1125 sparc)
1126 echo "ARCH=sparc" >> $config_mak
1127 echo "#define HOST_SPARC 1" >> $config_h
1129 sparc64)
1130 echo "ARCH=sparc64" >> $config_mak
1131 echo "#define HOST_SPARC64 1" >> $config_h
1134 echo "Unsupported CPU = $cpu"
1135 exit 1
1137 esac
1138 if test "$bigendian" = "yes" ; then
1139 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1140 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1142 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1143 if test "$mingw32" = "yes" ; then
1144 echo "CONFIG_WIN32=yes" >> $config_mak
1145 echo "#define CONFIG_WIN32 1" >> $config_h
1146 else
1147 cat > $TMPC << EOF
1148 #include <byteswap.h>
1149 int main(void) { return bswap_32(0); }
1151 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1152 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1156 if [ "$openbsd" = "yes" ] ; then
1157 echo "#define ENOTSUP 4096" >> $config_h
1160 if test "$darwin" = "yes" ; then
1161 echo "CONFIG_DARWIN=yes" >> $config_mak
1162 echo "#define CONFIG_DARWIN 1" >> $config_h
1164 if test "$solaris" = "yes" ; then
1165 echo "CONFIG_SOLARIS=yes" >> $config_mak
1166 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1167 if test "$needs_libsunmath" = "yes" ; then
1168 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1169 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1172 if test -n "$sparc_cpu"; then
1173 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1174 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1176 if test "$gdbstub" = "yes" ; then
1177 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1178 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1180 if test "$gprof" = "yes" ; then
1181 echo "TARGET_GPROF=yes" >> $config_mak
1182 echo "#define HAVE_GPROF 1" >> $config_h
1184 if test "$static" = "yes" ; then
1185 echo "CONFIG_STATIC=yes" >> $config_mak
1186 echo "#define CONFIG_STATIC 1" >> $config_h
1188 if test $profiler = "yes" ; then
1189 echo "#define CONFIG_PROFILER 1" >> $config_h
1191 if test "$slirp" = "yes" ; then
1192 echo "CONFIG_SLIRP=yes" >> $config_mak
1193 echo "#define CONFIG_SLIRP 1" >> $config_h
1195 if test "$vde" = "yes" ; then
1196 echo "CONFIG_VDE=yes" >> $config_mak
1197 echo "#define CONFIG_VDE 1" >> $config_h
1198 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1200 for card in $audio_card_list; do
1201 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1202 echo "$def=yes" >> $config_mak
1203 echo "#define $def 1" >> $config_h
1204 done
1205 echo "#define AUDIO_DRIVERS \\" >> $config_h
1206 for drv in $audio_drv_list; do
1207 echo " &${drv}_audio_driver, \\" >>$config_h
1208 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1209 echo "$def=yes" >> $config_mak
1210 if test "$drv" = "fmod"; then
1211 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1212 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1213 elif test "$drv" = "oss"; then
1214 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1216 done
1217 echo "" >>$config_h
1218 if test "$mixemu" = "yes" ; then
1219 echo "CONFIG_MIXEMU=yes" >> $config_mak
1220 echo "#define CONFIG_MIXEMU 1" >> $config_h
1222 if test "$vnc_tls" = "yes" ; then
1223 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1224 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1225 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1226 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1228 qemu_version=`head $source_path/VERSION`
1229 echo "VERSION=$qemu_version" >>$config_mak
1230 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1232 echo "SRC_PATH=$source_path" >> $config_mak
1233 if [ "$source_path_used" = "yes" ]; then
1234 echo "VPATH=$source_path" >> $config_mak
1236 echo "TARGET_DIRS=$target_list" >> $config_mak
1237 if [ "$build_docs" = "yes" ] ; then
1238 echo "BUILD_DOCS=yes" >> $config_mak
1240 if test "$static" = "yes"; then
1241 sdl1=$sdl_static
1242 else
1243 sdl1=$sdl
1245 if test "$sdl1" = "yes" ; then
1246 echo "#define CONFIG_SDL 1" >> $config_h
1247 echo "CONFIG_SDL=yes" >> $config_mak
1248 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1249 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1250 else
1251 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1253 if [ "${aa}" = "yes" ] ; then
1254 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1255 else
1256 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1259 if test "$cocoa" = "yes" ; then
1260 echo "#define CONFIG_COCOA 1" >> $config_h
1261 echo "CONFIG_COCOA=yes" >> $config_mak
1263 if test "$curses" = "yes" ; then
1264 echo "#define CONFIG_CURSES 1" >> $config_h
1265 echo "CONFIG_CURSES=yes" >> $config_mak
1266 echo "CURSES_LIBS=-lcurses" >> $config_mak
1268 if test "$brlapi" = "yes" ; then
1269 echo "CONFIG_BRLAPI=yes" >> $config_mak
1270 echo "#define CONFIG_BRLAPI 1" >> $config_h
1271 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1273 if test "$bluez" = "yes" ; then
1274 echo "CONFIG_BLUEZ=yes" >> $config_mak
1275 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1276 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1277 echo "#define CONFIG_BLUEZ 1" >> $config_h
1279 if test "$aio" = "yes" ; then
1280 echo "#define CONFIG_AIO 1" >> $config_h
1281 echo "CONFIG_AIO=yes" >> $config_mak
1283 if test "$signalfd" = "yes" ; then
1284 echo "#define CONFIG_signalfd 1" >> $config_h
1286 if test "$eventfd" = "yes" ; then
1287 echo "#define CONFIG_eventfd 1" >> $config_h
1290 # XXX: suppress that
1291 if [ "$bsd" = "yes" ] ; then
1292 echo "#define O_LARGEFILE 0" >> $config_h
1293 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1294 echo "#define _BSD 1" >> $config_h
1297 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1299 tools=
1300 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1301 tools="qemu-img\$(EXESUF) $tools"
1302 if [ "$linux" = "yes" ] ; then
1303 tools="qemu-nbd\$(EXESUF) $tools"
1306 echo "TOOLS=$tools" >> $config_mak
1308 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1310 for target in $target_list; do
1311 target_dir="$target"
1312 config_mak=$target_dir/config.mak
1313 config_h=$target_dir/config.h
1314 target_cpu=`echo $target | cut -d '-' -f 1`
1315 target_bigendian="no"
1316 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1317 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1318 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1319 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1320 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1321 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1322 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1323 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1324 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1325 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1326 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1327 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1328 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1329 target_softmmu="no"
1330 target_user_only="no"
1331 target_linux_user="no"
1332 target_darwin_user="no"
1333 case "$target" in
1334 ${target_cpu}-softmmu)
1335 target_softmmu="yes"
1337 ${target_cpu}-linux-user)
1338 target_user_only="yes"
1339 target_linux_user="yes"
1341 ${target_cpu}-darwin-user)
1342 target_user_only="yes"
1343 target_darwin_user="yes"
1346 echo "ERROR: Target '$target' not recognised"
1347 exit 1
1349 esac
1351 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1352 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1353 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1354 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1355 echo "Note that this will disable all output from the virtual graphics card"
1356 echo "except through VNC or curses."
1357 exit 1;
1360 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1362 test -f $config_h && mv $config_h ${config_h}~
1364 mkdir -p $target_dir
1365 mkdir -p $target_dir/fpu
1366 mkdir -p $target_dir/tcg
1367 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1368 mkdir -p $target_dir/nwfpe
1372 # don't use ln -sf as not all "ln -sf" over write the file/link
1374 rm -f $target_dir/Makefile
1375 ln -s $source_path/Makefile.target $target_dir/Makefile
1378 echo "# Automatically generated by configure - do not modify" > $config_mak
1379 echo "/* Automatically generated by configure - do not modify */" > $config_h
1382 echo "include ../config-host.mak" >> $config_mak
1383 echo "#include \"../config-host.h\"" >> $config_h
1385 bflt="no"
1386 elfload32="no"
1387 target_nptl="no"
1388 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1389 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1391 case "$target_cpu" in
1392 i386)
1393 echo "TARGET_ARCH=i386" >> $config_mak
1394 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1395 echo "#define TARGET_I386 1" >> $config_h
1396 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1397 then
1398 echo "#define USE_KQEMU 1" >> $config_h
1400 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1401 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1402 then
1403 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1404 else
1405 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1408 x86_64)
1409 echo "TARGET_ARCH=x86_64" >> $config_mak
1410 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1411 echo "#define TARGET_I386 1" >> $config_h
1412 echo "#define TARGET_X86_64 1" >> $config_h
1413 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1414 then
1415 echo "#define USE_KQEMU 1" >> $config_h
1418 alpha)
1419 echo "TARGET_ARCH=alpha" >> $config_mak
1420 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1421 echo "#define TARGET_ALPHA 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 $TMPI