Add mmu tlb demap support (Igor Kovalenko)
[qemu/mini2440.git] / configure
blob6a727c0a5aa52e680ec65052a1f215fea7737d92
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 -O2 -g -fno-strict-aliasing"
350 CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
351 LDFLAGS="$LDFLAGS -g"
352 if test "$werror" = "yes" ; then
353 CFLAGS="$CFLAGS -Werror"
356 if ld --version 2>/dev/null | grep -q "GNU ld" ; then
357 LDFLAGS="$LDFLAGS -Wl,--warn-common"
361 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
362 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
364 case "$cpu" in
365 sparc) if test -z "$sparc_cpu" ; then
366 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
367 ARCH_LDFLAGS="-m32"
368 else
369 ARCH_CFLAGS="${SP_CFLAGS}"
370 ARCH_LDFLAGS="${SP_LDFLAGS}"
373 sparc64) if test -z "$sparc_cpu" ; then
374 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
375 ARCH_LDFLAGS="-m64"
376 else
377 ARCH_CFLAGS="${SP_CFLAGS}"
378 ARCH_LDFLAGS="${SP_LDFLAGS}"
381 s390)
382 ARCH_CFLAGS="-march=z900"
384 i386)
385 ARCH_CFLAGS="-m32"
386 ARCH_LDFLAGS="-m32"
388 x86_64)
389 ARCH_CFLAGS="-m64"
390 ARCH_LDFLAGS="-m64"
392 esac
394 if test x"$show_help" = x"yes" ; then
395 cat << EOF
397 Usage: configure [options]
398 Options: [defaults in brackets after descriptions]
401 echo "Standard options:"
402 echo " --help print this message"
403 echo " --prefix=PREFIX install in PREFIX [$prefix]"
404 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
405 echo " use %M for cpu name [$interp_prefix]"
406 echo " --target-list=LIST set target list [$target_list]"
407 echo ""
408 echo "kqemu kernel acceleration support:"
409 echo " --disable-kqemu disable kqemu support"
410 echo ""
411 echo "Advanced options (experts only):"
412 echo " --source-path=PATH path of source code [$source_path]"
413 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
414 echo " --cc=CC use C compiler CC [$cc]"
415 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
416 echo " --make=MAKE use specified make [$make]"
417 echo " --install=INSTALL use specified install [$install]"
418 echo " --static enable static build [$static]"
419 echo " --disable-werror disable compilation abort on warning"
420 echo " --disable-sdl disable SDL"
421 echo " --enable-cocoa enable COCOA (Mac OS X only)"
422 echo " --audio-drv-list=LIST set audio drivers list:"
423 echo " Available drivers: $audio_possible_drivers"
424 echo " --audio-card-list=LIST set list of additional emulated audio cards"
425 echo " Available cards: ac97 adlib cs4231a gus"
426 echo " --enable-mixemu enable mixer emulation"
427 echo " --disable-brlapi disable BrlAPI"
428 echo " --disable-vnc-tls disable TLS encryption for VNC server"
429 echo " --disable-curses disable curses output"
430 echo " --disable-nptl disable usermode NPTL support"
431 echo " --enable-system enable all system emulation targets"
432 echo " --disable-system disable all system emulation targets"
433 echo " --enable-linux-user enable all linux usermode emulation targets"
434 echo " --disable-linux-user disable all linux usermode emulation targets"
435 echo " --enable-darwin-user enable all darwin usermode emulation targets"
436 echo " --disable-darwin-user disable all darwin usermode emulation targets"
437 echo " --fmod-lib path to FMOD library"
438 echo " --fmod-inc path to FMOD includes"
439 echo " --oss-lib path to OSS library"
440 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
441 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
442 echo " --disable-vde disable support for vde network"
443 echo " --disable-aio disable AIO support"
444 echo ""
445 echo "NOTE: The object files are built at the place where configure is launched"
446 exit 1
449 cc="${cross_prefix}${cc}"
450 ar="${cross_prefix}${ar}"
451 strip="${cross_prefix}${strip}"
453 # check that the C compiler works.
454 cat > $TMPC <<EOF
455 int main(void) {}
458 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
459 : C compiler works ok
460 else
461 echo "ERROR: \"$cc\" either does not exist or does not work"
462 exit 1
465 # check compiler to see if we're on mingw32
466 cat > $TMPC <<EOF
467 #include <windows.h>
468 #ifndef _WIN32
469 #error not windows
470 #endif
471 int main(void) {}
474 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
475 mingw32="yes"
478 if test "$mingw32" = "yes" ; then
479 linux="no"
480 EXESUF=".exe"
481 oss="no"
482 linux_user="no"
485 if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
486 AIOLIBS=
487 elif [ "$bsd" = "yes" ]; then
488 AIOLIBS="-lpthread"
489 else
490 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
491 AIOLIBS="-lrt -lpthread"
494 # Check for gcc4, error if pre-gcc4
495 if test "$check_gcc" = "yes" ; then
496 cat > $TMPC <<EOF
497 #if __GNUC__ < 4
498 #error gcc3
499 #endif
500 int main(){return 0;}
502 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
503 echo "WARNING: \"$cc\" looks like gcc 4.x"
504 found_compat_cc="no"
505 if test "$gcc3_search" = "yes" ; then
506 echo "Looking for gcc 3.x"
507 for compat_cc in $gcc3_list ; do
508 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
509 echo "Found \"$compat_cc\""
510 cc="$cross_prefix$compat_cc"
511 found_compat_cc="yes"
512 break
514 done
515 if test "$found_compat_cc" = "no" ; then
516 echo "gcc 3.x not found!"
519 if test "$found_compat_cc" = "no" ; then
520 echo "QEMU is known to have problems when compiled with gcc 4.x"
521 echo "It is recommended that you use gcc 3.x to build QEMU"
522 echo "To use this compiler anyway, configure with --disable-gcc-check"
523 exit 1;
529 # Solaris specific configure tool chain decisions
531 if test "$solaris" = "yes" ; then
533 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
534 # override the check with --disable-gcc-check
536 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
537 solgcc=`which $cc`
538 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
539 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
540 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
541 echo "or get the latest patch from SunSolve for gcc"
542 exit 1
545 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
546 if test -z "$solinst" ; then
547 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
548 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
549 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
550 exit 1
552 if test "$solinst" = "/usr/sbin/install" ; then
553 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
554 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
555 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
556 exit 1
558 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
559 if test -z "$sol_ar" ; then
560 echo "Error: No path includes ar"
561 if test -f /usr/ccs/bin/ar ; then
562 echo "Add /usr/ccs/bin to your path and rerun configure"
564 exit 1
569 if test -z "$target_list" ; then
570 # these targets are portable
571 if [ "$softmmu" = "yes" ] ; then
572 target_list="\
573 i386-softmmu \
574 x86_64-softmmu \
575 arm-softmmu \
576 cris-softmmu \
577 m68k-softmmu \
578 mips-softmmu \
579 mipsel-softmmu \
580 mips64-softmmu \
581 mips64el-softmmu \
582 ppc-softmmu \
583 ppcemb-softmmu \
584 ppc64-softmmu \
585 sh4-softmmu \
586 sh4eb-softmmu \
587 sparc-softmmu \
590 # the following are Linux specific
591 if [ "$linux_user" = "yes" ] ; then
592 target_list="${target_list}\
593 i386-linux-user \
594 x86_64-linux-user \
595 alpha-linux-user \
596 arm-linux-user \
597 armeb-linux-user \
598 cris-linux-user \
599 m68k-linux-user \
600 mips-linux-user \
601 mipsel-linux-user \
602 ppc-linux-user \
603 ppc64-linux-user \
604 ppc64abi32-linux-user \
605 sh4-linux-user \
606 sh4eb-linux-user \
607 sparc-linux-user \
608 sparc64-linux-user \
609 sparc32plus-linux-user \
612 # the following are Darwin specific
613 if [ "$darwin_user" = "yes" ] ; then
614 target_list="$target_list i386-darwin-user ppc-darwin-user"
616 else
617 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
619 if test -z "$target_list" ; then
620 echo "No targets enabled"
621 exit 1
624 if test -z "$cross_prefix" ; then
626 # ---
627 # big/little endian test
628 cat > $TMPC << EOF
629 #include <inttypes.h>
630 int main(int argc, char ** argv){
631 volatile uint32_t i=0x01234567;
632 return (*((uint8_t*)(&i))) == 0x67;
636 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
637 $TMPE && bigendian="yes"
638 else
639 echo big/little test failed
642 else
644 # if cross compiling, cannot launch a program, so make a static guess
645 if test "$cpu" = "armv4b" \
646 -o "$cpu" = "hppa" \
647 -o "$cpu" = "m68k" \
648 -o "$cpu" = "mips" \
649 -o "$cpu" = "mips64" \
650 -o "$cpu" = "powerpc" \
651 -o "$cpu" = "s390" \
652 -o "$cpu" = "sparc" \
653 -o "$cpu" = "sparc64"; then
654 bigendian="yes"
659 # host long bits test
660 hostlongbits="32"
661 if test "$cpu" = "x86_64" \
662 -o "$cpu" = "alpha" \
663 -o "$cpu" = "ia64" \
664 -o "$cpu" = "sparc64"; then
665 hostlongbits="64"
668 # ppc specific hostlongbits selection
669 if test "$cpu" = "powerpc" ; then
670 cat > $TMPC <<EOF
671 int main(void){return sizeof(long);}
674 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null; then
675 $TMPE
676 case $? in
677 4) hostlongbits="32";;
678 8) hostlongbits="64";;
679 *) echo "Couldn't determine bits per long value"; exit 1;;
680 esac
681 else
682 echo hostlongbits test failed
683 exit 1
687 # check gcc options support
688 cat > $TMPC <<EOF
689 int main(void) {
693 # Check host NPTL support
694 cat > $TMPC <<EOF
695 #include <sched.h>
696 #include <linux/futex.h>
697 void foo()
699 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
700 #error bork
701 #endif
705 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
707 else
708 nptl="no"
711 ##########################################
712 # SDL probe
714 sdl_too_old=no
716 if test -z "$sdl" ; then
717 sdl_config="sdl-config"
718 sdl=no
719 sdl_static=no
721 cat > $TMPC << EOF
722 #include <SDL.h>
723 #undef main /* We don't want SDL to override our main() */
724 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
726 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
727 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
728 if test "$_sdlversion" -lt 121 ; then
729 sdl_too_old=yes
730 else
731 if test "$cocoa" = "no" ; then
732 sdl=yes
736 # static link with sdl ?
737 if test "$sdl" = "yes" ; then
738 aa="no"
739 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
740 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
741 if [ "$aa" = "yes" ] ; then
742 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
745 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
746 sdl_static=yes
748 fi # static link
749 fi # sdl compile test
750 else
751 # Make sure to disable cocoa if sdl was set
752 if test "$sdl" = "yes" ; then
753 cocoa="no"
754 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
756 fi # -z $sdl
758 ##########################################
759 # VNC TLS detection
760 if test "$vnc_tls" = "yes" ; then
761 cat > $TMPC <<EOF
762 #include <gnutls/gnutls.h>
763 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
765 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
766 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
767 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
768 $vnc_tls_libs 2> /dev/null ; then
770 else
771 vnc_tls="no"
775 ##########################################
776 # vde libraries probe
777 if test "$vde" = "yes" ; then
778 cat > $TMPC << EOF
779 #include <libvdeplug.h>
780 int main(void)
782 struct vde_open_args a = {0, 0, 0};
783 vde_open("", "", &a);
784 return 0;
787 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
789 else
790 vde="no"
794 ##########################################
795 # Sound support libraries probe
797 audio_drv_probe()
799 drv=$1
800 hdr=$2
801 lib=$3
802 exp=$4
803 cfl=$5
804 cat > $TMPC << EOF
805 #include <$hdr>
806 int main(void) { $exp }
808 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
810 else
811 echo
812 echo "Error: $drv check failed"
813 echo "Make sure to have the $drv libs and headers installed."
814 echo
815 exit 1
819 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
820 for drv in $audio_drv_list; do
821 case $drv in
822 alsa)
823 audio_drv_probe $drv alsa/asoundlib.h -lasound \
824 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
827 fmod)
828 if test -z $fmod_lib || test -z $fmod_inc; then
829 echo
830 echo "Error: You must specify path to FMOD library and headers"
831 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
832 echo
833 exit 1
835 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
838 esd)
839 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
843 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
844 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
847 oss|sdl|core|wav|dsound)
848 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
852 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
853 echo
854 echo "Error: Unknown driver '$drv' selected"
855 echo "Possible drivers are: $audio_possible_drivers"
856 echo
857 exit 1
860 esac
861 done
863 ##########################################
864 # BrlAPI probe
866 if test -z "$brlapi" ; then
867 brlapi=no
868 cat > $TMPC << EOF
869 #include <brlapi.h>
870 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
872 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
873 brlapi=yes
874 fi # brlapi compile test
875 fi # -z $brlapi
877 ##########################################
878 # curses probe
880 if test "$curses" = "yes" ; then
881 curses=no
882 cat > $TMPC << EOF
883 #include <curses.h>
884 int main(void) { return curses_version(); }
886 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
887 curses=yes
889 fi # test "$curses"
891 ##########################################
892 # AIO probe
893 if test "$aio" = "yes" ; then
894 aio=no
895 cat > $TMPC << EOF
896 #include <aio.h>
897 int main(void) { return aio_write(NULL); }
899 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
900 aio=yes
904 # Check if tools are available to build documentation.
905 if [ -x "`which texi2html 2>/dev/null`" ] && \
906 [ -x "`which pod2man 2>/dev/null`" ]; then
907 build_docs="yes"
910 if test "$mingw32" = "yes" ; then
911 if test -z "$prefix" ; then
912 prefix="/c/Program Files/Qemu"
914 mansuffix=""
915 datasuffix=""
916 docsuffix=""
917 binsuffix=""
918 else
919 if test -z "$prefix" ; then
920 prefix="/usr/local"
922 mansuffix="/share/man"
923 datasuffix="/share/qemu"
924 docsuffix="/share/doc/qemu"
925 binsuffix="/bin"
928 echo "Install prefix $prefix"
929 echo "BIOS directory $prefix$datasuffix"
930 echo "binary directory $prefix$binsuffix"
931 if test "$mingw32" = "no" ; then
932 echo "Manual directory $prefix$mansuffix"
933 echo "ELF interp prefix $interp_prefix"
935 echo "Source path $source_path"
936 echo "C compiler $cc"
937 echo "Host C compiler $host_cc"
938 echo "ARCH_CFLAGS $ARCH_CFLAGS"
939 echo "make $make"
940 echo "install $install"
941 echo "host CPU $cpu"
942 echo "host big endian $bigendian"
943 echo "target list $target_list"
944 echo "gprof enabled $gprof"
945 echo "profiler $profiler"
946 echo "static build $static"
947 echo "-Werror enabled $werror"
948 if test "$darwin" = "yes" ; then
949 echo "Cocoa support $cocoa"
951 echo "SDL support $sdl"
952 if test "$sdl" != "no" ; then
953 echo "SDL static link $sdl_static"
955 echo "curses support $curses"
956 echo "mingw32 support $mingw32"
957 echo "Audio drivers $audio_drv_list"
958 echo "Extra audio cards $audio_card_list"
959 echo "Mixer emulation $mixemu"
960 echo "VNC TLS support $vnc_tls"
961 if test "$vnc_tls" = "yes" ; then
962 echo " TLS CFLAGS $vnc_tls_cflags"
963 echo " TLS LIBS $vnc_tls_libs"
965 if test -n "$sparc_cpu"; then
966 echo "Target Sparc Arch $sparc_cpu"
968 echo "kqemu support $kqemu"
969 echo "brlapi support $brlapi"
970 echo "Documentation $build_docs"
971 [ ! -z "$uname_release" ] && \
972 echo "uname -r $uname_release"
973 echo "NPTL support $nptl"
974 echo "vde support $vde"
975 echo "AIO support $aio"
977 if test $sdl_too_old = "yes"; then
978 echo "-> Your SDL version is too old - please upgrade to have SDL support"
980 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
981 echo "The error log from compiling the libSDL test is: "
982 cat /tmp/qemu-$$-sdl-config.log
984 rm -f /tmp/qemu-$$-sdl-config.log
985 #if test "$sdl_static" = "no"; then
986 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
988 config_mak="config-host.mak"
989 config_h="config-host.h"
991 #echo "Creating $config_mak and $config_h"
993 test -f $config_h && mv $config_h ${config_h}~
995 echo "# Automatically generated by configure - do not modify" > $config_mak
996 echo "# Configured with: $0 $@" >> $config_mak
997 echo "/* Automatically generated by configure - do not modify */" > $config_h
999 echo "prefix=$prefix" >> $config_mak
1000 echo "bindir=\${prefix}$binsuffix" >> $config_mak
1001 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1002 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1003 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1004 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1005 echo "MAKE=$make" >> $config_mak
1006 echo "INSTALL=$install" >> $config_mak
1007 echo "CC=$cc" >> $config_mak
1008 echo "HOST_CC=$host_cc" >> $config_mak
1009 echo "AR=$ar" >> $config_mak
1010 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1011 # XXX: only use CFLAGS and LDFLAGS ?
1012 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1013 # compilation of dyngen tool (useful for win32 build on Linux host)
1014 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1015 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1016 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1017 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1018 echo "CFLAGS=$CFLAGS" >> $config_mak
1019 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1020 echo "EXESUF=$EXESUF" >> $config_mak
1021 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1022 case "$cpu" in
1023 i386)
1024 echo "ARCH=i386" >> $config_mak
1025 echo "#define HOST_I386 1" >> $config_h
1027 x86_64)
1028 echo "ARCH=x86_64" >> $config_mak
1029 echo "#define HOST_X86_64 1" >> $config_h
1031 alpha)
1032 echo "ARCH=alpha" >> $config_mak
1033 echo "#define HOST_ALPHA 1" >> $config_h
1035 armv4b)
1036 echo "ARCH=arm" >> $config_mak
1037 echo "#define HOST_ARM 1" >> $config_h
1039 armv4l)
1040 echo "ARCH=arm" >> $config_mak
1041 echo "#define HOST_ARM 1" >> $config_h
1043 cris)
1044 echo "ARCH=cris" >> $config_mak
1045 echo "#define HOST_CRIS 1" >> $config_h
1047 hppa)
1048 echo "ARCH=hppa" >> $config_mak
1049 echo "#define HOST_HPPA 1" >> $config_h
1051 ia64)
1052 echo "ARCH=ia64" >> $config_mak
1053 echo "#define HOST_IA64 1" >> $config_h
1055 m68k)
1056 echo "ARCH=m68k" >> $config_mak
1057 echo "#define HOST_M68K 1" >> $config_h
1059 mips)
1060 echo "ARCH=mips" >> $config_mak
1061 echo "#define HOST_MIPS 1" >> $config_h
1063 mips64)
1064 echo "ARCH=mips64" >> $config_mak
1065 echo "#define HOST_MIPS64 1" >> $config_h
1067 powerpc)
1068 if test "$hostlongbits" = "32"; then
1069 echo "ARCH=ppc" >> $config_mak
1070 echo "#define HOST_PPC 1" >> $config_h
1071 else
1072 echo "ARCH=ppc64" >> $config_mak
1073 echo "#define HOST_PPC64 1" >> $config_h
1076 s390)
1077 echo "ARCH=s390" >> $config_mak
1078 echo "#define HOST_S390 1" >> $config_h
1080 sparc)
1081 echo "ARCH=sparc" >> $config_mak
1082 echo "#define HOST_SPARC 1" >> $config_h
1084 sparc64)
1085 echo "ARCH=sparc64" >> $config_mak
1086 echo "#define HOST_SPARC64 1" >> $config_h
1089 echo "Unsupported CPU = $cpu"
1090 exit 1
1092 esac
1093 if test "$bigendian" = "yes" ; then
1094 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1095 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1097 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1098 if test "$mingw32" = "yes" ; then
1099 echo "CONFIG_WIN32=yes" >> $config_mak
1100 echo "#define CONFIG_WIN32 1" >> $config_h
1101 else
1102 cat > $TMPC << EOF
1103 #include <byteswap.h>
1104 int main(void) { return bswap_32(0); }
1106 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1107 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1111 if [ "$openbsd" = "yes" ] ; then
1112 echo "#define ENOTSUP 4096" >> $config_h
1115 if test "$darwin" = "yes" ; then
1116 echo "CONFIG_DARWIN=yes" >> $config_mak
1117 echo "#define CONFIG_DARWIN 1" >> $config_h
1119 if test "$solaris" = "yes" ; then
1120 echo "CONFIG_SOLARIS=yes" >> $config_mak
1121 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1122 if test "$needs_libsunmath" = "yes" ; then
1123 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1124 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1127 if test -n "$sparc_cpu"; then
1128 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1129 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1131 if test "$gdbstub" = "yes" ; then
1132 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1133 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1135 if test "$gprof" = "yes" ; then
1136 echo "TARGET_GPROF=yes" >> $config_mak
1137 echo "#define HAVE_GPROF 1" >> $config_h
1139 if test "$static" = "yes" ; then
1140 echo "CONFIG_STATIC=yes" >> $config_mak
1141 echo "#define CONFIG_STATIC 1" >> $config_h
1143 if test $profiler = "yes" ; then
1144 echo "#define CONFIG_PROFILER 1" >> $config_h
1146 if test "$slirp" = "yes" ; then
1147 echo "CONFIG_SLIRP=yes" >> $config_mak
1148 echo "#define CONFIG_SLIRP 1" >> $config_h
1150 if test "$vde" = "yes" ; then
1151 echo "CONFIG_VDE=yes" >> $config_mak
1152 echo "#define CONFIG_VDE 1" >> $config_h
1153 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1155 for card in $audio_card_list; do
1156 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1157 echo "$def=yes" >> $config_mak
1158 echo "#define $def 1" >> $config_h
1159 done
1160 echo "#define AUDIO_DRIVERS \\" >> $config_h
1161 for drv in $audio_drv_list; do
1162 echo " &${drv}_audio_driver, \\" >>$config_h
1163 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1164 echo "$def=yes" >> $config_mak
1165 if test "$drv" = "fmod"; then
1166 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1167 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1168 elif test "$drv" = "oss"; then
1169 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1171 done
1172 echo "" >>$config_h
1173 if test "$mixemu" = "yes" ; then
1174 echo "CONFIG_MIXEMU=yes" >> $config_mak
1175 echo "#define CONFIG_MIXEMU 1" >> $config_h
1177 if test "$vnc_tls" = "yes" ; then
1178 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1179 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1180 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1181 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1183 qemu_version=`head $source_path/VERSION`
1184 echo "VERSION=$qemu_version" >>$config_mak
1185 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1187 echo "SRC_PATH=$source_path" >> $config_mak
1188 if [ "$source_path_used" = "yes" ]; then
1189 echo "VPATH=$source_path" >> $config_mak
1191 echo "TARGET_DIRS=$target_list" >> $config_mak
1192 if [ "$build_docs" = "yes" ] ; then
1193 echo "BUILD_DOCS=yes" >> $config_mak
1195 if test "$static" = "yes"; then
1196 sdl1=$sdl_static
1197 else
1198 sdl1=$sdl
1200 if test "$sdl1" = "yes" ; then
1201 echo "#define CONFIG_SDL 1" >> $config_h
1202 echo "CONFIG_SDL=yes" >> $config_mak
1203 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1204 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1205 else
1206 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1208 if [ "${aa}" = "yes" ] ; then
1209 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1210 else
1211 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1214 if test "$cocoa" = "yes" ; then
1215 echo "#define CONFIG_COCOA 1" >> $config_h
1216 echo "CONFIG_COCOA=yes" >> $config_mak
1218 if test "$curses" = "yes" ; then
1219 echo "#define CONFIG_CURSES 1" >> $config_h
1220 echo "CONFIG_CURSES=yes" >> $config_mak
1221 echo "CURSES_LIBS=-lcurses" >> $config_mak
1223 if test "$brlapi" = "yes" ; then
1224 echo "CONFIG_BRLAPI=yes" >> $config_mak
1225 echo "#define CONFIG_BRLAPI 1" >> $config_h
1226 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1228 if test "$aio" = "yes" ; then
1229 echo "#define CONFIG_AIO 1" >> $config_h
1230 echo "CONFIG_AIO=yes" >> $config_mak
1233 # XXX: suppress that
1234 if [ "$bsd" = "yes" ] ; then
1235 echo "#define O_LARGEFILE 0" >> $config_h
1236 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1237 echo "#define _BSD 1" >> $config_h
1240 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1242 tools=
1243 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1244 tools="qemu-img\$(EXESUF) $tools"
1245 if [ "$linux" = "yes" ] ; then
1246 tools="qemu-nbd\$(EXESUF) $tools"
1249 echo "TOOLS=$tools" >> $config_mak
1251 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1253 for target in $target_list; do
1254 target_dir="$target"
1255 config_mak=$target_dir/config.mak
1256 config_h=$target_dir/config.h
1257 target_cpu=`echo $target | cut -d '-' -f 1`
1258 target_bigendian="no"
1259 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1260 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1261 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1262 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1263 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1264 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1265 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1266 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1267 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1268 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1269 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1270 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1271 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1272 target_softmmu="no"
1273 target_user_only="no"
1274 target_linux_user="no"
1275 target_darwin_user="no"
1276 case "$target" in
1277 ${target_cpu}-softmmu)
1278 target_softmmu="yes"
1280 ${target_cpu}-linux-user)
1281 target_user_only="yes"
1282 target_linux_user="yes"
1284 ${target_cpu}-darwin-user)
1285 target_user_only="yes"
1286 target_darwin_user="yes"
1289 echo "ERROR: Target '$target' not recognised"
1290 exit 1
1292 esac
1294 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1295 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1296 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1297 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1298 echo "Note that this will disable all output from the virtual graphics card"
1299 echo "except through VNC or curses."
1300 exit 1;
1303 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1305 test -f $config_h && mv $config_h ${config_h}~
1307 mkdir -p $target_dir
1308 mkdir -p $target_dir/fpu
1309 mkdir -p $target_dir/tcg
1310 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1311 mkdir -p $target_dir/nwfpe
1315 # don't use ln -sf as not all "ln -sf" over write the file/link
1317 rm -f $target_dir/Makefile
1318 ln -s $source_path/Makefile.target $target_dir/Makefile
1321 echo "# Automatically generated by configure - do not modify" > $config_mak
1322 echo "/* Automatically generated by configure - do not modify */" > $config_h
1325 echo "include ../config-host.mak" >> $config_mak
1326 echo "#include \"../config-host.h\"" >> $config_h
1328 bflt="no"
1329 elfload32="no"
1330 target_nptl="no"
1331 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1332 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1334 case "$target_cpu" in
1335 i386)
1336 echo "TARGET_ARCH=i386" >> $config_mak
1337 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1338 echo "#define TARGET_I386 1" >> $config_h
1339 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1340 then
1341 echo "#define USE_KQEMU 1" >> $config_h
1343 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1344 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1345 then
1346 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1347 else
1348 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1351 x86_64)
1352 echo "TARGET_ARCH=x86_64" >> $config_mak
1353 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1354 echo "#define TARGET_I386 1" >> $config_h
1355 echo "#define TARGET_X86_64 1" >> $config_h
1356 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1357 then
1358 echo "#define USE_KQEMU 1" >> $config_h
1361 alpha)
1362 echo "TARGET_ARCH=alpha" >> $config_mak
1363 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1364 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1365 echo "#define TARGET_ALPHA 1" >> $config_h
1366 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1368 arm|armeb)
1369 echo "TARGET_ARCH=arm" >> $config_mak
1370 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1371 echo "#define TARGET_ARM 1" >> $config_h
1372 bflt="yes"
1373 target_nptl="yes"
1375 cris)
1376 echo "TARGET_ARCH=cris" >> $config_mak
1377 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1378 echo "#define TARGET_CRIS 1" >> $config_h
1380 m68k)
1381 echo "TARGET_ARCH=m68k" >> $config_mak
1382 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1383 echo "#define TARGET_M68K 1" >> $config_h
1384 bflt="yes"
1386 mips|mipsel)
1387 echo "TARGET_ARCH=mips" >> $config_mak
1388 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1389 echo "#define TARGET_MIPS 1" >> $config_h
1390 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1392 mipsn32|mipsn32el)
1393 echo "TARGET_ARCH=mipsn32" >> $config_mak
1394 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1395 echo "#define TARGET_MIPS 1" >> $config_h
1396 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1398 mips64|mips64el)
1399 echo "TARGET_ARCH=mips64" >> $config_mak
1400 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1401 echo "#define TARGET_MIPS 1" >> $config_h
1402 echo "#define TARGET_MIPS64 1" >> $config_h
1403 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1405 ppc)
1406 echo "TARGET_ARCH=ppc" >> $config_mak
1407 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1408 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1409 echo "#define TARGET_PPC 1" >> $config_h
1410 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1412 ppcemb)
1413 echo "TARGET_ARCH=ppcemb" >> $config_mak
1414 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1415 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1416 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1417 echo "#define TARGET_PPC 1" >> $config_h
1418 echo "#define TARGET_PPCEMB 1" >> $config_h
1419 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1421 ppc64)
1422 echo "TARGET_ARCH=ppc64" >> $config_mak
1423 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1424 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1425 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1426 echo "#define TARGET_PPC 1" >> $config_h
1427 echo "#define TARGET_PPC64 1" >> $config_h
1428 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1430 ppc64abi32)
1431 echo "TARGET_ARCH=ppc64" >> $config_mak
1432 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1433 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1434 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1435 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1436 echo "#define TARGET_PPC 1" >> $config_h
1437 echo "#define TARGET_PPC64 1" >> $config_h
1438 echo "#define TARGET_ABI32 1" >> $config_h
1439 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1441 sh4|sh4eb)
1442 echo "TARGET_ARCH=sh4" >> $config_mak
1443 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1444 echo "#define TARGET_SH4 1" >> $config_h
1445 bflt="yes"
1446 target_nptl="yes"
1448 sparc)
1449 echo "TARGET_ARCH=sparc" >> $config_mak
1450 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1451 echo "#define TARGET_SPARC 1" >> $config_h
1453 sparc64)
1454 echo "TARGET_ARCH=sparc64" >> $config_mak
1455 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1456 echo "#define TARGET_SPARC 1" >> $config_h
1457 echo "#define TARGET_SPARC64 1" >> $config_h
1458 elfload32="yes"
1460 sparc32plus)
1461 echo "TARGET_ARCH=sparc64" >> $config_mak
1462 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1463 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1464 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1465 echo "#define TARGET_SPARC 1" >> $config_h
1466 echo "#define TARGET_SPARC64 1" >> $config_h
1467 echo "#define TARGET_ABI32 1" >> $config_h
1470 echo "Unsupported target CPU"
1471 exit 1
1473 esac
1474 if test "$target_bigendian" = "yes" ; then
1475 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1476 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1478 if test "$target_softmmu" = "yes" ; then
1479 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1480 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1482 if test "$target_user_only" = "yes" ; then
1483 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1484 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1486 if test "$target_linux_user" = "yes" ; then
1487 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1488 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1490 if test "$target_darwin_user" = "yes" ; then
1491 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1492 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1495 if test "$target_cpu" = "arm" \
1496 -o "$target_cpu" = "armeb" \
1497 -o "$target_cpu" = "m68k" \
1498 -o "$target_cpu" = "mips" \
1499 -o "$target_cpu" = "mipsel" \
1500 -o "$target_cpu" = "mipsn32" \
1501 -o "$target_cpu" = "mipsn32el" \
1502 -o "$target_cpu" = "mips64" \
1503 -o "$target_cpu" = "mips64el" \
1504 -o "$target_cpu" = "sparc" \
1505 -o "$target_cpu" = "sparc64" \
1506 -o "$target_cpu" = "sparc32plus"; then
1507 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1508 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1510 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1511 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1512 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1514 if test "$target_user_only" = "yes" \
1515 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1516 echo "#define USE_NPTL 1" >> $config_h
1518 # 32 bit ELF loader in addition to native 64 bit loader?
1519 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1520 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1521 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1524 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1526 done # for target in $targets
1528 # build tree in object directory if source path is different from current one
1529 if test "$source_path_used" = "yes" ; then
1530 DIRS="tests tests/cris slirp audio"
1531 FILES="Makefile tests/Makefile"
1532 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1533 FILES="$FILES tests/test-mmap.c"
1534 for dir in $DIRS ; do
1535 mkdir -p $dir
1536 done
1537 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1538 for f in $FILES ; do
1539 rm -f $f
1540 ln -s $source_path/$f $f
1541 done
1544 rm -f $TMPO $TMPC $TMPE $TMPS