Fix warnings that would be caused by ld flag --warn-common
[qemu/mini2440/sniper_sniper_test.git] / configure
blobdf756dbf1374bf77d97267753c6da8bcee36c713
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"
357 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
358 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
360 case "$cpu" in
361 sparc) if test -z "$sparc_cpu" ; then
362 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
363 ARCH_LDFLAGS="-m32"
364 else
365 ARCH_CFLAGS="${SP_CFLAGS}"
366 ARCH_LDFLAGS="${SP_LDFLAGS}"
369 sparc64) if test -z "$sparc_cpu" ; then
370 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
371 ARCH_LDFLAGS="-m64"
372 else
373 ARCH_CFLAGS="${SP_CFLAGS}"
374 ARCH_LDFLAGS="${SP_LDFLAGS}"
377 s390)
378 ARCH_CFLAGS="-march=z900"
380 i386)
381 ARCH_CFLAGS="-m32"
382 ARCH_LDFLAGS="-m32"
384 x86_64)
385 ARCH_CFLAGS="-m64"
386 ARCH_LDFLAGS="-m64"
388 esac
390 if test x"$show_help" = x"yes" ; then
391 cat << EOF
393 Usage: configure [options]
394 Options: [defaults in brackets after descriptions]
397 echo "Standard options:"
398 echo " --help print this message"
399 echo " --prefix=PREFIX install in PREFIX [$prefix]"
400 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
401 echo " use %M for cpu name [$interp_prefix]"
402 echo " --target-list=LIST set target list [$target_list]"
403 echo ""
404 echo "kqemu kernel acceleration support:"
405 echo " --disable-kqemu disable kqemu support"
406 echo ""
407 echo "Advanced options (experts only):"
408 echo " --source-path=PATH path of source code [$source_path]"
409 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
410 echo " --cc=CC use C compiler CC [$cc]"
411 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
412 echo " --make=MAKE use specified make [$make]"
413 echo " --install=INSTALL use specified install [$install]"
414 echo " --static enable static build [$static]"
415 echo " --disable-werror disable compilation abort on warning"
416 echo " --disable-sdl disable SDL"
417 echo " --enable-cocoa enable COCOA (Mac OS X only)"
418 echo " --audio-drv-list=LIST set audio drivers list:"
419 echo " Available drivers: $audio_possible_drivers"
420 echo " --audio-card-list=LIST set list of additional emulated audio cards"
421 echo " Available cards: ac97 adlib cs4231a gus"
422 echo " --enable-mixemu enable mixer emulation"
423 echo " --disable-brlapi disable BrlAPI"
424 echo " --disable-vnc-tls disable TLS encryption for VNC server"
425 echo " --disable-curses disable curses output"
426 echo " --disable-nptl disable usermode NPTL support"
427 echo " --enable-system enable all system emulation targets"
428 echo " --disable-system disable all system emulation targets"
429 echo " --enable-linux-user enable all linux usermode emulation targets"
430 echo " --disable-linux-user disable all linux usermode emulation targets"
431 echo " --enable-darwin-user enable all darwin usermode emulation targets"
432 echo " --disable-darwin-user disable all darwin usermode emulation targets"
433 echo " --fmod-lib path to FMOD library"
434 echo " --fmod-inc path to FMOD includes"
435 echo " --oss-lib path to OSS library"
436 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
437 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
438 echo " --disable-vde disable support for vde network"
439 echo " --disable-aio disable AIO support"
440 echo ""
441 echo "NOTE: The object files are built at the place where configure is launched"
442 exit 1
445 cc="${cross_prefix}${cc}"
446 ar="${cross_prefix}${ar}"
447 strip="${cross_prefix}${strip}"
449 # check that the C compiler works.
450 cat > $TMPC <<EOF
451 int main(void) {}
454 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
455 : C compiler works ok
456 else
457 echo "ERROR: \"$cc\" either does not exist or does not work"
458 exit 1
461 # check compiler to see if we're on mingw32
462 cat > $TMPC <<EOF
463 #include <windows.h>
464 #ifndef _WIN32
465 #error not windows
466 #endif
467 int main(void) {}
470 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
471 mingw32="yes"
474 if test "$mingw32" = "yes" ; then
475 linux="no"
476 EXESUF=".exe"
477 oss="no"
478 linux_user="no"
481 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
482 AIOLIBS=
483 else
484 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
485 AIOLIBS="-lrt -lpthread"
488 # Check for gcc4, error if pre-gcc4
489 if test "$check_gcc" = "yes" ; then
490 cat > $TMPC <<EOF
491 #if __GNUC__ < 4
492 #error gcc3
493 #endif
494 int main(){return 0;}
496 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
497 echo "WARNING: \"$cc\" looks like gcc 4.x"
498 found_compat_cc="no"
499 if test "$gcc3_search" = "yes" ; then
500 echo "Looking for gcc 3.x"
501 for compat_cc in $gcc3_list ; do
502 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
503 echo "Found \"$compat_cc\""
504 cc="$cross_prefix$compat_cc"
505 found_compat_cc="yes"
506 break
508 done
509 if test "$found_compat_cc" = "no" ; then
510 echo "gcc 3.x not found!"
513 if test "$found_compat_cc" = "no" ; then
514 echo "QEMU is known to have problems when compiled with gcc 4.x"
515 echo "It is recommended that you use gcc 3.x to build QEMU"
516 echo "To use this compiler anyway, configure with --disable-gcc-check"
517 exit 1;
523 # Solaris specific configure tool chain decisions
525 if test "$solaris" = "yes" ; then
527 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
528 # override the check with --disable-gcc-check
530 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
531 solgcc=`which $cc`
532 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
533 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
534 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
535 echo "or get the latest patch from SunSolve for gcc"
536 exit 1
539 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
540 if test -z "$solinst" ; then
541 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
542 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
543 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
544 exit 1
546 if test "$solinst" = "/usr/sbin/install" ; then
547 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
548 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
549 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
550 exit 1
552 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
553 if test -z "$sol_ar" ; then
554 echo "Error: No path includes ar"
555 if test -f /usr/ccs/bin/ar ; then
556 echo "Add /usr/ccs/bin to your path and rerun configure"
558 exit 1
563 if test -z "$target_list" ; then
564 # these targets are portable
565 if [ "$softmmu" = "yes" ] ; then
566 target_list="\
567 i386-softmmu \
568 x86_64-softmmu \
569 arm-softmmu \
570 cris-softmmu \
571 m68k-softmmu \
572 mips-softmmu \
573 mipsel-softmmu \
574 mips64-softmmu \
575 mips64el-softmmu \
576 ppc-softmmu \
577 ppcemb-softmmu \
578 ppc64-softmmu \
579 sh4-softmmu \
580 sh4eb-softmmu \
581 sparc-softmmu \
584 # the following are Linux specific
585 if [ "$linux_user" = "yes" ] ; then
586 target_list="${target_list}\
587 i386-linux-user \
588 x86_64-linux-user \
589 alpha-linux-user \
590 arm-linux-user \
591 armeb-linux-user \
592 cris-linux-user \
593 m68k-linux-user \
594 mips-linux-user \
595 mipsel-linux-user \
596 ppc-linux-user \
597 ppc64-linux-user \
598 ppc64abi32-linux-user \
599 sh4-linux-user \
600 sh4eb-linux-user \
601 sparc-linux-user \
602 sparc64-linux-user \
603 sparc32plus-linux-user \
606 # the following are Darwin specific
607 if [ "$darwin_user" = "yes" ] ; then
608 target_list="$target_list i386-darwin-user ppc-darwin-user"
610 else
611 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
613 if test -z "$target_list" ; then
614 echo "No targets enabled"
615 exit 1
618 if test -z "$cross_prefix" ; then
620 # ---
621 # big/little endian test
622 cat > $TMPC << EOF
623 #include <inttypes.h>
624 int main(int argc, char ** argv){
625 volatile uint32_t i=0x01234567;
626 return (*((uint8_t*)(&i))) == 0x67;
630 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
631 $TMPE && bigendian="yes"
632 else
633 echo big/little test failed
636 else
638 # if cross compiling, cannot launch a program, so make a static guess
639 if test "$cpu" = "armv4b" \
640 -o "$cpu" = "hppa" \
641 -o "$cpu" = "m68k" \
642 -o "$cpu" = "mips" \
643 -o "$cpu" = "mips64" \
644 -o "$cpu" = "powerpc" \
645 -o "$cpu" = "s390" \
646 -o "$cpu" = "sparc" \
647 -o "$cpu" = "sparc64"; then
648 bigendian="yes"
653 # host long bits test
654 hostlongbits="32"
655 if test "$cpu" = "x86_64" \
656 -o "$cpu" = "alpha" \
657 -o "$cpu" = "ia64" \
658 -o "$cpu" = "sparc64"; then
659 hostlongbits="64"
662 # ppc specific hostlongbits selection
663 if test "$cpu" = "powerpc" ; then
664 cat > $TMPC <<EOF
665 int main(void){return sizeof(long);}
668 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null; then
669 $TMPE
670 case $? in
671 4) hostlongbits="32";;
672 8) hostlongbits="64";;
673 *) echo "Couldn't determine bits per long value"; exit 1;;
674 esac
675 else
676 echo hostlongbits test failed
677 exit 1
681 # check gcc options support
682 cat > $TMPC <<EOF
683 int main(void) {
687 # Check host NPTL support
688 cat > $TMPC <<EOF
689 #include <sched.h>
690 #include <linux/futex.h>
691 void foo()
693 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
694 #error bork
695 #endif
699 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
701 else
702 nptl="no"
705 ##########################################
706 # SDL probe
708 sdl_too_old=no
710 if test -z "$sdl" ; then
711 sdl_config="sdl-config"
712 sdl=no
713 sdl_static=no
715 cat > $TMPC << EOF
716 #include <SDL.h>
717 #undef main /* We don't want SDL to override our main() */
718 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
720 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
721 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
722 if test "$_sdlversion" -lt 121 ; then
723 sdl_too_old=yes
724 else
725 if test "$cocoa" = "no" ; then
726 sdl=yes
730 # static link with sdl ?
731 if test "$sdl" = "yes" ; then
732 aa="no"
733 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
734 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
735 if [ "$aa" = "yes" ] ; then
736 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
739 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
740 sdl_static=yes
742 fi # static link
743 fi # sdl compile test
744 else
745 # Make sure to disable cocoa if sdl was set
746 if test "$sdl" = "yes" ; then
747 cocoa="no"
748 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
750 fi # -z $sdl
752 ##########################################
753 # VNC TLS detection
754 if test "$vnc_tls" = "yes" ; then
755 cat > $TMPC <<EOF
756 #include <gnutls/gnutls.h>
757 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
759 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
760 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
761 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
762 $vnc_tls_libs 2> /dev/null ; then
764 else
765 vnc_tls="no"
769 ##########################################
770 # vde libraries probe
771 if test "$vde" = "yes" ; then
772 cat > $TMPC << EOF
773 #include <libvdeplug.h>
774 int main(void)
776 struct vde_open_args a = {0, 0, 0};
777 vde_open("", "", &a);
778 return 0;
781 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
783 else
784 vde="no"
788 ##########################################
789 # Sound support libraries probe
791 audio_drv_probe()
793 drv=$1
794 hdr=$2
795 lib=$3
796 exp=$4
797 cfl=$5
798 cat > $TMPC << EOF
799 #include <$hdr>
800 int main(void) { $exp }
802 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
804 else
805 echo
806 echo "Error: $drv check failed"
807 echo "Make sure to have the $drv libs and headers installed."
808 echo
809 exit 1
813 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
814 for drv in $audio_drv_list; do
815 case $drv in
816 alsa)
817 audio_drv_probe $drv alsa/asoundlib.h -lasound \
818 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
821 fmod)
822 if test -z $fmod_lib || test -z $fmod_inc; then
823 echo
824 echo "Error: You must specify path to FMOD library and headers"
825 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
826 echo
827 exit 1
829 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
832 esd)
833 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
837 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
838 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
841 oss|sdl|core|wav|dsound)
842 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
846 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
847 echo
848 echo "Error: Unknown driver '$drv' selected"
849 echo "Possible drivers are: $audio_possible_drivers"
850 echo
851 exit 1
854 esac
855 done
857 ##########################################
858 # BrlAPI probe
860 if test -z "$brlapi" ; then
861 brlapi=no
862 cat > $TMPC << EOF
863 #include <brlapi.h>
864 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
866 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
867 brlapi=yes
868 fi # brlapi compile test
869 fi # -z $brlapi
871 ##########################################
872 # curses probe
874 if test "$curses" = "yes" ; then
875 curses=no
876 cat > $TMPC << EOF
877 #include <curses.h>
878 int main(void) { return curses_version(); }
880 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
881 curses=yes
883 fi # test "$curses"
885 ##########################################
886 # AIO probe
887 if test "$aio" = "yes" ; then
888 aio=no
889 cat > $TMPC << EOF
890 #include <aio.h>
891 int main(void) { return aio_write(NULL); }
893 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
894 aio=yes
898 # Check if tools are available to build documentation.
899 if [ -x "`which texi2html 2>/dev/null`" ] && \
900 [ -x "`which pod2man 2>/dev/null`" ]; then
901 build_docs="yes"
904 if test "$mingw32" = "yes" ; then
905 if test -z "$prefix" ; then
906 prefix="/c/Program Files/Qemu"
908 mansuffix=""
909 datasuffix=""
910 docsuffix=""
911 binsuffix=""
912 else
913 if test -z "$prefix" ; then
914 prefix="/usr/local"
916 mansuffix="/share/man"
917 datasuffix="/share/qemu"
918 docsuffix="/share/doc/qemu"
919 binsuffix="/bin"
922 echo "Install prefix $prefix"
923 echo "BIOS directory $prefix$datasuffix"
924 echo "binary directory $prefix$binsuffix"
925 if test "$mingw32" = "no" ; then
926 echo "Manual directory $prefix$mansuffix"
927 echo "ELF interp prefix $interp_prefix"
929 echo "Source path $source_path"
930 echo "C compiler $cc"
931 echo "Host C compiler $host_cc"
932 echo "ARCH_CFLAGS $ARCH_CFLAGS"
933 echo "make $make"
934 echo "install $install"
935 echo "host CPU $cpu"
936 echo "host big endian $bigendian"
937 echo "target list $target_list"
938 echo "gprof enabled $gprof"
939 echo "profiler $profiler"
940 echo "static build $static"
941 echo "-Werror enabled $werror"
942 if test "$darwin" = "yes" ; then
943 echo "Cocoa support $cocoa"
945 echo "SDL support $sdl"
946 if test "$sdl" != "no" ; then
947 echo "SDL static link $sdl_static"
949 echo "curses support $curses"
950 echo "mingw32 support $mingw32"
951 echo "Audio drivers $audio_drv_list"
952 echo "Extra audio cards $audio_card_list"
953 echo "Mixer emulation $mixemu"
954 echo "VNC TLS support $vnc_tls"
955 if test "$vnc_tls" = "yes" ; then
956 echo " TLS CFLAGS $vnc_tls_cflags"
957 echo " TLS LIBS $vnc_tls_libs"
959 if test -n "$sparc_cpu"; then
960 echo "Target Sparc Arch $sparc_cpu"
962 echo "kqemu support $kqemu"
963 echo "brlapi support $brlapi"
964 echo "Documentation $build_docs"
965 [ ! -z "$uname_release" ] && \
966 echo "uname -r $uname_release"
967 echo "NPTL support $nptl"
968 echo "vde support $vde"
969 echo "AIO support $aio"
971 if test $sdl_too_old = "yes"; then
972 echo "-> Your SDL version is too old - please upgrade to have SDL support"
974 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
975 echo "The error log from compiling the libSDL test is: "
976 cat /tmp/qemu-$$-sdl-config.log
978 rm -f /tmp/qemu-$$-sdl-config.log
979 #if test "$sdl_static" = "no"; then
980 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
982 config_mak="config-host.mak"
983 config_h="config-host.h"
985 #echo "Creating $config_mak and $config_h"
987 test -f $config_h && mv $config_h ${config_h}~
989 echo "# Automatically generated by configure - do not modify" > $config_mak
990 echo "# Configured with: $0 $@" >> $config_mak
991 echo "/* Automatically generated by configure - do not modify */" > $config_h
993 echo "prefix=$prefix" >> $config_mak
994 echo "bindir=\${prefix}$binsuffix" >> $config_mak
995 echo "mandir=\${prefix}$mansuffix" >> $config_mak
996 echo "datadir=\${prefix}$datasuffix" >> $config_mak
997 echo "docdir=\${prefix}$docsuffix" >> $config_mak
998 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
999 echo "MAKE=$make" >> $config_mak
1000 echo "INSTALL=$install" >> $config_mak
1001 echo "CC=$cc" >> $config_mak
1002 echo "HOST_CC=$host_cc" >> $config_mak
1003 echo "AR=$ar" >> $config_mak
1004 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1005 # XXX: only use CFLAGS and LDFLAGS ?
1006 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1007 # compilation of dyngen tool (useful for win32 build on Linux host)
1008 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1009 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1010 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1011 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1012 echo "CFLAGS=$CFLAGS" >> $config_mak
1013 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1014 echo "EXESUF=$EXESUF" >> $config_mak
1015 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1016 case "$cpu" in
1017 i386)
1018 echo "ARCH=i386" >> $config_mak
1019 echo "#define HOST_I386 1" >> $config_h
1021 x86_64)
1022 echo "ARCH=x86_64" >> $config_mak
1023 echo "#define HOST_X86_64 1" >> $config_h
1025 alpha)
1026 echo "ARCH=alpha" >> $config_mak
1027 echo "#define HOST_ALPHA 1" >> $config_h
1029 armv4b)
1030 echo "ARCH=arm" >> $config_mak
1031 echo "#define HOST_ARM 1" >> $config_h
1033 armv4l)
1034 echo "ARCH=arm" >> $config_mak
1035 echo "#define HOST_ARM 1" >> $config_h
1037 cris)
1038 echo "ARCH=cris" >> $config_mak
1039 echo "#define HOST_CRIS 1" >> $config_h
1041 hppa)
1042 echo "ARCH=hppa" >> $config_mak
1043 echo "#define HOST_HPPA 1" >> $config_h
1045 ia64)
1046 echo "ARCH=ia64" >> $config_mak
1047 echo "#define HOST_IA64 1" >> $config_h
1049 m68k)
1050 echo "ARCH=m68k" >> $config_mak
1051 echo "#define HOST_M68K 1" >> $config_h
1053 mips)
1054 echo "ARCH=mips" >> $config_mak
1055 echo "#define HOST_MIPS 1" >> $config_h
1057 mips64)
1058 echo "ARCH=mips64" >> $config_mak
1059 echo "#define HOST_MIPS64 1" >> $config_h
1061 powerpc)
1062 if test "$hostlongbits" = "32"; then
1063 echo "ARCH=ppc" >> $config_mak
1064 echo "#define HOST_PPC 1" >> $config_h
1065 else
1066 echo "ARCH=ppc64" >> $config_mak
1067 echo "#define HOST_PPC64 1" >> $config_h
1070 s390)
1071 echo "ARCH=s390" >> $config_mak
1072 echo "#define HOST_S390 1" >> $config_h
1074 sparc)
1075 echo "ARCH=sparc" >> $config_mak
1076 echo "#define HOST_SPARC 1" >> $config_h
1078 sparc64)
1079 echo "ARCH=sparc64" >> $config_mak
1080 echo "#define HOST_SPARC64 1" >> $config_h
1083 echo "Unsupported CPU = $cpu"
1084 exit 1
1086 esac
1087 if test "$bigendian" = "yes" ; then
1088 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1089 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1091 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1092 if test "$mingw32" = "yes" ; then
1093 echo "CONFIG_WIN32=yes" >> $config_mak
1094 echo "#define CONFIG_WIN32 1" >> $config_h
1095 else
1096 cat > $TMPC << EOF
1097 #include <byteswap.h>
1098 int main(void) { return bswap_32(0); }
1100 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1101 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1105 if [ "$openbsd" = "yes" ] ; then
1106 echo "#define ENOTSUP 4096" >> $config_h
1109 if test "$darwin" = "yes" ; then
1110 echo "CONFIG_DARWIN=yes" >> $config_mak
1111 echo "#define CONFIG_DARWIN 1" >> $config_h
1113 if test "$solaris" = "yes" ; then
1114 echo "CONFIG_SOLARIS=yes" >> $config_mak
1115 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1116 if test "$needs_libsunmath" = "yes" ; then
1117 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1118 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1121 if test -n "$sparc_cpu"; then
1122 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1123 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1125 if test "$gdbstub" = "yes" ; then
1126 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1127 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1129 if test "$gprof" = "yes" ; then
1130 echo "TARGET_GPROF=yes" >> $config_mak
1131 echo "#define HAVE_GPROF 1" >> $config_h
1133 if test "$static" = "yes" ; then
1134 echo "CONFIG_STATIC=yes" >> $config_mak
1135 echo "#define CONFIG_STATIC 1" >> $config_h
1137 if test $profiler = "yes" ; then
1138 echo "#define CONFIG_PROFILER 1" >> $config_h
1140 if test "$slirp" = "yes" ; then
1141 echo "CONFIG_SLIRP=yes" >> $config_mak
1142 echo "#define CONFIG_SLIRP 1" >> $config_h
1144 if test "$vde" = "yes" ; then
1145 echo "CONFIG_VDE=yes" >> $config_mak
1146 echo "#define CONFIG_VDE 1" >> $config_h
1147 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1149 for card in $audio_card_list; do
1150 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1151 echo "$def=yes" >> $config_mak
1152 echo "#define $def 1" >> $config_h
1153 done
1154 echo "#define AUDIO_DRIVERS \\" >> $config_h
1155 for drv in $audio_drv_list; do
1156 echo " &${drv}_audio_driver, \\" >>$config_h
1157 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1158 echo "$def=yes" >> $config_mak
1159 if test "$drv" = "fmod"; then
1160 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1161 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1162 elif test "$drv" = "oss"; then
1163 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1165 done
1166 echo "" >>$config_h
1167 if test "$mixemu" = "yes" ; then
1168 echo "CONFIG_MIXEMU=yes" >> $config_mak
1169 echo "#define CONFIG_MIXEMU 1" >> $config_h
1171 if test "$vnc_tls" = "yes" ; then
1172 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1173 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1174 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1175 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1177 qemu_version=`head $source_path/VERSION`
1178 echo "VERSION=$qemu_version" >>$config_mak
1179 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1181 echo "SRC_PATH=$source_path" >> $config_mak
1182 if [ "$source_path_used" = "yes" ]; then
1183 echo "VPATH=$source_path" >> $config_mak
1185 echo "TARGET_DIRS=$target_list" >> $config_mak
1186 if [ "$build_docs" = "yes" ] ; then
1187 echo "BUILD_DOCS=yes" >> $config_mak
1189 if test "$static" = "yes"; then
1190 sdl1=$sdl_static
1191 else
1192 sdl1=$sdl
1194 if test "$sdl1" = "yes" ; then
1195 echo "#define CONFIG_SDL 1" >> $config_h
1196 echo "CONFIG_SDL=yes" >> $config_mak
1197 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1198 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1199 else
1200 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1202 if [ "${aa}" = "yes" ] ; then
1203 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1204 else
1205 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1208 if test "$cocoa" = "yes" ; then
1209 echo "#define CONFIG_COCOA 1" >> $config_h
1210 echo "CONFIG_COCOA=yes" >> $config_mak
1212 if test "$curses" = "yes" ; then
1213 echo "#define CONFIG_CURSES 1" >> $config_h
1214 echo "CONFIG_CURSES=yes" >> $config_mak
1215 echo "CURSES_LIBS=-lcurses" >> $config_mak
1217 if test "$brlapi" = "yes" ; then
1218 echo "CONFIG_BRLAPI=yes" >> $config_mak
1219 echo "#define CONFIG_BRLAPI 1" >> $config_h
1220 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1222 if test "$aio" = "yes" ; then
1223 echo "#define CONFIG_AIO 1" >> $config_h
1224 echo "CONFIG_AIO=yes" >> $config_mak
1227 # XXX: suppress that
1228 if [ "$bsd" = "yes" ] ; then
1229 echo "#define O_LARGEFILE 0" >> $config_h
1230 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1231 echo "#define _BSD 1" >> $config_h
1234 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1236 tools=
1237 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1238 tools="qemu-img\$(EXESUF) $tools"
1239 if [ "$linux" = "yes" ] ; then
1240 tools="qemu-nbd\$(EXESUF) $tools"
1243 echo "TOOLS=$tools" >> $config_mak
1245 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1247 for target in $target_list; do
1248 target_dir="$target"
1249 config_mak=$target_dir/config.mak
1250 config_h=$target_dir/config.h
1251 target_cpu=`echo $target | cut -d '-' -f 1`
1252 target_bigendian="no"
1253 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1254 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1255 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1256 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1257 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1258 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1259 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1260 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1261 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1262 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1263 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1264 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1265 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1266 target_softmmu="no"
1267 target_user_only="no"
1268 target_linux_user="no"
1269 target_darwin_user="no"
1270 case "$target" in
1271 ${target_cpu}-softmmu)
1272 target_softmmu="yes"
1274 ${target_cpu}-linux-user)
1275 target_user_only="yes"
1276 target_linux_user="yes"
1278 ${target_cpu}-darwin-user)
1279 target_user_only="yes"
1280 target_darwin_user="yes"
1283 echo "ERROR: Target '$target' not recognised"
1284 exit 1
1286 esac
1288 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1289 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1290 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1291 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1292 echo "Note that this will disable all output from the virtual graphics card"
1293 echo "except through VNC or curses."
1294 exit 1;
1297 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1299 test -f $config_h && mv $config_h ${config_h}~
1301 mkdir -p $target_dir
1302 mkdir -p $target_dir/fpu
1303 mkdir -p $target_dir/tcg
1304 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1305 mkdir -p $target_dir/nwfpe
1309 # don't use ln -sf as not all "ln -sf" over write the file/link
1311 rm -f $target_dir/Makefile
1312 ln -s $source_path/Makefile.target $target_dir/Makefile
1315 echo "# Automatically generated by configure - do not modify" > $config_mak
1316 echo "/* Automatically generated by configure - do not modify */" > $config_h
1319 echo "include ../config-host.mak" >> $config_mak
1320 echo "#include \"../config-host.h\"" >> $config_h
1322 bflt="no"
1323 elfload32="no"
1324 target_nptl="no"
1325 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1326 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1328 case "$target_cpu" in
1329 i386)
1330 echo "TARGET_ARCH=i386" >> $config_mak
1331 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1332 echo "#define TARGET_I386 1" >> $config_h
1333 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1334 then
1335 echo "#define USE_KQEMU 1" >> $config_h
1337 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1338 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1339 then
1340 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1341 else
1342 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1345 x86_64)
1346 echo "TARGET_ARCH=x86_64" >> $config_mak
1347 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1348 echo "#define TARGET_I386 1" >> $config_h
1349 echo "#define TARGET_X86_64 1" >> $config_h
1350 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1351 then
1352 echo "#define USE_KQEMU 1" >> $config_h
1355 alpha)
1356 echo "TARGET_ARCH=alpha" >> $config_mak
1357 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1358 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1359 echo "#define TARGET_ALPHA 1" >> $config_h
1360 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1362 arm|armeb)
1363 echo "TARGET_ARCH=arm" >> $config_mak
1364 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1365 echo "#define TARGET_ARM 1" >> $config_h
1366 bflt="yes"
1367 target_nptl="yes"
1369 cris)
1370 echo "TARGET_ARCH=cris" >> $config_mak
1371 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1372 echo "#define TARGET_CRIS 1" >> $config_h
1374 m68k)
1375 echo "TARGET_ARCH=m68k" >> $config_mak
1376 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1377 echo "#define TARGET_M68K 1" >> $config_h
1378 bflt="yes"
1380 mips|mipsel)
1381 echo "TARGET_ARCH=mips" >> $config_mak
1382 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1383 echo "#define TARGET_MIPS 1" >> $config_h
1384 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1386 mipsn32|mipsn32el)
1387 echo "TARGET_ARCH=mipsn32" >> $config_mak
1388 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1389 echo "#define TARGET_MIPS 1" >> $config_h
1390 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1392 mips64|mips64el)
1393 echo "TARGET_ARCH=mips64" >> $config_mak
1394 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1395 echo "#define TARGET_MIPS 1" >> $config_h
1396 echo "#define TARGET_MIPS64 1" >> $config_h
1397 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1399 ppc)
1400 echo "TARGET_ARCH=ppc" >> $config_mak
1401 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1402 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1403 echo "#define TARGET_PPC 1" >> $config_h
1404 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1406 ppcemb)
1407 echo "TARGET_ARCH=ppcemb" >> $config_mak
1408 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1409 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1410 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1411 echo "#define TARGET_PPC 1" >> $config_h
1412 echo "#define TARGET_PPCEMB 1" >> $config_h
1413 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1415 ppc64)
1416 echo "TARGET_ARCH=ppc64" >> $config_mak
1417 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1418 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1419 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1420 echo "#define TARGET_PPC 1" >> $config_h
1421 echo "#define TARGET_PPC64 1" >> $config_h
1422 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1424 ppc64abi32)
1425 echo "TARGET_ARCH=ppc64" >> $config_mak
1426 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1427 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1428 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1429 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1430 echo "#define TARGET_PPC 1" >> $config_h
1431 echo "#define TARGET_PPC64 1" >> $config_h
1432 echo "#define TARGET_ABI32 1" >> $config_h
1433 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1435 sh4|sh4eb)
1436 echo "TARGET_ARCH=sh4" >> $config_mak
1437 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1438 echo "#define TARGET_SH4 1" >> $config_h
1439 bflt="yes"
1440 target_nptl="yes"
1442 sparc)
1443 echo "TARGET_ARCH=sparc" >> $config_mak
1444 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1445 echo "#define TARGET_SPARC 1" >> $config_h
1447 sparc64)
1448 echo "TARGET_ARCH=sparc64" >> $config_mak
1449 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1450 echo "#define TARGET_SPARC 1" >> $config_h
1451 echo "#define TARGET_SPARC64 1" >> $config_h
1452 elfload32="yes"
1454 sparc32plus)
1455 echo "TARGET_ARCH=sparc64" >> $config_mak
1456 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1457 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1458 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1459 echo "#define TARGET_SPARC 1" >> $config_h
1460 echo "#define TARGET_SPARC64 1" >> $config_h
1461 echo "#define TARGET_ABI32 1" >> $config_h
1464 echo "Unsupported target CPU"
1465 exit 1
1467 esac
1468 if test "$target_bigendian" = "yes" ; then
1469 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1470 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1472 if test "$target_softmmu" = "yes" ; then
1473 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1474 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1476 if test "$target_user_only" = "yes" ; then
1477 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1478 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1480 if test "$target_linux_user" = "yes" ; then
1481 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1482 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1484 if test "$target_darwin_user" = "yes" ; then
1485 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1486 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1489 if test "$target_cpu" = "arm" \
1490 -o "$target_cpu" = "armeb" \
1491 -o "$target_cpu" = "m68k" \
1492 -o "$target_cpu" = "mips" \
1493 -o "$target_cpu" = "mipsel" \
1494 -o "$target_cpu" = "mipsn32" \
1495 -o "$target_cpu" = "mipsn32el" \
1496 -o "$target_cpu" = "mips64" \
1497 -o "$target_cpu" = "mips64el" \
1498 -o "$target_cpu" = "sparc" \
1499 -o "$target_cpu" = "sparc64" \
1500 -o "$target_cpu" = "sparc32plus"; then
1501 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1502 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1504 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1505 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1506 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1508 if test "$target_user_only" = "yes" \
1509 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1510 echo "#define USE_NPTL 1" >> $config_h
1512 # 32 bit ELF loader in addition to native 64 bit loader?
1513 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1514 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1515 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1518 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1520 done # for target in $targets
1522 # build tree in object directory if source path is different from current one
1523 if test "$source_path_used" = "yes" ; then
1524 DIRS="tests tests/cris slirp audio"
1525 FILES="Makefile tests/Makefile"
1526 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1527 FILES="$FILES tests/test-mmap.c"
1528 for dir in $DIRS ; do
1529 mkdir -p $dir
1530 done
1531 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1532 for f in $FILES ; do
1533 rm -f $f
1534 ln -s $source_path/$f $f
1535 done
1538 rm -f $TMPO $TMPC $TMPE $TMPS