Relax qemu_ld/st constraints for !SOFTMMU case
[qemu/mini2440.git] / configure
blob74ce443ff946d15fde0c2175a6ba41f48ba41ff5
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 vnc_tls="yes"
96 bsd="no"
97 linux="no"
98 kqemu="no"
99 profiler="no"
100 cocoa="no"
101 check_gfx="yes"
102 check_gcc="yes"
103 softmmu="yes"
104 linux_user="no"
105 darwin_user="no"
106 build_docs="no"
107 uname_release=""
108 curses="yes"
109 aio="yes"
110 nptl="yes"
111 mixemu="no"
113 # OS specific
114 targetos=`uname -s`
115 case $targetos in
116 CYGWIN*)
117 mingw32="yes"
118 OS_CFLAGS="-mno-cygwin"
119 if [ "$cpu" = "i386" ] ; then
120 kqemu="yes"
122 audio_possible_drivers="sdl"
124 MINGW32*)
125 mingw32="yes"
126 if [ "$cpu" = "i386" ] ; then
127 kqemu="yes"
129 audio_possible_drivers="dsound sdl fmod"
131 GNU/kFreeBSD)
132 audio_drv_list="oss"
133 audio_possible_drivers="oss sdl esd"
134 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
135 kqemu="yes"
138 FreeBSD)
139 bsd="yes"
140 audio_drv_list="oss"
141 audio_possible_drivers="oss sdl esd"
142 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
143 kqemu="yes"
146 NetBSD)
147 bsd="yes"
148 audio_drv_list="oss"
149 audio_possible_drivers="oss sdl esd"
151 OpenBSD)
152 bsd="yes"
153 openbsd="yes"
154 audio_drv_list="oss"
155 audio_possible_drivers="oss sdl esd"
157 Darwin)
158 bsd="yes"
159 darwin="yes"
160 darwin_user="yes"
161 cocoa="yes"
162 audio_drv_list="coreaudio"
163 audio_possible_drivers="coreaudio sdl fmod"
164 OS_CFLAGS="-mdynamic-no-pic"
165 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
167 SunOS)
168 solaris="yes"
169 make="gmake"
170 install="ginstall"
171 needs_libsunmath="no"
172 solarisrev=`uname -r | cut -f2 -d.`
173 # have to select again, because `uname -m` returns i86pc
174 # even on an x86_64 box.
175 solariscpu=`isainfo -k`
176 if test "${solariscpu}" = "amd64" ; then
177 cpu="x86_64"
179 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
180 if test "$solarisrev" -le 9 ; then
181 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
182 needs_libsunmath="yes"
183 else
184 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
185 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
186 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
187 echo "Studio 11 can be downloaded from www.sun.com."
188 exit 1
191 if test "$solarisrev" -ge 9 ; then
192 kqemu="yes"
195 if test -f /usr/include/sys/soundcard.h ; then
196 audio_drv_list="oss"
198 audio_possible_drivers="oss sdl"
201 audio_drv_list="oss"
202 audio_possible_drivers="oss alsa sdl esd pa"
203 linux="yes"
204 linux_user="yes"
205 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
206 kqemu="yes"
207 audio_possible_drivers="$audio_possible_drivers fmod"
210 esac
212 if [ "$bsd" = "yes" ] ; then
213 if [ "$darwin" != "yes" ] ; then
214 make="gmake"
218 # find source path
219 source_path=`dirname "$0"`
220 source_path_used="no"
221 workdir=`pwd`
222 if [ -z "$source_path" ]; then
223 source_path=$workdir
224 else
225 source_path=`cd "$source_path"; pwd`
227 [ -f "$workdir/vl.c" ] || source_path_used="yes"
229 werror="no"
230 # generate compile errors on warnings for development builds
231 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
232 #werror="yes";
235 for opt do
236 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
237 case "$opt" in
238 --help|-h) show_help=yes
240 --prefix=*) prefix="$optarg"
242 --interp-prefix=*) interp_prefix="$optarg"
244 --source-path=*) source_path="$optarg"
245 source_path_used="yes"
247 --cross-prefix=*) cross_prefix="$optarg"
249 --cc=*) cc="$optarg"
250 gcc3_search="no"
252 --host-cc=*) host_cc="$optarg"
254 --make=*) make="$optarg"
256 --install=*) install="$optarg"
258 --extra-cflags=*) CFLAGS="$optarg"
260 --extra-ldflags=*) LDFLAGS="$optarg"
262 --cpu=*) cpu="$optarg"
264 --target-list=*) target_list="$optarg"
266 --enable-gprof) gprof="yes"
268 --static) static="yes"
270 --disable-sdl) sdl="no"
272 --fmod-lib=*) fmod_lib="$optarg"
274 --fmod-inc=*) fmod_inc="$optarg"
276 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
278 --audio-drv-list=*) audio_drv_list="$optarg"
280 --disable-vnc-tls) vnc_tls="no"
282 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
284 --disable-slirp) slirp="no"
286 --disable-vde) vde="no"
288 --disable-kqemu) kqemu="no"
290 --disable-brlapi) brlapi="no"
292 --enable-profiler) profiler="yes"
294 --enable-cocoa)
295 cocoa="yes" ;
296 sdl="no" ;
297 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
299 --disable-gfx-check) check_gfx="no"
301 --disable-gcc-check) check_gcc="no"
303 --disable-system) softmmu="no"
305 --enable-system) softmmu="yes"
307 --disable-linux-user) linux_user="no"
309 --enable-linux-user) linux_user="yes"
311 --disable-darwin-user) darwin_user="no"
313 --enable-darwin-user) darwin_user="yes"
315 --enable-uname-release=*) uname_release="$optarg"
317 --sparc_cpu=*)
318 sparc_cpu="$optarg"
319 case $sparc_cpu in
320 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
321 target_cpu="sparc"; cpu="sparc" ;;
322 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
323 target_cpu="sparc"; cpu="sparc" ;;
324 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
325 target_cpu="sparc64"; cpu="sparc64" ;;
326 *) echo "undefined SPARC architecture. Exiting";exit 1;;
327 esac
329 --enable-werror) werror="yes"
331 --disable-werror) werror="no"
333 --disable-curses) curses="no"
335 --disable-nptl) nptl="no"
337 --enable-mixemu) mixemu="yes"
339 --disable-aio) aio="no"
341 *) echo "ERROR: unknown option $opt"; show_help="yes"
343 esac
344 done
346 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
347 AIOLIBS=
348 else
349 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
350 AIOLIBS="-lrt -lpthread"
353 # default flags for all hosts
354 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
355 LDFLAGS="$LDFLAGS -g"
356 if test "$werror" = "yes" ; then
357 CFLAGS="$CFLAGS -Werror"
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 " --enable-mingw32 enable Win32 cross compilation with mingw32"
423 echo " --audio-drv-list=LIST set audio drivers list:"
424 echo " Available drivers: $audio_possible_drivers"
425 echo " --audio-card-list=LIST set list of additional emulated audio cards"
426 echo " Available cards: ac97 adlib cs4231a gus"
427 echo " --enable-mixemu enable mixer emulation"
428 echo " --disable-brlapi disable BrlAPI"
429 echo " --disable-vnc-tls disable TLS encryption for VNC server"
430 echo " --disable-curses disable curses output"
431 echo " --disable-nptl disable usermode NPTL support"
432 echo " --enable-system enable all system emulation targets"
433 echo " --disable-system disable all system emulation targets"
434 echo " --enable-linux-user enable all linux usermode emulation targets"
435 echo " --disable-linux-user disable all linux usermode emulation targets"
436 echo " --enable-darwin-user enable all darwin usermode emulation targets"
437 echo " --disable-darwin-user disable all darwin usermode emulation targets"
438 echo " --fmod-lib path to FMOD library"
439 echo " --fmod-inc path to FMOD includes"
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 if test "$mingw32" = "yes" ; then
466 linux="no"
467 EXESUF=".exe"
468 oss="no"
471 # Check for gcc4, error if pre-gcc4
472 if test "$check_gcc" = "yes" ; then
473 cat > $TMPC <<EOF
474 #if __GNUC__ < 4
475 #error gcc3
476 #endif
477 int main(){return 0;}
479 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
480 echo "WARNING: \"$cc\" looks like gcc 4.x"
481 found_compat_cc="no"
482 if test "$gcc3_search" = "yes" ; then
483 echo "Looking for gcc 3.x"
484 for compat_cc in $gcc3_list ; do
485 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
486 echo "Found \"$compat_cc\""
487 cc="$cross_prefix$compat_cc"
488 found_compat_cc="yes"
489 break
491 done
492 if test "$found_compat_cc" = "no" ; then
493 echo "gcc 3.x not found!"
496 if test "$found_compat_cc" = "no" ; then
497 echo "QEMU is known to have problems when compiled with gcc 4.x"
498 echo "It is recommended that you use gcc 3.x to build QEMU"
499 echo "To use this compiler anyway, configure with --disable-gcc-check"
500 exit 1;
506 # Solaris specific configure tool chain decisions
508 if test "$solaris" = "yes" ; then
510 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
511 # override the check with --disable-gcc-check
513 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
514 solgcc=`which $cc`
515 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
516 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
517 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
518 echo "or get the latest patch from SunSolve for gcc"
519 exit 1
522 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
523 if test -z "$solinst" ; then
524 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
525 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
526 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
527 exit 1
529 if test "$solinst" = "/usr/sbin/install" ; then
530 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
531 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
532 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
533 exit 1
535 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
536 if test -z "$sol_ar" ; then
537 echo "Error: No path includes ar"
538 if test -f /usr/ccs/bin/ar ; then
539 echo "Add /usr/ccs/bin to your path and rerun configure"
541 exit 1
546 if test -z "$target_list" ; then
547 # these targets are portable
548 if [ "$softmmu" = "yes" ] ; then
549 target_list="\
550 i386-softmmu \
551 x86_64-softmmu \
552 arm-softmmu \
553 cris-softmmu \
554 m68k-softmmu \
555 mips-softmmu \
556 mipsel-softmmu \
557 mips64-softmmu \
558 mips64el-softmmu \
559 ppc-softmmu \
560 ppcemb-softmmu \
561 ppc64-softmmu \
562 sh4-softmmu \
563 sh4eb-softmmu \
564 sparc-softmmu \
567 # the following are Linux specific
568 if [ "$linux_user" = "yes" ] ; then
569 target_list="${target_list}\
570 i386-linux-user \
571 x86_64-linux-user \
572 alpha-linux-user \
573 arm-linux-user \
574 armeb-linux-user \
575 cris-linux-user \
576 m68k-linux-user \
577 mips-linux-user \
578 mipsel-linux-user \
579 ppc-linux-user \
580 ppc64-linux-user \
581 ppc64abi32-linux-user \
582 sh4-linux-user \
583 sh4eb-linux-user \
584 sparc-linux-user \
585 sparc64-linux-user \
586 sparc32plus-linux-user \
589 # the following are Darwin specific
590 if [ "$darwin_user" = "yes" ] ; then
591 target_list="$target_list i386-darwin-user ppc-darwin-user"
593 else
594 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
596 if test -z "$target_list" ; then
597 echo "No targets enabled"
598 exit 1
601 if test -z "$cross_prefix" ; then
603 # ---
604 # big/little endian test
605 cat > $TMPC << EOF
606 #include <inttypes.h>
607 int main(int argc, char ** argv){
608 volatile uint32_t i=0x01234567;
609 return (*((uint8_t*)(&i))) == 0x67;
613 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
614 $TMPE && bigendian="yes"
615 else
616 echo big/little test failed
619 else
621 # if cross compiling, cannot launch a program, so make a static guess
622 if test "$cpu" = "armv4b" \
623 -o "$cpu" = "hppa" \
624 -o "$cpu" = "m68k" \
625 -o "$cpu" = "mips" \
626 -o "$cpu" = "mips64" \
627 -o "$cpu" = "powerpc" \
628 -o "$cpu" = "s390" \
629 -o "$cpu" = "sparc" \
630 -o "$cpu" = "sparc64"; then
631 bigendian="yes"
636 # host long bits test
637 hostlongbits="32"
638 if test "$cpu" = "x86_64" \
639 -o "$cpu" = "alpha" \
640 -o "$cpu" = "ia64" \
641 -o "$cpu" = "sparc64"; then
642 hostlongbits="64"
645 # ppc specific hostlongbits selection
646 if test "$cpu" = "powerpc" ; then
647 cat > $TMPC <<EOF
648 int main(void){return sizeof(long);}
651 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null; then
652 $TMPE
653 case $? in
654 4) hostlongbits="32";;
655 8) hostlongbits="64";;
656 *) echo "Couldn't determine bits per long value"; exit 1;;
657 esac
658 else
659 echo hostlongbits test failed
660 exit 1
664 # check gcc options support
665 cat > $TMPC <<EOF
666 int main(void) {
670 # Check host NPTL support
671 cat > $TMPC <<EOF
672 #include <sched.h>
673 #include <linux/futex.h>
674 void foo()
676 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
677 #error bork
678 #endif
682 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
684 else
685 nptl="no"
688 ##########################################
689 # SDL probe
691 sdl_too_old=no
693 if test -z "$sdl" ; then
694 sdl_config="sdl-config"
695 sdl=no
696 sdl_static=no
698 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
699 # win32 cross compilation case
700 sdl_config="i386-mingw32msvc-sdl-config"
701 sdl=yes
702 else
703 # normal SDL probe
704 cat > $TMPC << EOF
705 #include <SDL.h>
706 #undef main /* We don't want SDL to override our main() */
707 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
709 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
710 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
711 if test "$_sdlversion" -lt 121 ; then
712 sdl_too_old=yes
713 else
714 if test "$cocoa" = "no" ; then
715 sdl=yes
719 # static link with sdl ?
720 if test "$sdl" = "yes" ; then
721 aa="no"
722 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
723 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
724 if [ "$aa" = "yes" ] ; then
725 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
728 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
729 sdl_static=yes
731 fi # static link
732 fi # sdl compile test
733 fi # cross compilation
734 else
735 # Make sure to disable cocoa if sdl was set
736 if test "$sdl" = "yes" ; then
737 cocoa="no"
738 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
740 fi # -z $sdl
742 ##########################################
743 # VNC TLS detection
744 if test "$vnc_tls" = "yes" ; then
745 cat > $TMPC <<EOF
746 #include <gnutls/gnutls.h>
747 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
749 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
750 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
751 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
752 $vnc_tls_libs 2> /dev/null ; then
754 else
755 vnc_tls="no"
759 ##########################################
760 # vde libraries probe
761 if test "$vde" = "yes" ; then
762 cat > $TMPC << EOF
763 #include <libvdeplug.h>
764 int main(void) { struct vde_open_args a = {0, 0, 0} ; return 0;}
766 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
768 else
769 vde="no"
773 ##########################################
774 # Sound support libraries probe
776 audio_drv_probe()
778 drv=$1
779 hdr=$2
780 lib=$3
781 exp=$4
782 cfl=$5
783 cat > $TMPC << EOF
784 #include <$hdr>
785 int main(void) { $exp }
787 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
789 else
790 echo
791 echo "Error: $drv check failed"
792 echo "Make sure to have the $drv libs and headers installed."
793 echo
794 exit 1
798 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
799 for drv in $audio_drv_list; do
800 case $drv in
801 alsa)
802 audio_drv_probe $drv alsa/asoundlib.h -lasound \
803 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
806 fmod)
807 if test -z $fmod_lib || test -z $fmod_inc; then
808 echo
809 echo "Error: You must specify path to FMOD library and headers"
810 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
811 echo
812 exit 1
814 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
817 esd)
818 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
822 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
823 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
827 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
828 echo
829 echo "Error: Unknown driver '$drv' selected"
830 echo "Possible drivers are: $audio_possible_drivers"
831 echo
832 exit 1
836 oss|sdl|core|wav|dsound)
837 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
840 esac
841 done
843 ##########################################
844 # BrlAPI probe
846 if test -z "$brlapi" ; then
847 brlapi=no
848 cat > $TMPC << EOF
849 #include <brlapi.h>
850 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
852 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
853 brlapi=yes
854 fi # brlapi compile test
855 fi # -z $brlapi
857 ##########################################
858 # curses probe
860 if test "$curses" = "yes" ; then
861 curses=no
862 cat > $TMPC << EOF
863 #include <curses.h>
864 int main(void) { return curses_version(); }
866 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
867 curses=yes
869 fi # test "$curses"
871 ##########################################
872 # AIO probe
873 if test "$aio" = "yes" ; then
874 aio=no
875 cat > $TMPC << EOF
876 #include <aio.h>
877 int main(void) { return aio_write(NULL); }
879 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
880 aio=yes
884 # Check if tools are available to build documentation.
885 if [ -x "`which texi2html 2>/dev/null`" ] && \
886 [ -x "`which pod2man 2>/dev/null`" ]; then
887 build_docs="yes"
890 if test "$mingw32" = "yes" ; then
891 if test -z "$prefix" ; then
892 prefix="/c/Program Files/Qemu"
894 mansuffix=""
895 datasuffix=""
896 docsuffix=""
897 binsuffix=""
898 else
899 if test -z "$prefix" ; then
900 prefix="/usr/local"
902 mansuffix="/share/man"
903 datasuffix="/share/qemu"
904 docsuffix="/share/doc/qemu"
905 binsuffix="/bin"
908 echo "Install prefix $prefix"
909 echo "BIOS directory $prefix$datasuffix"
910 echo "binary directory $prefix$binsuffix"
911 if test "$mingw32" = "no" ; then
912 echo "Manual directory $prefix$mansuffix"
913 echo "ELF interp prefix $interp_prefix"
915 echo "Source path $source_path"
916 echo "C compiler $cc"
917 echo "Host C compiler $host_cc"
918 echo "ARCH_CFLAGS $ARCH_CFLAGS"
919 echo "make $make"
920 echo "install $install"
921 echo "host CPU $cpu"
922 echo "host big endian $bigendian"
923 echo "target list $target_list"
924 echo "gprof enabled $gprof"
925 echo "profiler $profiler"
926 echo "static build $static"
927 echo "-Werror enabled $werror"
928 if test "$darwin" = "yes" ; then
929 echo "Cocoa support $cocoa"
931 echo "SDL support $sdl"
932 if test "$sdl" != "no" ; then
933 echo "SDL static link $sdl_static"
935 echo "curses support $curses"
936 echo "mingw32 support $mingw32"
937 echo "Audio drivers $audio_drv_list"
938 echo "Extra audio cards $audio_card_list"
939 echo "Mixer emulation $mixemu"
940 echo "VNC TLS support $vnc_tls"
941 if test "$vnc_tls" = "yes" ; then
942 echo " TLS CFLAGS $vnc_tls_cflags"
943 echo " TLS LIBS $vnc_tls_libs"
945 if test -n "$sparc_cpu"; then
946 echo "Target Sparc Arch $sparc_cpu"
948 echo "kqemu support $kqemu"
949 echo "brlapi support $brlapi"
950 echo "Documentation $build_docs"
951 [ ! -z "$uname_release" ] && \
952 echo "uname -r $uname_release"
953 echo "NPTL support $nptl"
954 echo "vde support $vde"
955 echo "AIO support $aio"
957 if test $sdl_too_old = "yes"; then
958 echo "-> Your SDL version is too old - please upgrade to have SDL support"
960 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
961 echo "The error log from compiling the libSDL test is: "
962 cat /tmp/qemu-$$-sdl-config.log
964 rm -f /tmp/qemu-$$-sdl-config.log
965 #if test "$sdl_static" = "no"; then
966 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
968 config_mak="config-host.mak"
969 config_h="config-host.h"
971 #echo "Creating $config_mak and $config_h"
973 test -f $config_h && mv $config_h ${config_h}~
975 echo "# Automatically generated by configure - do not modify" > $config_mak
976 echo "# Configured with: $0 $@" >> $config_mak
977 echo "/* Automatically generated by configure - do not modify */" > $config_h
979 echo "prefix=$prefix" >> $config_mak
980 echo "bindir=\${prefix}$binsuffix" >> $config_mak
981 echo "mandir=\${prefix}$mansuffix" >> $config_mak
982 echo "datadir=\${prefix}$datasuffix" >> $config_mak
983 echo "docdir=\${prefix}$docsuffix" >> $config_mak
984 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
985 echo "MAKE=$make" >> $config_mak
986 echo "INSTALL=$install" >> $config_mak
987 echo "CC=$cc" >> $config_mak
988 echo "HOST_CC=$host_cc" >> $config_mak
989 echo "AR=$ar" >> $config_mak
990 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
991 # XXX: only use CFLAGS and LDFLAGS ?
992 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
993 # compilation of dyngen tool (useful for win32 build on Linux host)
994 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
995 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
996 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
997 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
998 echo "CFLAGS=$CFLAGS" >> $config_mak
999 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1000 echo "EXESUF=$EXESUF" >> $config_mak
1001 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1002 case "$cpu" in
1003 i386)
1004 echo "ARCH=i386" >> $config_mak
1005 echo "#define HOST_I386 1" >> $config_h
1007 x86_64)
1008 echo "ARCH=x86_64" >> $config_mak
1009 echo "#define HOST_X86_64 1" >> $config_h
1011 alpha)
1012 echo "ARCH=alpha" >> $config_mak
1013 echo "#define HOST_ALPHA 1" >> $config_h
1015 armv4b)
1016 echo "ARCH=arm" >> $config_mak
1017 echo "#define HOST_ARM 1" >> $config_h
1019 armv4l)
1020 echo "ARCH=arm" >> $config_mak
1021 echo "#define HOST_ARM 1" >> $config_h
1023 cris)
1024 echo "ARCH=cris" >> $config_mak
1025 echo "#define HOST_CRIS 1" >> $config_h
1027 hppa)
1028 echo "ARCH=hppa" >> $config_mak
1029 echo "#define HOST_HPPA 1" >> $config_h
1031 ia64)
1032 echo "ARCH=ia64" >> $config_mak
1033 echo "#define HOST_IA64 1" >> $config_h
1035 m68k)
1036 echo "ARCH=m68k" >> $config_mak
1037 echo "#define HOST_M68K 1" >> $config_h
1039 mips)
1040 echo "ARCH=mips" >> $config_mak
1041 echo "#define HOST_MIPS 1" >> $config_h
1043 mips64)
1044 echo "ARCH=mips64" >> $config_mak
1045 echo "#define HOST_MIPS64 1" >> $config_h
1047 powerpc)
1048 if test "$hostlongbits" = "32"; then
1049 echo "ARCH=ppc" >> $config_mak
1050 echo "#define HOST_PPC 1" >> $config_h
1051 else
1052 echo "ARCH=ppc64" >> $config_mak
1053 echo "#define HOST_PPC64 1" >> $config_h
1056 s390)
1057 echo "ARCH=s390" >> $config_mak
1058 echo "#define HOST_S390 1" >> $config_h
1060 sparc)
1061 echo "ARCH=sparc" >> $config_mak
1062 echo "#define HOST_SPARC 1" >> $config_h
1064 sparc64)
1065 echo "ARCH=sparc64" >> $config_mak
1066 echo "#define HOST_SPARC64 1" >> $config_h
1069 echo "Unsupported CPU = $cpu"
1070 exit 1
1072 esac
1073 if test "$bigendian" = "yes" ; then
1074 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1075 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1077 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1078 if test "$mingw32" = "yes" ; then
1079 echo "CONFIG_WIN32=yes" >> $config_mak
1080 echo "#define CONFIG_WIN32 1" >> $config_h
1081 else
1082 cat > $TMPC << EOF
1083 #include <byteswap.h>
1084 int main(void) { return bswap_32(0); }
1086 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1087 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1091 if [ "$openbsd" = "yes" ] ; then
1092 echo "#define ENOTSUP 4096" >> $config_h
1095 if test "$darwin" = "yes" ; then
1096 echo "CONFIG_DARWIN=yes" >> $config_mak
1097 echo "#define CONFIG_DARWIN 1" >> $config_h
1099 if test "$solaris" = "yes" ; then
1100 echo "CONFIG_SOLARIS=yes" >> $config_mak
1101 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1102 if test "$needs_libsunmath" = "yes" ; then
1103 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1104 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1107 if test -n "$sparc_cpu"; then
1108 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1109 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1111 if test "$gdbstub" = "yes" ; then
1112 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1113 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1115 if test "$gprof" = "yes" ; then
1116 echo "TARGET_GPROF=yes" >> $config_mak
1117 echo "#define HAVE_GPROF 1" >> $config_h
1119 if test "$static" = "yes" ; then
1120 echo "CONFIG_STATIC=yes" >> $config_mak
1121 echo "#define CONFIG_STATIC 1" >> $config_h
1123 if test $profiler = "yes" ; then
1124 echo "#define CONFIG_PROFILER 1" >> $config_h
1126 if test "$slirp" = "yes" ; then
1127 echo "CONFIG_SLIRP=yes" >> $config_mak
1128 echo "#define CONFIG_SLIRP 1" >> $config_h
1130 if test "$vde" = "yes" ; then
1131 echo "CONFIG_VDE=yes" >> $config_mak
1132 echo "#define CONFIG_VDE 1" >> $config_h
1133 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1135 for card in $audio_card_list; do
1136 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1137 echo "$def=yes" >> $config_mak
1138 echo "#define $def 1" >> $config_h
1139 done
1140 echo "#define AUDIO_DRIVERS \\" >> $config_h
1141 for drv in $audio_drv_list; do
1142 echo " &${drv}_audio_driver, \\" >>$config_h
1143 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1144 echo "$def=yes" >> $config_mak
1145 if test "$drv" = "fmod"; then
1146 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1147 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1149 done
1150 echo "" >>$config_h
1151 if test "$mixemu" = "yes" ; then
1152 echo "CONFIG_MIXEMU=yes" >> $config_mak
1153 echo "#define CONFIG_MIXEMU 1" >> $config_h
1155 if test "$vnc_tls" = "yes" ; then
1156 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1157 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1158 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1159 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1161 qemu_version=`head $source_path/VERSION`
1162 echo "VERSION=$qemu_version" >>$config_mak
1163 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1165 echo "SRC_PATH=$source_path" >> $config_mak
1166 if [ "$source_path_used" = "yes" ]; then
1167 echo "VPATH=$source_path" >> $config_mak
1169 echo "TARGET_DIRS=$target_list" >> $config_mak
1170 if [ "$build_docs" = "yes" ] ; then
1171 echo "BUILD_DOCS=yes" >> $config_mak
1173 if test "$static" = "yes"; then
1174 sdl1=$sdl_static
1175 else
1176 sdl1=$sdl
1178 if test "$sdl1" = "yes" ; then
1179 echo "#define CONFIG_SDL 1" >> $config_h
1180 echo "CONFIG_SDL=yes" >> $config_mak
1181 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1182 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1183 else
1184 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1186 if [ "${aa}" = "yes" ] ; then
1187 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1188 else
1189 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1192 if test "$cocoa" = "yes" ; then
1193 echo "#define CONFIG_COCOA 1" >> $config_h
1194 echo "CONFIG_COCOA=yes" >> $config_mak
1196 if test "$curses" = "yes" ; then
1197 echo "#define CONFIG_CURSES 1" >> $config_h
1198 echo "CONFIG_CURSES=yes" >> $config_mak
1199 echo "CURSES_LIBS=-lcurses" >> $config_mak
1201 if test "$brlapi" = "yes" ; then
1202 echo "CONFIG_BRLAPI=yes" >> $config_mak
1203 echo "#define CONFIG_BRLAPI 1" >> $config_h
1204 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1206 if test "$aio" = "yes" ; then
1207 echo "#define CONFIG_AIO 1" >> $config_h
1210 # XXX: suppress that
1211 if [ "$bsd" = "yes" ] ; then
1212 echo "#define O_LARGEFILE 0" >> $config_h
1213 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1214 echo "#define _BSD 1" >> $config_h
1217 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1219 tools=
1220 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1221 tools="qemu-img\$(EXESUF) $tools"
1222 if [ "$linux" = "yes" ] ; then
1223 tools="qemu-nbd\$(EXESUF) $tools"
1226 echo "TOOLS=$tools" >> $config_mak
1228 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1230 for target in $target_list; do
1231 target_dir="$target"
1232 config_mak=$target_dir/config.mak
1233 config_h=$target_dir/config.h
1234 target_cpu=`echo $target | cut -d '-' -f 1`
1235 target_bigendian="no"
1236 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1237 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1238 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1239 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1240 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1241 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1242 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1243 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1244 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1245 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1246 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1247 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1248 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1249 target_softmmu="no"
1250 target_user_only="no"
1251 target_linux_user="no"
1252 target_darwin_user="no"
1253 case "$target" in
1254 ${target_cpu}-softmmu)
1255 target_softmmu="yes"
1257 ${target_cpu}-linux-user)
1258 target_user_only="yes"
1259 target_linux_user="yes"
1261 ${target_cpu}-darwin-user)
1262 target_user_only="yes"
1263 target_darwin_user="yes"
1266 echo "ERROR: Target '$target' not recognised"
1267 exit 1
1269 esac
1271 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1272 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1273 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1274 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1275 echo "Note that this will disable all output from the virtual graphics card"
1276 echo "except through VNC or curses."
1277 exit 1;
1280 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1282 test -f $config_h && mv $config_h ${config_h}~
1284 mkdir -p $target_dir
1285 mkdir -p $target_dir/fpu
1286 mkdir -p $target_dir/tcg
1287 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1288 mkdir -p $target_dir/nwfpe
1292 # don't use ln -sf as not all "ln -sf" over write the file/link
1294 rm -f $target_dir/Makefile
1295 ln -s $source_path/Makefile.target $target_dir/Makefile
1298 echo "# Automatically generated by configure - do not modify" > $config_mak
1299 echo "/* Automatically generated by configure - do not modify */" > $config_h
1302 echo "include ../config-host.mak" >> $config_mak
1303 echo "#include \"../config-host.h\"" >> $config_h
1305 bflt="no"
1306 elfload32="no"
1307 target_nptl="no"
1308 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1309 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1311 case "$target_cpu" in
1312 i386)
1313 echo "TARGET_ARCH=i386" >> $config_mak
1314 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1315 echo "#define TARGET_I386 1" >> $config_h
1316 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1317 then
1318 echo "#define USE_KQEMU 1" >> $config_h
1320 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1321 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1322 then
1323 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1324 else
1325 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1328 x86_64)
1329 echo "TARGET_ARCH=x86_64" >> $config_mak
1330 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1331 echo "#define TARGET_I386 1" >> $config_h
1332 echo "#define TARGET_X86_64 1" >> $config_h
1333 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1334 then
1335 echo "#define USE_KQEMU 1" >> $config_h
1338 alpha)
1339 echo "TARGET_ARCH=alpha" >> $config_mak
1340 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1341 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1342 echo "#define TARGET_ALPHA 1" >> $config_h
1343 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1345 arm|armeb)
1346 echo "TARGET_ARCH=arm" >> $config_mak
1347 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1348 echo "#define TARGET_ARM 1" >> $config_h
1349 bflt="yes"
1350 target_nptl="yes"
1352 cris)
1353 echo "TARGET_ARCH=cris" >> $config_mak
1354 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1355 echo "#define TARGET_CRIS 1" >> $config_h
1357 m68k)
1358 echo "TARGET_ARCH=m68k" >> $config_mak
1359 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1360 echo "#define TARGET_M68K 1" >> $config_h
1361 bflt="yes"
1363 mips|mipsel)
1364 echo "TARGET_ARCH=mips" >> $config_mak
1365 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1366 echo "#define TARGET_MIPS 1" >> $config_h
1367 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1369 mipsn32|mipsn32el)
1370 echo "TARGET_ARCH=mipsn32" >> $config_mak
1371 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1372 echo "#define TARGET_MIPS 1" >> $config_h
1373 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1375 mips64|mips64el)
1376 echo "TARGET_ARCH=mips64" >> $config_mak
1377 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1378 echo "#define TARGET_MIPS 1" >> $config_h
1379 echo "#define TARGET_MIPS64 1" >> $config_h
1380 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1382 ppc)
1383 echo "TARGET_ARCH=ppc" >> $config_mak
1384 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1385 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1386 echo "#define TARGET_PPC 1" >> $config_h
1387 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1389 ppcemb)
1390 echo "TARGET_ARCH=ppcemb" >> $config_mak
1391 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1392 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1393 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1394 echo "#define TARGET_PPC 1" >> $config_h
1395 echo "#define TARGET_PPCEMB 1" >> $config_h
1396 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1398 ppc64)
1399 echo "TARGET_ARCH=ppc64" >> $config_mak
1400 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1401 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1402 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1403 echo "#define TARGET_PPC 1" >> $config_h
1404 echo "#define TARGET_PPC64 1" >> $config_h
1405 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1407 ppc64abi32)
1408 echo "TARGET_ARCH=ppc64" >> $config_mak
1409 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1410 echo "TARGET_ARCH2=ppc64abi32" >> $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 TARGET_ABI32 1" >> $config_h
1416 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1418 sh4|sh4eb)
1419 echo "TARGET_ARCH=sh4" >> $config_mak
1420 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1421 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1422 echo "#define TARGET_SH4 1" >> $config_h
1423 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1424 bflt="yes"
1426 sparc)
1427 echo "TARGET_ARCH=sparc" >> $config_mak
1428 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1429 echo "#define TARGET_SPARC 1" >> $config_h
1431 sparc64)
1432 echo "TARGET_ARCH=sparc64" >> $config_mak
1433 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1434 echo "#define TARGET_SPARC 1" >> $config_h
1435 echo "#define TARGET_SPARC64 1" >> $config_h
1436 elfload32="yes"
1438 sparc32plus)
1439 echo "TARGET_ARCH=sparc64" >> $config_mak
1440 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1441 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1442 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1443 echo "#define TARGET_SPARC 1" >> $config_h
1444 echo "#define TARGET_SPARC64 1" >> $config_h
1445 echo "#define TARGET_ABI32 1" >> $config_h
1448 echo "Unsupported target CPU"
1449 exit 1
1451 esac
1452 if test "$target_bigendian" = "yes" ; then
1453 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1454 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1456 if test "$target_softmmu" = "yes" ; then
1457 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1458 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1460 if test "$target_user_only" = "yes" ; then
1461 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1462 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1464 if test "$target_linux_user" = "yes" ; then
1465 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1466 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1468 if test "$target_darwin_user" = "yes" ; then
1469 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1470 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1473 if test "$target_cpu" = "arm" \
1474 -o "$target_cpu" = "armeb" \
1475 -o "$target_cpu" = "m68k" \
1476 -o "$target_cpu" = "mips" \
1477 -o "$target_cpu" = "mipsel" \
1478 -o "$target_cpu" = "mipsn32" \
1479 -o "$target_cpu" = "mipsn32el" \
1480 -o "$target_cpu" = "mips64" \
1481 -o "$target_cpu" = "mips64el" \
1482 -o "$target_cpu" = "sparc" \
1483 -o "$target_cpu" = "sparc64" \
1484 -o "$target_cpu" = "sparc32plus"; then
1485 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1486 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1488 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1489 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1490 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1492 if test "$target_user_only" = "yes" \
1493 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1494 echo "#define USE_NPTL 1" >> $config_h
1496 # 32 bit ELF loader in addition to native 64 bit loader?
1497 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1498 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1499 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1502 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1504 done # for target in $targets
1506 # build tree in object directory if source path is different from current one
1507 if test "$source_path_used" = "yes" ; then
1508 DIRS="tests tests/cris slirp audio"
1509 FILES="Makefile tests/Makefile"
1510 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1511 FILES="$FILES tests/test-mmap.c"
1512 for dir in $DIRS ; do
1513 mkdir -p $dir
1514 done
1515 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1516 for f in $FILES ; do
1517 rm -f $f
1518 ln -s $source_path/$f $f
1519 done
1522 rm -f $TMPO $TMPC $TMPE $TMPS