Fix error introduced by r5044
[qemu/mini2440.git] / configure
blobacb4a4a8aec702b3ea4d0d095c1bedb46f234608
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"
114 # OS specific
115 targetos=`uname -s`
116 case $targetos in
117 CYGWIN*)
118 mingw32="yes"
119 OS_CFLAGS="-mno-cygwin"
120 if [ "$cpu" = "i386" ] ; then
121 kqemu="yes"
123 audio_possible_drivers="sdl"
125 MINGW32*)
126 mingw32="yes"
127 if [ "$cpu" = "i386" ] ; then
128 kqemu="yes"
130 audio_possible_drivers="dsound sdl fmod"
132 GNU/kFreeBSD)
133 audio_drv_list="oss"
134 audio_possible_drivers="oss sdl esd pa"
135 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
136 kqemu="yes"
139 FreeBSD)
140 bsd="yes"
141 audio_drv_list="oss"
142 audio_possible_drivers="oss sdl esd pa"
143 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
144 kqemu="yes"
147 NetBSD)
148 bsd="yes"
149 audio_drv_list="oss"
150 audio_possible_drivers="oss sdl esd"
152 OpenBSD)
153 bsd="yes"
154 openbsd="yes"
155 audio_drv_list="oss"
156 audio_possible_drivers="oss sdl esd"
157 oss_lib="-lossaudio"
159 Darwin)
160 bsd="yes"
161 darwin="yes"
162 darwin_user="yes"
163 cocoa="yes"
164 audio_drv_list="coreaudio"
165 audio_possible_drivers="coreaudio sdl fmod"
166 OS_CFLAGS="-mdynamic-no-pic"
167 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
169 SunOS)
170 solaris="yes"
171 make="gmake"
172 install="ginstall"
173 needs_libsunmath="no"
174 solarisrev=`uname -r | cut -f2 -d.`
175 # have to select again, because `uname -m` returns i86pc
176 # even on an x86_64 box.
177 solariscpu=`isainfo -k`
178 if test "${solariscpu}" = "amd64" ; then
179 cpu="x86_64"
181 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
182 if test "$solarisrev" -le 9 ; then
183 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
184 needs_libsunmath="yes"
185 else
186 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
187 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
188 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
189 echo "Studio 11 can be downloaded from www.sun.com."
190 exit 1
193 if test "$solarisrev" -ge 9 ; then
194 kqemu="yes"
197 if test -f /usr/include/sys/soundcard.h ; then
198 audio_drv_list="oss"
200 audio_possible_drivers="oss sdl"
203 audio_drv_list="oss"
204 audio_possible_drivers="oss alsa sdl esd pa"
205 linux="yes"
206 linux_user="yes"
207 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
208 kqemu="yes"
209 audio_possible_drivers="$audio_possible_drivers fmod"
212 esac
214 if [ "$bsd" = "yes" ] ; then
215 if [ "$darwin" != "yes" ] ; then
216 make="gmake"
220 # find source path
221 source_path=`dirname "$0"`
222 source_path_used="no"
223 workdir=`pwd`
224 if [ -z "$source_path" ]; then
225 source_path=$workdir
226 else
227 source_path=`cd "$source_path"; pwd`
229 [ -f "$workdir/vl.c" ] || source_path_used="yes"
231 werror="no"
232 # generate compile errors on warnings for development builds
233 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
234 #werror="yes";
237 for opt do
238 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
239 case "$opt" in
240 --help|-h) show_help=yes
242 --prefix=*) prefix="$optarg"
244 --interp-prefix=*) interp_prefix="$optarg"
246 --source-path=*) source_path="$optarg"
247 source_path_used="yes"
249 --cross-prefix=*) cross_prefix="$optarg"
251 --cc=*) cc="$optarg"
252 gcc3_search="no"
254 --host-cc=*) host_cc="$optarg"
256 --make=*) make="$optarg"
258 --install=*) install="$optarg"
260 --extra-cflags=*) CFLAGS="$optarg"
262 --extra-ldflags=*) LDFLAGS="$optarg"
264 --cpu=*) cpu="$optarg"
266 --target-list=*) target_list="$optarg"
268 --enable-gprof) gprof="yes"
270 --static) static="yes"
272 --disable-sdl) sdl="no"
274 --fmod-lib=*) fmod_lib="$optarg"
276 --fmod-inc=*) fmod_inc="$optarg"
278 --oss-lib=*) oss_lib="$optarg"
280 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
282 --audio-drv-list=*) audio_drv_list="$optarg"
284 --disable-vnc-tls) vnc_tls="no"
286 --disable-slirp) slirp="no"
288 --disable-vde) vde="no"
290 --disable-kqemu) kqemu="no"
292 --disable-brlapi) brlapi="no"
294 --enable-profiler) profiler="yes"
296 --enable-cocoa)
297 cocoa="yes" ;
298 sdl="no" ;
299 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
301 --disable-gfx-check) check_gfx="no"
303 --disable-gcc-check) check_gcc="no"
305 --disable-system) softmmu="no"
307 --enable-system) softmmu="yes"
309 --disable-linux-user) linux_user="no"
311 --enable-linux-user) linux_user="yes"
313 --disable-darwin-user) darwin_user="no"
315 --enable-darwin-user) darwin_user="yes"
317 --enable-uname-release=*) uname_release="$optarg"
319 --sparc_cpu=*)
320 sparc_cpu="$optarg"
321 case $sparc_cpu in
322 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
323 target_cpu="sparc"; cpu="sparc" ;;
324 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
325 target_cpu="sparc"; cpu="sparc" ;;
326 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
327 target_cpu="sparc64"; cpu="sparc64" ;;
328 *) echo "undefined SPARC architecture. Exiting";exit 1;;
329 esac
331 --enable-werror) werror="yes"
333 --disable-werror) werror="no"
335 --disable-curses) curses="no"
337 --disable-nptl) nptl="no"
339 --enable-mixemu) mixemu="yes"
341 --disable-aio) aio="no"
343 *) echo "ERROR: unknown option $opt"; show_help="yes"
345 esac
346 done
348 # default flags for all hosts
349 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
350 LDFLAGS="$LDFLAGS -g"
351 if test "$werror" = "yes" ; then
352 CFLAGS="$CFLAGS -Werror"
356 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
357 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
359 case "$cpu" in
360 sparc) if test -z "$sparc_cpu" ; then
361 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
362 ARCH_LDFLAGS="-m32"
363 else
364 ARCH_CFLAGS="${SP_CFLAGS}"
365 ARCH_LDFLAGS="${SP_LDFLAGS}"
368 sparc64) if test -z "$sparc_cpu" ; then
369 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
370 ARCH_LDFLAGS="-m64"
371 else
372 ARCH_CFLAGS="${SP_CFLAGS}"
373 ARCH_LDFLAGS="${SP_LDFLAGS}"
376 s390)
377 ARCH_CFLAGS="-march=z900"
379 i386)
380 ARCH_CFLAGS="-m32"
381 ARCH_LDFLAGS="-m32"
383 x86_64)
384 ARCH_CFLAGS="-m64"
385 ARCH_LDFLAGS="-m64"
387 esac
389 if test x"$show_help" = x"yes" ; then
390 cat << EOF
392 Usage: configure [options]
393 Options: [defaults in brackets after descriptions]
396 echo "Standard options:"
397 echo " --help print this message"
398 echo " --prefix=PREFIX install in PREFIX [$prefix]"
399 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
400 echo " use %M for cpu name [$interp_prefix]"
401 echo " --target-list=LIST set target list [$target_list]"
402 echo ""
403 echo "kqemu kernel acceleration support:"
404 echo " --disable-kqemu disable kqemu support"
405 echo ""
406 echo "Advanced options (experts only):"
407 echo " --source-path=PATH path of source code [$source_path]"
408 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
409 echo " --cc=CC use C compiler CC [$cc]"
410 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
411 echo " --make=MAKE use specified make [$make]"
412 echo " --install=INSTALL use specified install [$install]"
413 echo " --static enable static build [$static]"
414 echo " --disable-werror disable compilation abort on warning"
415 echo " --disable-sdl disable SDL"
416 echo " --enable-cocoa enable COCOA (Mac OS X only)"
417 echo " --audio-drv-list=LIST set audio drivers list:"
418 echo " Available drivers: $audio_possible_drivers"
419 echo " --audio-card-list=LIST set list of additional emulated audio cards"
420 echo " Available cards: ac97 adlib cs4231a gus"
421 echo " --enable-mixemu enable mixer emulation"
422 echo " --disable-brlapi disable BrlAPI"
423 echo " --disable-vnc-tls disable TLS encryption for VNC server"
424 echo " --disable-curses disable curses output"
425 echo " --disable-nptl disable usermode NPTL support"
426 echo " --enable-system enable all system emulation targets"
427 echo " --disable-system disable all system emulation targets"
428 echo " --enable-linux-user enable all linux usermode emulation targets"
429 echo " --disable-linux-user disable all linux usermode emulation targets"
430 echo " --enable-darwin-user enable all darwin usermode emulation targets"
431 echo " --disable-darwin-user disable all darwin usermode emulation targets"
432 echo " --fmod-lib path to FMOD library"
433 echo " --fmod-inc path to FMOD includes"
434 echo " --oss-lib path to OSS library"
435 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
436 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
437 echo " --disable-vde disable support for vde network"
438 echo " --disable-aio disable AIO support"
439 echo ""
440 echo "NOTE: The object files are built at the place where configure is launched"
441 exit 1
444 cc="${cross_prefix}${cc}"
445 ar="${cross_prefix}${ar}"
446 strip="${cross_prefix}${strip}"
448 # check that the C compiler works.
449 cat > $TMPC <<EOF
450 int main(void) {}
453 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
454 : C compiler works ok
455 else
456 echo "ERROR: \"$cc\" either does not exist or does not work"
457 exit 1
460 # check compiler to see if we're on mingw32
461 cat > $TMPC <<EOF
462 #include <windows.h>
463 #ifndef _WIN32
464 #error not windows
465 #endif
466 int main(void) {}
469 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
470 mingw32="yes"
473 if test "$mingw32" = "yes" ; then
474 linux="no"
475 EXESUF=".exe"
476 oss="no"
477 linux_user="no"
480 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
481 AIOLIBS=
482 else
483 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
484 AIOLIBS="-lrt -lpthread"
487 # Check for gcc4, error if pre-gcc4
488 if test "$check_gcc" = "yes" ; then
489 cat > $TMPC <<EOF
490 #if __GNUC__ < 4
491 #error gcc3
492 #endif
493 int main(){return 0;}
495 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
496 echo "WARNING: \"$cc\" looks like gcc 4.x"
497 found_compat_cc="no"
498 if test "$gcc3_search" = "yes" ; then
499 echo "Looking for gcc 3.x"
500 for compat_cc in $gcc3_list ; do
501 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
502 echo "Found \"$compat_cc\""
503 cc="$cross_prefix$compat_cc"
504 found_compat_cc="yes"
505 break
507 done
508 if test "$found_compat_cc" = "no" ; then
509 echo "gcc 3.x not found!"
512 if test "$found_compat_cc" = "no" ; then
513 echo "QEMU is known to have problems when compiled with gcc 4.x"
514 echo "It is recommended that you use gcc 3.x to build QEMU"
515 echo "To use this compiler anyway, configure with --disable-gcc-check"
516 exit 1;
522 # Solaris specific configure tool chain decisions
524 if test "$solaris" = "yes" ; then
526 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
527 # override the check with --disable-gcc-check
529 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
530 solgcc=`which $cc`
531 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
532 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
533 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
534 echo "or get the latest patch from SunSolve for gcc"
535 exit 1
538 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
539 if test -z "$solinst" ; then
540 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
541 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
542 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
543 exit 1
545 if test "$solinst" = "/usr/sbin/install" ; then
546 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
547 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
548 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
549 exit 1
551 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
552 if test -z "$sol_ar" ; then
553 echo "Error: No path includes ar"
554 if test -f /usr/ccs/bin/ar ; then
555 echo "Add /usr/ccs/bin to your path and rerun configure"
557 exit 1
562 if test -z "$target_list" ; then
563 # these targets are portable
564 if [ "$softmmu" = "yes" ] ; then
565 target_list="\
566 i386-softmmu \
567 x86_64-softmmu \
568 arm-softmmu \
569 cris-softmmu \
570 m68k-softmmu \
571 mips-softmmu \
572 mipsel-softmmu \
573 mips64-softmmu \
574 mips64el-softmmu \
575 ppc-softmmu \
576 ppcemb-softmmu \
577 ppc64-softmmu \
578 sh4-softmmu \
579 sh4eb-softmmu \
580 sparc-softmmu \
583 # the following are Linux specific
584 if [ "$linux_user" = "yes" ] ; then
585 target_list="${target_list}\
586 i386-linux-user \
587 x86_64-linux-user \
588 alpha-linux-user \
589 arm-linux-user \
590 armeb-linux-user \
591 cris-linux-user \
592 m68k-linux-user \
593 mips-linux-user \
594 mipsel-linux-user \
595 ppc-linux-user \
596 ppc64-linux-user \
597 ppc64abi32-linux-user \
598 sh4-linux-user \
599 sh4eb-linux-user \
600 sparc-linux-user \
601 sparc64-linux-user \
602 sparc32plus-linux-user \
605 # the following are Darwin specific
606 if [ "$darwin_user" = "yes" ] ; then
607 target_list="$target_list i386-darwin-user ppc-darwin-user"
609 else
610 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
612 if test -z "$target_list" ; then
613 echo "No targets enabled"
614 exit 1
617 if test -z "$cross_prefix" ; then
619 # ---
620 # big/little endian test
621 cat > $TMPC << EOF
622 #include <inttypes.h>
623 int main(int argc, char ** argv){
624 volatile uint32_t i=0x01234567;
625 return (*((uint8_t*)(&i))) == 0x67;
629 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
630 $TMPE && bigendian="yes"
631 else
632 echo big/little test failed
635 else
637 # if cross compiling, cannot launch a program, so make a static guess
638 if test "$cpu" = "armv4b" \
639 -o "$cpu" = "hppa" \
640 -o "$cpu" = "m68k" \
641 -o "$cpu" = "mips" \
642 -o "$cpu" = "mips64" \
643 -o "$cpu" = "powerpc" \
644 -o "$cpu" = "s390" \
645 -o "$cpu" = "sparc" \
646 -o "$cpu" = "sparc64"; then
647 bigendian="yes"
652 # host long bits test
653 hostlongbits="32"
654 if test "$cpu" = "x86_64" \
655 -o "$cpu" = "alpha" \
656 -o "$cpu" = "ia64" \
657 -o "$cpu" = "sparc64"; then
658 hostlongbits="64"
661 # ppc specific hostlongbits selection
662 if test "$cpu" = "powerpc" ; then
663 cat > $TMPC <<EOF
664 int main(void){return sizeof(long);}
667 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null; then
668 $TMPE
669 case $? in
670 4) hostlongbits="32";;
671 8) hostlongbits="64";;
672 *) echo "Couldn't determine bits per long value"; exit 1;;
673 esac
674 else
675 echo hostlongbits test failed
676 exit 1
680 # check gcc options support
681 cat > $TMPC <<EOF
682 int main(void) {
686 # Check host NPTL support
687 cat > $TMPC <<EOF
688 #include <sched.h>
689 #include <linux/futex.h>
690 void foo()
692 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
693 #error bork
694 #endif
698 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
700 else
701 nptl="no"
704 ##########################################
705 # SDL probe
707 sdl_too_old=no
709 if test -z "$sdl" ; then
710 sdl_config="sdl-config"
711 sdl=no
712 sdl_static=no
714 cat > $TMPC << EOF
715 #include <SDL.h>
716 #undef main /* We don't want SDL to override our main() */
717 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
719 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
720 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
721 if test "$_sdlversion" -lt 121 ; then
722 sdl_too_old=yes
723 else
724 if test "$cocoa" = "no" ; then
725 sdl=yes
729 # static link with sdl ?
730 if test "$sdl" = "yes" ; then
731 aa="no"
732 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
733 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
734 if [ "$aa" = "yes" ] ; then
735 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
738 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
739 sdl_static=yes
741 fi # static link
742 fi # sdl compile test
743 else
744 # Make sure to disable cocoa if sdl was set
745 if test "$sdl" = "yes" ; then
746 cocoa="no"
747 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
749 fi # -z $sdl
751 ##########################################
752 # VNC TLS detection
753 if test "$vnc_tls" = "yes" ; then
754 cat > $TMPC <<EOF
755 #include <gnutls/gnutls.h>
756 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
758 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
759 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
760 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
761 $vnc_tls_libs 2> /dev/null ; then
763 else
764 vnc_tls="no"
768 ##########################################
769 # vde libraries probe
770 if test "$vde" = "yes" ; then
771 cat > $TMPC << EOF
772 #include <libvdeplug.h>
773 int main(void) { struct vde_open_args a = {0, 0, 0} ; return 0;}
775 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
777 else
778 vde="no"
782 ##########################################
783 # Sound support libraries probe
785 audio_drv_probe()
787 drv=$1
788 hdr=$2
789 lib=$3
790 exp=$4
791 cfl=$5
792 cat > $TMPC << EOF
793 #include <$hdr>
794 int main(void) { $exp }
796 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
798 else
799 echo
800 echo "Error: $drv check failed"
801 echo "Make sure to have the $drv libs and headers installed."
802 echo
803 exit 1
807 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
808 for drv in $audio_drv_list; do
809 case $drv in
810 alsa)
811 audio_drv_probe $drv alsa/asoundlib.h -lasound \
812 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
815 fmod)
816 if test -z $fmod_lib || test -z $fmod_inc; then
817 echo
818 echo "Error: You must specify path to FMOD library and headers"
819 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
820 echo
821 exit 1
823 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
826 esd)
827 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
831 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
832 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
835 oss|sdl|core|wav|dsound)
836 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
840 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
841 echo
842 echo "Error: Unknown driver '$drv' selected"
843 echo "Possible drivers are: $audio_possible_drivers"
844 echo
845 exit 1
848 esac
849 done
851 ##########################################
852 # BrlAPI probe
854 if test -z "$brlapi" ; then
855 brlapi=no
856 cat > $TMPC << EOF
857 #include <brlapi.h>
858 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
860 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
861 brlapi=yes
862 fi # brlapi compile test
863 fi # -z $brlapi
865 ##########################################
866 # curses probe
868 if test "$curses" = "yes" ; then
869 curses=no
870 cat > $TMPC << EOF
871 #include <curses.h>
872 int main(void) { return curses_version(); }
874 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
875 curses=yes
877 fi # test "$curses"
879 ##########################################
880 # AIO probe
881 if test "$aio" = "yes" ; then
882 aio=no
883 cat > $TMPC << EOF
884 #include <aio.h>
885 int main(void) { return aio_write(NULL); }
887 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
888 aio=yes
892 # Check if tools are available to build documentation.
893 if [ -x "`which texi2html 2>/dev/null`" ] && \
894 [ -x "`which pod2man 2>/dev/null`" ]; then
895 build_docs="yes"
898 if test "$mingw32" = "yes" ; then
899 if test -z "$prefix" ; then
900 prefix="/c/Program Files/Qemu"
902 mansuffix=""
903 datasuffix=""
904 docsuffix=""
905 binsuffix=""
906 else
907 if test -z "$prefix" ; then
908 prefix="/usr/local"
910 mansuffix="/share/man"
911 datasuffix="/share/qemu"
912 docsuffix="/share/doc/qemu"
913 binsuffix="/bin"
916 echo "Install prefix $prefix"
917 echo "BIOS directory $prefix$datasuffix"
918 echo "binary directory $prefix$binsuffix"
919 if test "$mingw32" = "no" ; then
920 echo "Manual directory $prefix$mansuffix"
921 echo "ELF interp prefix $interp_prefix"
923 echo "Source path $source_path"
924 echo "C compiler $cc"
925 echo "Host C compiler $host_cc"
926 echo "ARCH_CFLAGS $ARCH_CFLAGS"
927 echo "make $make"
928 echo "install $install"
929 echo "host CPU $cpu"
930 echo "host big endian $bigendian"
931 echo "target list $target_list"
932 echo "gprof enabled $gprof"
933 echo "profiler $profiler"
934 echo "static build $static"
935 echo "-Werror enabled $werror"
936 if test "$darwin" = "yes" ; then
937 echo "Cocoa support $cocoa"
939 echo "SDL support $sdl"
940 if test "$sdl" != "no" ; then
941 echo "SDL static link $sdl_static"
943 echo "curses support $curses"
944 echo "mingw32 support $mingw32"
945 echo "Audio drivers $audio_drv_list"
946 echo "Extra audio cards $audio_card_list"
947 echo "Mixer emulation $mixemu"
948 echo "VNC TLS support $vnc_tls"
949 if test "$vnc_tls" = "yes" ; then
950 echo " TLS CFLAGS $vnc_tls_cflags"
951 echo " TLS LIBS $vnc_tls_libs"
953 if test -n "$sparc_cpu"; then
954 echo "Target Sparc Arch $sparc_cpu"
956 echo "kqemu support $kqemu"
957 echo "brlapi support $brlapi"
958 echo "Documentation $build_docs"
959 [ ! -z "$uname_release" ] && \
960 echo "uname -r $uname_release"
961 echo "NPTL support $nptl"
962 echo "vde support $vde"
963 echo "AIO support $aio"
965 if test $sdl_too_old = "yes"; then
966 echo "-> Your SDL version is too old - please upgrade to have SDL support"
968 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
969 echo "The error log from compiling the libSDL test is: "
970 cat /tmp/qemu-$$-sdl-config.log
972 rm -f /tmp/qemu-$$-sdl-config.log
973 #if test "$sdl_static" = "no"; then
974 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
976 config_mak="config-host.mak"
977 config_h="config-host.h"
979 #echo "Creating $config_mak and $config_h"
981 test -f $config_h && mv $config_h ${config_h}~
983 echo "# Automatically generated by configure - do not modify" > $config_mak
984 echo "# Configured with: $0 $@" >> $config_mak
985 echo "/* Automatically generated by configure - do not modify */" > $config_h
987 echo "prefix=$prefix" >> $config_mak
988 echo "bindir=\${prefix}$binsuffix" >> $config_mak
989 echo "mandir=\${prefix}$mansuffix" >> $config_mak
990 echo "datadir=\${prefix}$datasuffix" >> $config_mak
991 echo "docdir=\${prefix}$docsuffix" >> $config_mak
992 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
993 echo "MAKE=$make" >> $config_mak
994 echo "INSTALL=$install" >> $config_mak
995 echo "CC=$cc" >> $config_mak
996 echo "HOST_CC=$host_cc" >> $config_mak
997 echo "AR=$ar" >> $config_mak
998 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
999 # XXX: only use CFLAGS and LDFLAGS ?
1000 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1001 # compilation of dyngen tool (useful for win32 build on Linux host)
1002 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1003 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1004 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1005 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1006 echo "CFLAGS=$CFLAGS" >> $config_mak
1007 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1008 echo "EXESUF=$EXESUF" >> $config_mak
1009 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1010 case "$cpu" in
1011 i386)
1012 echo "ARCH=i386" >> $config_mak
1013 echo "#define HOST_I386 1" >> $config_h
1015 x86_64)
1016 echo "ARCH=x86_64" >> $config_mak
1017 echo "#define HOST_X86_64 1" >> $config_h
1019 alpha)
1020 echo "ARCH=alpha" >> $config_mak
1021 echo "#define HOST_ALPHA 1" >> $config_h
1023 armv4b)
1024 echo "ARCH=arm" >> $config_mak
1025 echo "#define HOST_ARM 1" >> $config_h
1027 armv4l)
1028 echo "ARCH=arm" >> $config_mak
1029 echo "#define HOST_ARM 1" >> $config_h
1031 cris)
1032 echo "ARCH=cris" >> $config_mak
1033 echo "#define HOST_CRIS 1" >> $config_h
1035 hppa)
1036 echo "ARCH=hppa" >> $config_mak
1037 echo "#define HOST_HPPA 1" >> $config_h
1039 ia64)
1040 echo "ARCH=ia64" >> $config_mak
1041 echo "#define HOST_IA64 1" >> $config_h
1043 m68k)
1044 echo "ARCH=m68k" >> $config_mak
1045 echo "#define HOST_M68K 1" >> $config_h
1047 mips)
1048 echo "ARCH=mips" >> $config_mak
1049 echo "#define HOST_MIPS 1" >> $config_h
1051 mips64)
1052 echo "ARCH=mips64" >> $config_mak
1053 echo "#define HOST_MIPS64 1" >> $config_h
1055 powerpc)
1056 if test "$hostlongbits" = "32"; then
1057 echo "ARCH=ppc" >> $config_mak
1058 echo "#define HOST_PPC 1" >> $config_h
1059 else
1060 echo "ARCH=ppc64" >> $config_mak
1061 echo "#define HOST_PPC64 1" >> $config_h
1064 s390)
1065 echo "ARCH=s390" >> $config_mak
1066 echo "#define HOST_S390 1" >> $config_h
1068 sparc)
1069 echo "ARCH=sparc" >> $config_mak
1070 echo "#define HOST_SPARC 1" >> $config_h
1072 sparc64)
1073 echo "ARCH=sparc64" >> $config_mak
1074 echo "#define HOST_SPARC64 1" >> $config_h
1077 echo "Unsupported CPU = $cpu"
1078 exit 1
1080 esac
1081 if test "$bigendian" = "yes" ; then
1082 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1083 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1085 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1086 if test "$mingw32" = "yes" ; then
1087 echo "CONFIG_WIN32=yes" >> $config_mak
1088 echo "#define CONFIG_WIN32 1" >> $config_h
1089 else
1090 cat > $TMPC << EOF
1091 #include <byteswap.h>
1092 int main(void) { return bswap_32(0); }
1094 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1095 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1099 if [ "$openbsd" = "yes" ] ; then
1100 echo "#define ENOTSUP 4096" >> $config_h
1103 if test "$darwin" = "yes" ; then
1104 echo "CONFIG_DARWIN=yes" >> $config_mak
1105 echo "#define CONFIG_DARWIN 1" >> $config_h
1107 if test "$solaris" = "yes" ; then
1108 echo "CONFIG_SOLARIS=yes" >> $config_mak
1109 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1110 if test "$needs_libsunmath" = "yes" ; then
1111 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1112 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1115 if test -n "$sparc_cpu"; then
1116 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1117 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1119 if test "$gdbstub" = "yes" ; then
1120 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1121 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1123 if test "$gprof" = "yes" ; then
1124 echo "TARGET_GPROF=yes" >> $config_mak
1125 echo "#define HAVE_GPROF 1" >> $config_h
1127 if test "$static" = "yes" ; then
1128 echo "CONFIG_STATIC=yes" >> $config_mak
1129 echo "#define CONFIG_STATIC 1" >> $config_h
1131 if test $profiler = "yes" ; then
1132 echo "#define CONFIG_PROFILER 1" >> $config_h
1134 if test "$slirp" = "yes" ; then
1135 echo "CONFIG_SLIRP=yes" >> $config_mak
1136 echo "#define CONFIG_SLIRP 1" >> $config_h
1138 if test "$vde" = "yes" ; then
1139 echo "CONFIG_VDE=yes" >> $config_mak
1140 echo "#define CONFIG_VDE 1" >> $config_h
1141 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1143 for card in $audio_card_list; do
1144 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1145 echo "$def=yes" >> $config_mak
1146 echo "#define $def 1" >> $config_h
1147 done
1148 echo "#define AUDIO_DRIVERS \\" >> $config_h
1149 for drv in $audio_drv_list; do
1150 echo " &${drv}_audio_driver, \\" >>$config_h
1151 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1152 echo "$def=yes" >> $config_mak
1153 if test "$drv" = "fmod"; then
1154 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1155 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1156 elif test "$drv" = "oss"; then
1157 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1159 done
1160 echo "" >>$config_h
1161 if test "$mixemu" = "yes" ; then
1162 echo "CONFIG_MIXEMU=yes" >> $config_mak
1163 echo "#define CONFIG_MIXEMU 1" >> $config_h
1165 if test "$vnc_tls" = "yes" ; then
1166 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1167 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1168 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1169 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1171 qemu_version=`head $source_path/VERSION`
1172 echo "VERSION=$qemu_version" >>$config_mak
1173 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1175 echo "SRC_PATH=$source_path" >> $config_mak
1176 if [ "$source_path_used" = "yes" ]; then
1177 echo "VPATH=$source_path" >> $config_mak
1179 echo "TARGET_DIRS=$target_list" >> $config_mak
1180 if [ "$build_docs" = "yes" ] ; then
1181 echo "BUILD_DOCS=yes" >> $config_mak
1183 if test "$static" = "yes"; then
1184 sdl1=$sdl_static
1185 else
1186 sdl1=$sdl
1188 if test "$sdl1" = "yes" ; then
1189 echo "#define CONFIG_SDL 1" >> $config_h
1190 echo "CONFIG_SDL=yes" >> $config_mak
1191 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1192 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1193 else
1194 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1196 if [ "${aa}" = "yes" ] ; then
1197 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1198 else
1199 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1202 if test "$cocoa" = "yes" ; then
1203 echo "#define CONFIG_COCOA 1" >> $config_h
1204 echo "CONFIG_COCOA=yes" >> $config_mak
1206 if test "$curses" = "yes" ; then
1207 echo "#define CONFIG_CURSES 1" >> $config_h
1208 echo "CONFIG_CURSES=yes" >> $config_mak
1209 echo "CURSES_LIBS=-lcurses" >> $config_mak
1211 if test "$brlapi" = "yes" ; then
1212 echo "CONFIG_BRLAPI=yes" >> $config_mak
1213 echo "#define CONFIG_BRLAPI 1" >> $config_h
1214 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1216 if test "$aio" = "yes" ; then
1217 echo "#define CONFIG_AIO 1" >> $config_h
1220 # XXX: suppress that
1221 if [ "$bsd" = "yes" ] ; then
1222 echo "#define O_LARGEFILE 0" >> $config_h
1223 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1224 echo "#define _BSD 1" >> $config_h
1227 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1229 tools=
1230 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1231 tools="qemu-img\$(EXESUF) $tools"
1232 if [ "$linux" = "yes" ] ; then
1233 tools="qemu-nbd\$(EXESUF) $tools"
1236 echo "TOOLS=$tools" >> $config_mak
1238 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1240 for target in $target_list; do
1241 target_dir="$target"
1242 config_mak=$target_dir/config.mak
1243 config_h=$target_dir/config.h
1244 target_cpu=`echo $target | cut -d '-' -f 1`
1245 target_bigendian="no"
1246 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1247 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1248 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1249 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1250 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1251 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1252 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1253 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1254 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1255 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1256 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1257 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1258 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1259 target_softmmu="no"
1260 target_user_only="no"
1261 target_linux_user="no"
1262 target_darwin_user="no"
1263 case "$target" in
1264 ${target_cpu}-softmmu)
1265 target_softmmu="yes"
1267 ${target_cpu}-linux-user)
1268 target_user_only="yes"
1269 target_linux_user="yes"
1271 ${target_cpu}-darwin-user)
1272 target_user_only="yes"
1273 target_darwin_user="yes"
1276 echo "ERROR: Target '$target' not recognised"
1277 exit 1
1279 esac
1281 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1282 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1283 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1284 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1285 echo "Note that this will disable all output from the virtual graphics card"
1286 echo "except through VNC or curses."
1287 exit 1;
1290 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1292 test -f $config_h && mv $config_h ${config_h}~
1294 mkdir -p $target_dir
1295 mkdir -p $target_dir/fpu
1296 mkdir -p $target_dir/tcg
1297 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1298 mkdir -p $target_dir/nwfpe
1302 # don't use ln -sf as not all "ln -sf" over write the file/link
1304 rm -f $target_dir/Makefile
1305 ln -s $source_path/Makefile.target $target_dir/Makefile
1308 echo "# Automatically generated by configure - do not modify" > $config_mak
1309 echo "/* Automatically generated by configure - do not modify */" > $config_h
1312 echo "include ../config-host.mak" >> $config_mak
1313 echo "#include \"../config-host.h\"" >> $config_h
1315 bflt="no"
1316 elfload32="no"
1317 target_nptl="no"
1318 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1319 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1321 case "$target_cpu" in
1322 i386)
1323 echo "TARGET_ARCH=i386" >> $config_mak
1324 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1325 echo "#define TARGET_I386 1" >> $config_h
1326 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1327 then
1328 echo "#define USE_KQEMU 1" >> $config_h
1330 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1331 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1332 then
1333 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1334 else
1335 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1338 x86_64)
1339 echo "TARGET_ARCH=x86_64" >> $config_mak
1340 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1341 echo "#define TARGET_I386 1" >> $config_h
1342 echo "#define TARGET_X86_64 1" >> $config_h
1343 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1344 then
1345 echo "#define USE_KQEMU 1" >> $config_h
1348 alpha)
1349 echo "TARGET_ARCH=alpha" >> $config_mak
1350 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1351 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1352 echo "#define TARGET_ALPHA 1" >> $config_h
1353 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1355 arm|armeb)
1356 echo "TARGET_ARCH=arm" >> $config_mak
1357 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1358 echo "#define TARGET_ARM 1" >> $config_h
1359 bflt="yes"
1360 target_nptl="yes"
1362 cris)
1363 echo "TARGET_ARCH=cris" >> $config_mak
1364 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1365 echo "#define TARGET_CRIS 1" >> $config_h
1367 m68k)
1368 echo "TARGET_ARCH=m68k" >> $config_mak
1369 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1370 echo "#define TARGET_M68K 1" >> $config_h
1371 bflt="yes"
1373 mips|mipsel)
1374 echo "TARGET_ARCH=mips" >> $config_mak
1375 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1376 echo "#define TARGET_MIPS 1" >> $config_h
1377 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1379 mipsn32|mipsn32el)
1380 echo "TARGET_ARCH=mipsn32" >> $config_mak
1381 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1382 echo "#define TARGET_MIPS 1" >> $config_h
1383 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1385 mips64|mips64el)
1386 echo "TARGET_ARCH=mips64" >> $config_mak
1387 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1388 echo "#define TARGET_MIPS 1" >> $config_h
1389 echo "#define TARGET_MIPS64 1" >> $config_h
1390 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1392 ppc)
1393 echo "TARGET_ARCH=ppc" >> $config_mak
1394 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1395 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1396 echo "#define TARGET_PPC 1" >> $config_h
1397 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1399 ppcemb)
1400 echo "TARGET_ARCH=ppcemb" >> $config_mak
1401 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1402 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1403 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1404 echo "#define TARGET_PPC 1" >> $config_h
1405 echo "#define TARGET_PPCEMB 1" >> $config_h
1406 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1408 ppc64)
1409 echo "TARGET_ARCH=ppc64" >> $config_mak
1410 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1411 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1412 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1413 echo "#define TARGET_PPC 1" >> $config_h
1414 echo "#define TARGET_PPC64 1" >> $config_h
1415 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1417 ppc64abi32)
1418 echo "TARGET_ARCH=ppc64" >> $config_mak
1419 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1420 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1421 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1422 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1423 echo "#define TARGET_PPC 1" >> $config_h
1424 echo "#define TARGET_PPC64 1" >> $config_h
1425 echo "#define TARGET_ABI32 1" >> $config_h
1426 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1428 sh4|sh4eb)
1429 echo "TARGET_ARCH=sh4" >> $config_mak
1430 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1431 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1432 echo "#define TARGET_SH4 1" >> $config_h
1433 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1434 bflt="yes"
1436 sparc)
1437 echo "TARGET_ARCH=sparc" >> $config_mak
1438 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1439 echo "#define TARGET_SPARC 1" >> $config_h
1441 sparc64)
1442 echo "TARGET_ARCH=sparc64" >> $config_mak
1443 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1444 echo "#define TARGET_SPARC 1" >> $config_h
1445 echo "#define TARGET_SPARC64 1" >> $config_h
1446 elfload32="yes"
1448 sparc32plus)
1449 echo "TARGET_ARCH=sparc64" >> $config_mak
1450 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1451 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1452 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1453 echo "#define TARGET_SPARC 1" >> $config_h
1454 echo "#define TARGET_SPARC64 1" >> $config_h
1455 echo "#define TARGET_ABI32 1" >> $config_h
1458 echo "Unsupported target CPU"
1459 exit 1
1461 esac
1462 if test "$target_bigendian" = "yes" ; then
1463 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1464 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1466 if test "$target_softmmu" = "yes" ; then
1467 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1468 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1470 if test "$target_user_only" = "yes" ; then
1471 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1472 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1474 if test "$target_linux_user" = "yes" ; then
1475 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1476 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1478 if test "$target_darwin_user" = "yes" ; then
1479 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1480 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1483 if test "$target_cpu" = "arm" \
1484 -o "$target_cpu" = "armeb" \
1485 -o "$target_cpu" = "m68k" \
1486 -o "$target_cpu" = "mips" \
1487 -o "$target_cpu" = "mipsel" \
1488 -o "$target_cpu" = "mipsn32" \
1489 -o "$target_cpu" = "mipsn32el" \
1490 -o "$target_cpu" = "mips64" \
1491 -o "$target_cpu" = "mips64el" \
1492 -o "$target_cpu" = "sparc" \
1493 -o "$target_cpu" = "sparc64" \
1494 -o "$target_cpu" = "sparc32plus"; then
1495 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1496 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1498 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1499 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1500 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1502 if test "$target_user_only" = "yes" \
1503 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1504 echo "#define USE_NPTL 1" >> $config_h
1506 # 32 bit ELF loader in addition to native 64 bit loader?
1507 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1508 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1509 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1512 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1514 done # for target in $targets
1516 # build tree in object directory if source path is different from current one
1517 if test "$source_path_used" = "yes" ; then
1518 DIRS="tests tests/cris slirp audio"
1519 FILES="Makefile tests/Makefile"
1520 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1521 FILES="$FILES tests/test-mmap.c"
1522 for dir in $DIRS ; do
1523 mkdir -p $dir
1524 done
1525 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1526 for f in $FILES ; do
1527 rm -f $f
1528 ln -s $source_path/$f $f
1529 done
1532 rm -f $TMPO $TMPC $TMPE $TMPS