Support out-of-the-tree building of tests
[qemu/mini2440.git] / configure
blobdd82e881ceb0ce0a72bf3ba44f4f269b27b03f6e
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 [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
486 AIOLIBS=
487 else
488 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
489 AIOLIBS="-lrt -lpthread"
492 # Check for gcc4, error if pre-gcc4
493 if test "$check_gcc" = "yes" ; then
494 cat > $TMPC <<EOF
495 #if __GNUC__ < 4
496 #error gcc3
497 #endif
498 int main(){return 0;}
500 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
501 echo "WARNING: \"$cc\" looks like gcc 4.x"
502 found_compat_cc="no"
503 if test "$gcc3_search" = "yes" ; then
504 echo "Looking for gcc 3.x"
505 for compat_cc in $gcc3_list ; do
506 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
507 echo "Found \"$compat_cc\""
508 cc="$cross_prefix$compat_cc"
509 found_compat_cc="yes"
510 break
512 done
513 if test "$found_compat_cc" = "no" ; then
514 echo "gcc 3.x not found!"
517 if test "$found_compat_cc" = "no" ; then
518 echo "QEMU is known to have problems when compiled with gcc 4.x"
519 echo "It is recommended that you use gcc 3.x to build QEMU"
520 echo "To use this compiler anyway, configure with --disable-gcc-check"
521 exit 1;
527 # Solaris specific configure tool chain decisions
529 if test "$solaris" = "yes" ; then
531 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
532 # override the check with --disable-gcc-check
534 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
535 solgcc=`which $cc`
536 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
537 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
538 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
539 echo "or get the latest patch from SunSolve for gcc"
540 exit 1
543 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
544 if test -z "$solinst" ; then
545 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
546 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
547 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
548 exit 1
550 if test "$solinst" = "/usr/sbin/install" ; then
551 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
552 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
553 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
554 exit 1
556 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
557 if test -z "$sol_ar" ; then
558 echo "Error: No path includes ar"
559 if test -f /usr/ccs/bin/ar ; then
560 echo "Add /usr/ccs/bin to your path and rerun configure"
562 exit 1
567 if test -z "$target_list" ; then
568 # these targets are portable
569 if [ "$softmmu" = "yes" ] ; then
570 target_list="\
571 i386-softmmu \
572 x86_64-softmmu \
573 arm-softmmu \
574 cris-softmmu \
575 m68k-softmmu \
576 mips-softmmu \
577 mipsel-softmmu \
578 mips64-softmmu \
579 mips64el-softmmu \
580 ppc-softmmu \
581 ppcemb-softmmu \
582 ppc64-softmmu \
583 sh4-softmmu \
584 sh4eb-softmmu \
585 sparc-softmmu \
588 # the following are Linux specific
589 if [ "$linux_user" = "yes" ] ; then
590 target_list="${target_list}\
591 i386-linux-user \
592 x86_64-linux-user \
593 alpha-linux-user \
594 arm-linux-user \
595 armeb-linux-user \
596 cris-linux-user \
597 m68k-linux-user \
598 mips-linux-user \
599 mipsel-linux-user \
600 ppc-linux-user \
601 ppc64-linux-user \
602 ppc64abi32-linux-user \
603 sh4-linux-user \
604 sh4eb-linux-user \
605 sparc-linux-user \
606 sparc64-linux-user \
607 sparc32plus-linux-user \
610 # the following are Darwin specific
611 if [ "$darwin_user" = "yes" ] ; then
612 target_list="$target_list i386-darwin-user ppc-darwin-user"
614 else
615 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
617 if test -z "$target_list" ; then
618 echo "No targets enabled"
619 exit 1
622 if test -z "$cross_prefix" ; then
624 # ---
625 # big/little endian test
626 cat > $TMPC << EOF
627 #include <inttypes.h>
628 int main(int argc, char ** argv){
629 volatile uint32_t i=0x01234567;
630 return (*((uint8_t*)(&i))) == 0x67;
634 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
635 $TMPE && bigendian="yes"
636 else
637 echo big/little test failed
640 else
642 # if cross compiling, cannot launch a program, so make a static guess
643 if test "$cpu" = "armv4b" \
644 -o "$cpu" = "hppa" \
645 -o "$cpu" = "m68k" \
646 -o "$cpu" = "mips" \
647 -o "$cpu" = "mips64" \
648 -o "$cpu" = "powerpc" \
649 -o "$cpu" = "s390" \
650 -o "$cpu" = "sparc" \
651 -o "$cpu" = "sparc64"; then
652 bigendian="yes"
657 # host long bits test
658 hostlongbits="32"
659 if test "$cpu" = "x86_64" \
660 -o "$cpu" = "alpha" \
661 -o "$cpu" = "ia64" \
662 -o "$cpu" = "sparc64"; then
663 hostlongbits="64"
666 # ppc specific hostlongbits selection
667 if test "$cpu" = "powerpc" ; then
668 cat > $TMPC <<EOF
669 int main(void){return sizeof(long);}
672 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null; then
673 $TMPE
674 case $? in
675 4) hostlongbits="32";;
676 8) hostlongbits="64";;
677 *) echo "Couldn't determine bits per long value"; exit 1;;
678 esac
679 else
680 echo hostlongbits test failed
681 exit 1
685 # check gcc options support
686 cat > $TMPC <<EOF
687 int main(void) {
691 # Check host NPTL support
692 cat > $TMPC <<EOF
693 #include <sched.h>
694 #include <linux/futex.h>
695 void foo()
697 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
698 #error bork
699 #endif
703 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
705 else
706 nptl="no"
709 ##########################################
710 # SDL probe
712 sdl_too_old=no
714 if test -z "$sdl" ; then
715 sdl_config="sdl-config"
716 sdl=no
717 sdl_static=no
719 cat > $TMPC << EOF
720 #include <SDL.h>
721 #undef main /* We don't want SDL to override our main() */
722 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
724 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
725 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
726 if test "$_sdlversion" -lt 121 ; then
727 sdl_too_old=yes
728 else
729 if test "$cocoa" = "no" ; then
730 sdl=yes
734 # static link with sdl ?
735 if test "$sdl" = "yes" ; then
736 aa="no"
737 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
738 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
739 if [ "$aa" = "yes" ] ; then
740 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
743 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
744 sdl_static=yes
746 fi # static link
747 fi # sdl compile test
748 else
749 # Make sure to disable cocoa if sdl was set
750 if test "$sdl" = "yes" ; then
751 cocoa="no"
752 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
754 fi # -z $sdl
756 ##########################################
757 # VNC TLS detection
758 if test "$vnc_tls" = "yes" ; then
759 cat > $TMPC <<EOF
760 #include <gnutls/gnutls.h>
761 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
763 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
764 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
765 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
766 $vnc_tls_libs 2> /dev/null ; then
768 else
769 vnc_tls="no"
773 ##########################################
774 # vde libraries probe
775 if test "$vde" = "yes" ; then
776 cat > $TMPC << EOF
777 #include <libvdeplug.h>
778 int main(void)
780 struct vde_open_args a = {0, 0, 0};
781 vde_open("", "", &a);
782 return 0;
785 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
787 else
788 vde="no"
792 ##########################################
793 # Sound support libraries probe
795 audio_drv_probe()
797 drv=$1
798 hdr=$2
799 lib=$3
800 exp=$4
801 cfl=$5
802 cat > $TMPC << EOF
803 #include <$hdr>
804 int main(void) { $exp }
806 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
808 else
809 echo
810 echo "Error: $drv check failed"
811 echo "Make sure to have the $drv libs and headers installed."
812 echo
813 exit 1
817 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
818 for drv in $audio_drv_list; do
819 case $drv in
820 alsa)
821 audio_drv_probe $drv alsa/asoundlib.h -lasound \
822 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
825 fmod)
826 if test -z $fmod_lib || test -z $fmod_inc; then
827 echo
828 echo "Error: You must specify path to FMOD library and headers"
829 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
830 echo
831 exit 1
833 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
836 esd)
837 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
841 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
842 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
845 oss|sdl|core|wav|dsound)
846 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
850 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
851 echo
852 echo "Error: Unknown driver '$drv' selected"
853 echo "Possible drivers are: $audio_possible_drivers"
854 echo
855 exit 1
858 esac
859 done
861 ##########################################
862 # BrlAPI probe
864 if test -z "$brlapi" ; then
865 brlapi=no
866 cat > $TMPC << EOF
867 #include <brlapi.h>
868 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
870 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
871 brlapi=yes
872 fi # brlapi compile test
873 fi # -z $brlapi
875 ##########################################
876 # curses probe
878 if test "$curses" = "yes" ; then
879 curses=no
880 cat > $TMPC << EOF
881 #include <curses.h>
882 int main(void) { return curses_version(); }
884 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
885 curses=yes
887 fi # test "$curses"
889 ##########################################
890 # AIO probe
891 if test "$aio" = "yes" ; then
892 aio=no
893 cat > $TMPC << EOF
894 #include <aio.h>
895 int main(void) { return aio_write(NULL); }
897 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
898 aio=yes
902 # Check if tools are available to build documentation.
903 if [ -x "`which texi2html 2>/dev/null`" ] && \
904 [ -x "`which pod2man 2>/dev/null`" ]; then
905 build_docs="yes"
908 if test "$mingw32" = "yes" ; then
909 if test -z "$prefix" ; then
910 prefix="/c/Program Files/Qemu"
912 mansuffix=""
913 datasuffix=""
914 docsuffix=""
915 binsuffix=""
916 else
917 if test -z "$prefix" ; then
918 prefix="/usr/local"
920 mansuffix="/share/man"
921 datasuffix="/share/qemu"
922 docsuffix="/share/doc/qemu"
923 binsuffix="/bin"
926 echo "Install prefix $prefix"
927 echo "BIOS directory $prefix$datasuffix"
928 echo "binary directory $prefix$binsuffix"
929 if test "$mingw32" = "no" ; then
930 echo "Manual directory $prefix$mansuffix"
931 echo "ELF interp prefix $interp_prefix"
933 echo "Source path $source_path"
934 echo "C compiler $cc"
935 echo "Host C compiler $host_cc"
936 echo "ARCH_CFLAGS $ARCH_CFLAGS"
937 echo "make $make"
938 echo "install $install"
939 echo "host CPU $cpu"
940 echo "host big endian $bigendian"
941 echo "target list $target_list"
942 echo "gprof enabled $gprof"
943 echo "profiler $profiler"
944 echo "static build $static"
945 echo "-Werror enabled $werror"
946 if test "$darwin" = "yes" ; then
947 echo "Cocoa support $cocoa"
949 echo "SDL support $sdl"
950 if test "$sdl" != "no" ; then
951 echo "SDL static link $sdl_static"
953 echo "curses support $curses"
954 echo "mingw32 support $mingw32"
955 echo "Audio drivers $audio_drv_list"
956 echo "Extra audio cards $audio_card_list"
957 echo "Mixer emulation $mixemu"
958 echo "VNC TLS support $vnc_tls"
959 if test "$vnc_tls" = "yes" ; then
960 echo " TLS CFLAGS $vnc_tls_cflags"
961 echo " TLS LIBS $vnc_tls_libs"
963 if test -n "$sparc_cpu"; then
964 echo "Target Sparc Arch $sparc_cpu"
966 echo "kqemu support $kqemu"
967 echo "brlapi support $brlapi"
968 echo "Documentation $build_docs"
969 [ ! -z "$uname_release" ] && \
970 echo "uname -r $uname_release"
971 echo "NPTL support $nptl"
972 echo "vde support $vde"
973 echo "AIO support $aio"
975 if test $sdl_too_old = "yes"; then
976 echo "-> Your SDL version is too old - please upgrade to have SDL support"
978 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
979 echo "The error log from compiling the libSDL test is: "
980 cat /tmp/qemu-$$-sdl-config.log
982 rm -f /tmp/qemu-$$-sdl-config.log
983 #if test "$sdl_static" = "no"; then
984 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
986 config_mak="config-host.mak"
987 config_h="config-host.h"
989 #echo "Creating $config_mak and $config_h"
991 test -f $config_h && mv $config_h ${config_h}~
993 echo "# Automatically generated by configure - do not modify" > $config_mak
994 echo "# Configured with: $0 $@" >> $config_mak
995 echo "/* Automatically generated by configure - do not modify */" > $config_h
997 echo "prefix=$prefix" >> $config_mak
998 echo "bindir=\${prefix}$binsuffix" >> $config_mak
999 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1000 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1001 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1002 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1003 echo "MAKE=$make" >> $config_mak
1004 echo "INSTALL=$install" >> $config_mak
1005 echo "CC=$cc" >> $config_mak
1006 echo "HOST_CC=$host_cc" >> $config_mak
1007 echo "AR=$ar" >> $config_mak
1008 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1009 # XXX: only use CFLAGS and LDFLAGS ?
1010 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1011 # compilation of dyngen tool (useful for win32 build on Linux host)
1012 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1013 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1014 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1015 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1016 echo "CFLAGS=$CFLAGS" >> $config_mak
1017 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1018 echo "EXESUF=$EXESUF" >> $config_mak
1019 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1020 case "$cpu" in
1021 i386)
1022 echo "ARCH=i386" >> $config_mak
1023 echo "#define HOST_I386 1" >> $config_h
1025 x86_64)
1026 echo "ARCH=x86_64" >> $config_mak
1027 echo "#define HOST_X86_64 1" >> $config_h
1029 alpha)
1030 echo "ARCH=alpha" >> $config_mak
1031 echo "#define HOST_ALPHA 1" >> $config_h
1033 armv4b)
1034 echo "ARCH=arm" >> $config_mak
1035 echo "#define HOST_ARM 1" >> $config_h
1037 armv4l)
1038 echo "ARCH=arm" >> $config_mak
1039 echo "#define HOST_ARM 1" >> $config_h
1041 cris)
1042 echo "ARCH=cris" >> $config_mak
1043 echo "#define HOST_CRIS 1" >> $config_h
1045 hppa)
1046 echo "ARCH=hppa" >> $config_mak
1047 echo "#define HOST_HPPA 1" >> $config_h
1049 ia64)
1050 echo "ARCH=ia64" >> $config_mak
1051 echo "#define HOST_IA64 1" >> $config_h
1053 m68k)
1054 echo "ARCH=m68k" >> $config_mak
1055 echo "#define HOST_M68K 1" >> $config_h
1057 mips)
1058 echo "ARCH=mips" >> $config_mak
1059 echo "#define HOST_MIPS 1" >> $config_h
1061 mips64)
1062 echo "ARCH=mips64" >> $config_mak
1063 echo "#define HOST_MIPS64 1" >> $config_h
1065 powerpc)
1066 if test "$hostlongbits" = "32"; then
1067 echo "ARCH=ppc" >> $config_mak
1068 echo "#define HOST_PPC 1" >> $config_h
1069 else
1070 echo "ARCH=ppc64" >> $config_mak
1071 echo "#define HOST_PPC64 1" >> $config_h
1074 s390)
1075 echo "ARCH=s390" >> $config_mak
1076 echo "#define HOST_S390 1" >> $config_h
1078 sparc)
1079 echo "ARCH=sparc" >> $config_mak
1080 echo "#define HOST_SPARC 1" >> $config_h
1082 sparc64)
1083 echo "ARCH=sparc64" >> $config_mak
1084 echo "#define HOST_SPARC64 1" >> $config_h
1087 echo "Unsupported CPU = $cpu"
1088 exit 1
1090 esac
1091 if test "$bigendian" = "yes" ; then
1092 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1093 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1095 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1096 if test "$mingw32" = "yes" ; then
1097 echo "CONFIG_WIN32=yes" >> $config_mak
1098 echo "#define CONFIG_WIN32 1" >> $config_h
1099 else
1100 cat > $TMPC << EOF
1101 #include <byteswap.h>
1102 int main(void) { return bswap_32(0); }
1104 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1105 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1109 if [ "$openbsd" = "yes" ] ; then
1110 echo "#define ENOTSUP 4096" >> $config_h
1113 if test "$darwin" = "yes" ; then
1114 echo "CONFIG_DARWIN=yes" >> $config_mak
1115 echo "#define CONFIG_DARWIN 1" >> $config_h
1117 if test "$solaris" = "yes" ; then
1118 echo "CONFIG_SOLARIS=yes" >> $config_mak
1119 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1120 if test "$needs_libsunmath" = "yes" ; then
1121 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1122 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1125 if test -n "$sparc_cpu"; then
1126 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1127 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1129 if test "$gdbstub" = "yes" ; then
1130 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1131 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1133 if test "$gprof" = "yes" ; then
1134 echo "TARGET_GPROF=yes" >> $config_mak
1135 echo "#define HAVE_GPROF 1" >> $config_h
1137 if test "$static" = "yes" ; then
1138 echo "CONFIG_STATIC=yes" >> $config_mak
1139 echo "#define CONFIG_STATIC 1" >> $config_h
1141 if test $profiler = "yes" ; then
1142 echo "#define CONFIG_PROFILER 1" >> $config_h
1144 if test "$slirp" = "yes" ; then
1145 echo "CONFIG_SLIRP=yes" >> $config_mak
1146 echo "#define CONFIG_SLIRP 1" >> $config_h
1148 if test "$vde" = "yes" ; then
1149 echo "CONFIG_VDE=yes" >> $config_mak
1150 echo "#define CONFIG_VDE 1" >> $config_h
1151 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1153 for card in $audio_card_list; do
1154 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1155 echo "$def=yes" >> $config_mak
1156 echo "#define $def 1" >> $config_h
1157 done
1158 echo "#define AUDIO_DRIVERS \\" >> $config_h
1159 for drv in $audio_drv_list; do
1160 echo " &${drv}_audio_driver, \\" >>$config_h
1161 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1162 echo "$def=yes" >> $config_mak
1163 if test "$drv" = "fmod"; then
1164 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1165 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1166 elif test "$drv" = "oss"; then
1167 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1169 done
1170 echo "" >>$config_h
1171 if test "$mixemu" = "yes" ; then
1172 echo "CONFIG_MIXEMU=yes" >> $config_mak
1173 echo "#define CONFIG_MIXEMU 1" >> $config_h
1175 if test "$vnc_tls" = "yes" ; then
1176 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1177 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1178 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1179 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1181 qemu_version=`head $source_path/VERSION`
1182 echo "VERSION=$qemu_version" >>$config_mak
1183 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1185 echo "SRC_PATH=$source_path" >> $config_mak
1186 if [ "$source_path_used" = "yes" ]; then
1187 echo "VPATH=$source_path" >> $config_mak
1189 echo "TARGET_DIRS=$target_list" >> $config_mak
1190 if [ "$build_docs" = "yes" ] ; then
1191 echo "BUILD_DOCS=yes" >> $config_mak
1193 if test "$static" = "yes"; then
1194 sdl1=$sdl_static
1195 else
1196 sdl1=$sdl
1198 if test "$sdl1" = "yes" ; then
1199 echo "#define CONFIG_SDL 1" >> $config_h
1200 echo "CONFIG_SDL=yes" >> $config_mak
1201 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1202 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1203 else
1204 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1206 if [ "${aa}" = "yes" ] ; then
1207 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1208 else
1209 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1212 if test "$cocoa" = "yes" ; then
1213 echo "#define CONFIG_COCOA 1" >> $config_h
1214 echo "CONFIG_COCOA=yes" >> $config_mak
1216 if test "$curses" = "yes" ; then
1217 echo "#define CONFIG_CURSES 1" >> $config_h
1218 echo "CONFIG_CURSES=yes" >> $config_mak
1219 echo "CURSES_LIBS=-lcurses" >> $config_mak
1221 if test "$brlapi" = "yes" ; then
1222 echo "CONFIG_BRLAPI=yes" >> $config_mak
1223 echo "#define CONFIG_BRLAPI 1" >> $config_h
1224 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1226 if test "$aio" = "yes" ; then
1227 echo "#define CONFIG_AIO 1" >> $config_h
1228 echo "CONFIG_AIO=yes" >> $config_mak
1231 # XXX: suppress that
1232 if [ "$bsd" = "yes" ] ; then
1233 echo "#define O_LARGEFILE 0" >> $config_h
1234 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1235 echo "#define _BSD 1" >> $config_h
1238 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1240 tools=
1241 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1242 tools="qemu-img\$(EXESUF) $tools"
1243 if [ "$linux" = "yes" ] ; then
1244 tools="qemu-nbd\$(EXESUF) $tools"
1247 echo "TOOLS=$tools" >> $config_mak
1249 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1251 for target in $target_list; do
1252 target_dir="$target"
1253 config_mak=$target_dir/config.mak
1254 config_h=$target_dir/config.h
1255 target_cpu=`echo $target | cut -d '-' -f 1`
1256 target_bigendian="no"
1257 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1258 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1259 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1260 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1261 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1262 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1263 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1264 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1265 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1266 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1267 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1268 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1269 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1270 target_softmmu="no"
1271 target_user_only="no"
1272 target_linux_user="no"
1273 target_darwin_user="no"
1274 case "$target" in
1275 ${target_cpu}-softmmu)
1276 target_softmmu="yes"
1278 ${target_cpu}-linux-user)
1279 target_user_only="yes"
1280 target_linux_user="yes"
1282 ${target_cpu}-darwin-user)
1283 target_user_only="yes"
1284 target_darwin_user="yes"
1287 echo "ERROR: Target '$target' not recognised"
1288 exit 1
1290 esac
1292 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1293 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1294 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1295 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1296 echo "Note that this will disable all output from the virtual graphics card"
1297 echo "except through VNC or curses."
1298 exit 1;
1301 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1303 test -f $config_h && mv $config_h ${config_h}~
1305 mkdir -p $target_dir
1306 mkdir -p $target_dir/fpu
1307 mkdir -p $target_dir/tcg
1308 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1309 mkdir -p $target_dir/nwfpe
1313 # don't use ln -sf as not all "ln -sf" over write the file/link
1315 rm -f $target_dir/Makefile
1316 ln -s $source_path/Makefile.target $target_dir/Makefile
1319 echo "# Automatically generated by configure - do not modify" > $config_mak
1320 echo "/* Automatically generated by configure - do not modify */" > $config_h
1323 echo "include ../config-host.mak" >> $config_mak
1324 echo "#include \"../config-host.h\"" >> $config_h
1326 bflt="no"
1327 elfload32="no"
1328 target_nptl="no"
1329 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1330 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1332 case "$target_cpu" in
1333 i386)
1334 echo "TARGET_ARCH=i386" >> $config_mak
1335 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1336 echo "#define TARGET_I386 1" >> $config_h
1337 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1338 then
1339 echo "#define USE_KQEMU 1" >> $config_h
1341 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1342 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1343 then
1344 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1345 else
1346 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1349 x86_64)
1350 echo "TARGET_ARCH=x86_64" >> $config_mak
1351 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1352 echo "#define TARGET_I386 1" >> $config_h
1353 echo "#define TARGET_X86_64 1" >> $config_h
1354 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1355 then
1356 echo "#define USE_KQEMU 1" >> $config_h
1359 alpha)
1360 echo "TARGET_ARCH=alpha" >> $config_mak
1361 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1362 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1363 echo "#define TARGET_ALPHA 1" >> $config_h
1364 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1366 arm|armeb)
1367 echo "TARGET_ARCH=arm" >> $config_mak
1368 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1369 echo "#define TARGET_ARM 1" >> $config_h
1370 bflt="yes"
1371 target_nptl="yes"
1373 cris)
1374 echo "TARGET_ARCH=cris" >> $config_mak
1375 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1376 echo "#define TARGET_CRIS 1" >> $config_h
1378 m68k)
1379 echo "TARGET_ARCH=m68k" >> $config_mak
1380 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1381 echo "#define TARGET_M68K 1" >> $config_h
1382 bflt="yes"
1384 mips|mipsel)
1385 echo "TARGET_ARCH=mips" >> $config_mak
1386 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1387 echo "#define TARGET_MIPS 1" >> $config_h
1388 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1390 mipsn32|mipsn32el)
1391 echo "TARGET_ARCH=mipsn32" >> $config_mak
1392 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1393 echo "#define TARGET_MIPS 1" >> $config_h
1394 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1396 mips64|mips64el)
1397 echo "TARGET_ARCH=mips64" >> $config_mak
1398 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1399 echo "#define TARGET_MIPS 1" >> $config_h
1400 echo "#define TARGET_MIPS64 1" >> $config_h
1401 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1403 ppc)
1404 echo "TARGET_ARCH=ppc" >> $config_mak
1405 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1406 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1407 echo "#define TARGET_PPC 1" >> $config_h
1408 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1410 ppcemb)
1411 echo "TARGET_ARCH=ppcemb" >> $config_mak
1412 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1413 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1414 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1415 echo "#define TARGET_PPC 1" >> $config_h
1416 echo "#define TARGET_PPCEMB 1" >> $config_h
1417 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1419 ppc64)
1420 echo "TARGET_ARCH=ppc64" >> $config_mak
1421 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1422 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1423 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1424 echo "#define TARGET_PPC 1" >> $config_h
1425 echo "#define TARGET_PPC64 1" >> $config_h
1426 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1428 ppc64abi32)
1429 echo "TARGET_ARCH=ppc64" >> $config_mak
1430 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1431 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1432 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1433 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1434 echo "#define TARGET_PPC 1" >> $config_h
1435 echo "#define TARGET_PPC64 1" >> $config_h
1436 echo "#define TARGET_ABI32 1" >> $config_h
1437 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1439 sh4|sh4eb)
1440 echo "TARGET_ARCH=sh4" >> $config_mak
1441 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1442 echo "#define TARGET_SH4 1" >> $config_h
1443 bflt="yes"
1444 target_nptl="yes"
1446 sparc)
1447 echo "TARGET_ARCH=sparc" >> $config_mak
1448 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1449 echo "#define TARGET_SPARC 1" >> $config_h
1451 sparc64)
1452 echo "TARGET_ARCH=sparc64" >> $config_mak
1453 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1454 echo "#define TARGET_SPARC 1" >> $config_h
1455 echo "#define TARGET_SPARC64 1" >> $config_h
1456 elfload32="yes"
1458 sparc32plus)
1459 echo "TARGET_ARCH=sparc64" >> $config_mak
1460 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1461 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1462 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1463 echo "#define TARGET_SPARC 1" >> $config_h
1464 echo "#define TARGET_SPARC64 1" >> $config_h
1465 echo "#define TARGET_ABI32 1" >> $config_h
1468 echo "Unsupported target CPU"
1469 exit 1
1471 esac
1472 if test "$target_bigendian" = "yes" ; then
1473 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1474 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1476 if test "$target_softmmu" = "yes" ; then
1477 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1478 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1480 if test "$target_user_only" = "yes" ; then
1481 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1482 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1484 if test "$target_linux_user" = "yes" ; then
1485 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1486 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1488 if test "$target_darwin_user" = "yes" ; then
1489 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1490 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1493 if test "$target_cpu" = "arm" \
1494 -o "$target_cpu" = "armeb" \
1495 -o "$target_cpu" = "m68k" \
1496 -o "$target_cpu" = "mips" \
1497 -o "$target_cpu" = "mipsel" \
1498 -o "$target_cpu" = "mipsn32" \
1499 -o "$target_cpu" = "mipsn32el" \
1500 -o "$target_cpu" = "mips64" \
1501 -o "$target_cpu" = "mips64el" \
1502 -o "$target_cpu" = "sparc" \
1503 -o "$target_cpu" = "sparc64" \
1504 -o "$target_cpu" = "sparc32plus"; then
1505 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1506 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1508 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1509 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1510 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1512 if test "$target_user_only" = "yes" \
1513 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1514 echo "#define USE_NPTL 1" >> $config_h
1516 # 32 bit ELF loader in addition to native 64 bit loader?
1517 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1518 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1519 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1522 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1524 done # for target in $targets
1526 # build tree in object directory if source path is different from current one
1527 if test "$source_path_used" = "yes" ; then
1528 DIRS="tests tests/cris slirp audio"
1529 FILES="Makefile tests/Makefile"
1530 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1531 FILES="$FILES tests/test-mmap.c"
1532 for dir in $DIRS ; do
1533 mkdir -p $dir
1534 done
1535 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1536 for f in $FILES ; do
1537 rm -f $f
1538 ln -s $source_path/$f $f
1539 done
1542 rm -f $TMPO $TMPC $TMPE $TMPS