kvm: external module: DEBUGCTLMSR compatibility
[qemu-kvm/fedora.git] / configure
blobe2d027086ffa69983bc1e07f4e14bee344d22082
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="no"
93 fmod_lib=""
94 fmod_inc=""
95 vnc_tls="yes"
96 bsd="no"
97 linux="no"
98 kqemu="no"
99 kvm="no"
100 kvm_cap_pit="no"
101 profiler="no"
102 kernel_path=""
103 cocoa="no"
104 check_gfx="yes"
105 check_gcc="yes"
106 softmmu="yes"
107 linux_user="no"
108 darwin_user="no"
109 build_docs="no"
110 uname_release=""
111 curses="yes"
112 nptl="yes"
113 mixemu="no"
114 cpu_emulation="yes"
115 device_tree_support=""
117 # OS specific
118 targetos=`uname -s`
119 case $targetos in
120 CYGWIN*)
121 mingw32="yes"
122 OS_CFLAGS="-mno-cygwin"
123 if [ "$cpu" = "i386" ] ; then
124 kqemu="yes"
126 audio_possible_drivers="sdl"
128 MINGW32*)
129 mingw32="yes"
130 if [ "$cpu" = "i386" ] ; then
131 kqemu="yes"
133 audio_possible_drivers="dsound sdl fmod"
135 GNU/kFreeBSD)
136 audio_drv_list="oss"
137 audio_possible_drivers="oss sdl esd"
138 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
139 kqemu="yes"
142 FreeBSD)
143 bsd="yes"
144 audio_drv_list="oss"
145 audio_possible_drivers="oss sdl esd"
146 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
147 kqemu="yes"
148 kvm="yes"
151 NetBSD)
152 bsd="yes"
153 audio_drv_list="oss"
154 audio_possible_drivers="oss sdl esd"
156 OpenBSD)
157 bsd="yes"
158 audio_drv_list="oss"
159 audio_possible_drivers="oss sdl esd"
161 Darwin)
162 bsd="yes"
163 darwin="yes"
164 darwin_user="yes"
165 cocoa="yes"
166 audio_drv_list="coreaudio"
167 audio_possible_drivers="coreaudio sdl fmod"
168 OS_CFLAGS="-mdynamic-no-pic"
169 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
171 SunOS)
172 solaris="yes"
173 make="gmake"
174 install="ginstall"
175 needs_libsunmath="no"
176 solarisrev=`uname -r | cut -f2 -d.`
177 # have to select again, because `uname -m` returns i86pc
178 # even on an x86_64 box.
179 solariscpu=`isainfo -k`
180 if test "${solariscpu}" = "amd64" ; then
181 cpu="x86_64"
183 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
184 if test "$solarisrev" -le 9 ; then
185 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
186 needs_libsunmath="yes"
187 else
188 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
189 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
190 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
191 echo "Studio 11 can be downloaded from www.sun.com."
192 exit 1
195 if test "$solarisrev" -ge 9 ; then
196 kqemu="yes"
199 if test -f /usr/include/sys/soundcard.h ; then
200 audio_drv_list="oss"
202 audio_possible_drivers="oss sdl"
205 audio_drv_list="oss"
206 audio_possible_drivers="oss alsa sdl esd pa"
207 linux="yes"
208 linux_user="yes"
209 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
210 kqemu="yes"
211 audio_possible_drivers="$audio_possible_drivers fmod"
212 kvm="yes"
214 if [ "$cpu" = "ia64" ] ; then
215 kvm="yes"
216 cpu_emulation="no"
217 gdbstub="no"
218 slirp="no"
220 if [ "$cpu" = "powerpc" ]; then
221 kvm="yes"
224 esac
226 if [ "$bsd" = "yes" ] ; then
227 if [ "$darwin" != "yes" ] ; then
228 make="gmake"
232 # find source path
233 source_path=`dirname "$0"`
234 source_path_used="no"
235 workdir=`pwd`
236 if [ -z "$source_path" ]; then
237 source_path=$workdir
238 else
239 source_path=`cd "$source_path"; pwd`
241 [ -f "$workdir/vl.c" ] || source_path_used="yes"
243 werror="no"
244 # generate compile errors on warnings for development builds
245 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
246 #werror="yes";
249 for opt do
250 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
251 case "$opt" in
252 --help|-h) show_help=yes
254 --prefix=*) prefix="$optarg"
256 --interp-prefix=*) interp_prefix="$optarg"
258 --source-path=*) source_path="$optarg"
259 source_path_used="yes"
261 --cross-prefix=*) cross_prefix="$optarg"
263 --cc=*) cc="$optarg"
264 gcc3_search="no"
266 --host-cc=*) host_cc="$optarg"
268 --make=*) make="$optarg"
270 --install=*) install="$optarg"
272 --extra-cflags=*) CFLAGS="$optarg"
274 --extra-ldflags=*) LDFLAGS="$optarg"
276 --cpu=*) cpu="$optarg"
278 --target-list=*) target_list="$optarg"
280 --enable-gprof) gprof="yes"
282 --static) static="yes"
284 --disable-sdl) sdl="no"
286 --fmod-lib=*) fmod_lib="$optarg"
288 --fmod-inc=*) fmod_inc="$optarg"
290 --audio-card-list=*) audio_card_list="$optarg"
292 --audio-drv-list=*) audio_drv_list="$optarg"
294 --disable-vnc-tls) vnc_tls="no"
296 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
298 --disable-slirp) slirp="no"
300 --enable-vde) vde="yes"
302 --disable-kqemu) kqemu="no"
304 --disable-kvm) kvm="no"
306 --disable-brlapi) brlapi="no"
308 --enable-profiler) profiler="yes"
310 --kernel-path=*) kernel_path="$optarg"
312 --enable-cocoa)
313 cocoa="yes" ;
314 sdl="no" ;
315 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
317 --disable-gfx-check) check_gfx="no"
319 --disable-gcc-check) check_gcc="no"
321 --disable-system) softmmu="no"
323 --enable-system) softmmu="yes"
325 --disable-linux-user) linux_user="no"
327 --enable-linux-user) linux_user="yes"
329 --disable-darwin-user) darwin_user="no"
331 --enable-darwin-user) darwin_user="yes"
333 --enable-uname-release=*) uname_release="$optarg"
335 --sparc_cpu=*)
336 sparc_cpu="$optarg"
337 case $sparc_cpu in
338 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
339 target_cpu="sparc"; cpu="sparc" ;;
340 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
341 target_cpu="sparc"; cpu="sparc" ;;
342 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
343 target_cpu="sparc64"; cpu="sparc64" ;;
344 *) echo "undefined SPARC architecture. Exiting";exit 1;;
345 esac
347 --enable-werror) werror="yes"
349 --disable-werror) werror="no"
351 --disable-curses) curses="no"
353 --disable-nptl) nptl="no"
355 --enable-mixemu) mixemu="yes"
357 --disable-cpu-emulation) cpu_emulation="no"
359 --disable-libfdt) device_tree_support="no"
361 *) echo "ERROR: unknown option $opt"; exit 1
363 esac
364 done
366 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
367 AIOLIBS=
368 else
369 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
370 AIOLIBS="-lrt -lpthread"
373 # default flags for all hosts
374 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
375 LDFLAGS="$LDFLAGS -g"
376 if test "$werror" = "yes" ; then
377 CFLAGS="$CFLAGS -Werror"
381 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
382 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
384 case "$cpu" in
385 sparc) if test -z "$sparc_cpu" ; then
386 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
387 ARCH_LDFLAGS="-m32"
388 else
389 ARCH_CFLAGS="${SP_CFLAGS}"
390 ARCH_LDFLAGS="${SP_LDFLAGS}"
393 sparc64) if test -z "$sparc_cpu" ; then
394 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
395 ARCH_LDFLAGS="-m64"
396 else
397 ARCH_CFLAGS="${SP_CFLAGS}"
398 ARCH_LDFLAGS="${SP_LDFLAGS}"
401 s390)
402 ARCH_CFLAGS="-march=z900"
404 i386)
405 ARCH_CFLAGS="-m32"
406 ARCH_LDFLAGS="-m32"
408 x86_64)
409 ARCH_CFLAGS="-m64"
410 ARCH_LDFLAGS="-m64"
412 esac
414 if test x"$show_help" = x"yes" ; then
415 cat << EOF
417 Usage: configure [options]
418 Options: [defaults in brackets after descriptions]
421 echo "Standard options:"
422 echo " --help print this message"
423 echo " --prefix=PREFIX install in PREFIX [$prefix]"
424 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
425 echo " use %M for cpu name [$interp_prefix]"
426 echo " --target-list=LIST set target list [$target_list]"
427 echo ""
428 echo "kqemu kernel acceleration support:"
429 echo " --disable-kqemu disable kqemu support"
430 echo " --kernel-path=PATH set the kernel path (configure probes it)"
431 echo " --disable-kvm disable kernel virtual machine support"
432 echo ""
433 echo "Advanced options (experts only):"
434 echo " --source-path=PATH path of source code [$source_path]"
435 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
436 echo " --cc=CC use C compiler CC [$cc]"
437 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
438 echo " --make=MAKE use specified make [$make]"
439 echo " --install=INSTALL use specified install [$install]"
440 echo " --static enable static build [$static]"
441 echo " --disable-werror disable compilation abort on warning"
442 echo " --disable-sdl disable SDL"
443 echo " --enable-cocoa enable COCOA (Mac OS X only)"
444 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
445 echo " --audio-drv-list=LIST set audio drivers list:"
446 echo " Available drivers: $audio_possible_drivers"
447 echo " --audio-card-list=LIST set list of additional emulated audio cards"
448 echo " Available cards: ac97 adlib cs4231a gus"
449 echo " --enable-mixemu enable mixer emulation"
450 echo " --disable-brlapi disable BrlAPI"
451 echo " --disable-vnc-tls disable TLS encryption for VNC server"
452 echo " --disable-curses disable curses output"
453 echo " --disable-nptl disable usermode NPTL support"
454 echo " --enable-system enable all system emulation targets"
455 echo " --disable-system disable all system emulation targets"
456 echo " --enable-linux-user enable all linux usermode emulation targets"
457 echo " --disable-linux-user disable all linux usermode emulation targets"
458 echo " --enable-darwin-user enable all darwin usermode emulation targets"
459 echo " --disable-darwin-user disable all darwin usermode emulation targets"
460 echo " --fmod-lib path to FMOD library"
461 echo " --fmod-inc path to FMOD includes"
462 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
463 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
464 echo " --enable-vde enable support for vde network [$vde]"
465 echo " --disable-cpu-emulation disables use of qemu cpu emulation code"
466 echo " --disable-libfdt disables use of libfdt support for device tree"
467 echo ""
468 echo "NOTE: The object files are built at the place where configure is launched"
469 exit 1
472 cc="${cross_prefix}${cc}"
473 ar="${cross_prefix}${ar}"
474 strip="${cross_prefix}${strip}"
476 # check that the C compiler works.
477 cat > $TMPC <<EOF
478 int main(void) {}
481 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
482 : C compiler works ok
483 else
484 echo "ERROR: \"$cc\" either does not exist or does not work"
485 exit 1
488 if test "$mingw32" = "yes" ; then
489 linux="no"
490 EXESUF=".exe"
491 oss="no"
494 # Check for gcc4, error if pre-gcc4
495 if test "$check_gcc" = "yes" ; then
496 cat > $TMPC <<EOF
497 #if __GNUC__ < 4
498 #error gcc3
499 #endif
500 int main(){return 0;}
502 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
503 echo "WARNING: \"$cc\" looks like gcc 4.x"
504 found_compat_cc="no"
505 if test "$gcc3_search" = "yes" ; then
506 echo "Looking for gcc 3.x"
507 for compat_cc in $gcc3_list ; do
508 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
509 echo "Found \"$compat_cc\""
510 cc="$cross_prefix$compat_cc"
511 found_compat_cc="yes"
512 break
514 done
515 if test "$found_compat_cc" = "no" ; then
516 echo "gcc 3.x not found!"
519 if test "$found_compat_cc" = "no" ; then
520 echo "QEMU is known to have problems when compiled with gcc 4.x"
521 echo "It is recommended that you use gcc 3.x to build QEMU"
522 echo "To use this compiler anyway, configure with --disable-gcc-check"
523 exit 1;
529 # Solaris specific configure tool chain decisions
531 if test "$solaris" = "yes" ; then
533 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
534 # override the check with --disable-gcc-check
536 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
537 solgcc=`which $cc`
538 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
539 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
540 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
541 echo "or get the latest patch from SunSolve for gcc"
542 exit 1
545 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
546 if test -z "$solinst" ; then
547 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
548 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
549 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
550 exit 1
552 if test "$solinst" = "/usr/sbin/install" ; then
553 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
554 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
555 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
556 exit 1
558 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
559 if test -z "$sol_ar" ; then
560 echo "Error: No path includes ar"
561 if test -f /usr/ccs/bin/ar ; then
562 echo "Add /usr/ccs/bin to your path and rerun configure"
564 exit 1
569 if test -z "$target_list" ; then
570 # these targets are portable
571 if [ "$softmmu" = "yes" ] ; then
572 target_list="\
573 i386-softmmu \
574 x86_64-softmmu \
575 arm-softmmu \
576 cris-softmmu \
577 m68k-softmmu \
578 mips-softmmu \
579 mipsel-softmmu \
580 mips64-softmmu \
581 mips64el-softmmu \
582 ppc-softmmu \
583 ppcemb-softmmu \
584 ppc64-softmmu \
585 sh4-softmmu \
586 sh4eb-softmmu \
587 sparc-softmmu \
590 # the following are Linux specific
591 if [ "$linux_user" = "yes" ] ; then
592 target_list="${target_list}\
593 i386-linux-user \
594 x86_64-linux-user \
595 alpha-linux-user \
596 arm-linux-user \
597 armeb-linux-user \
598 cris-linux-user \
599 m68k-linux-user \
600 mips-linux-user \
601 mipsel-linux-user \
602 ppc-linux-user \
603 ppc64-linux-user \
604 ppc64abi32-linux-user \
605 sh4-linux-user \
606 sh4eb-linux-user \
607 sparc-linux-user \
608 sparc64-linux-user \
609 sparc32plus-linux-user \
612 # the following are Darwin specific
613 if [ "$darwin_user" = "yes" ] ; then
614 target_list="$target_list i386-darwin-user ppc-darwin-user"
616 else
617 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
619 if test -z "$target_list" ; then
620 echo "No targets enabled"
621 exit 1
624 if test -z "$cross_prefix" ; then
626 # ---
627 # big/little endian test
628 cat > $TMPC << EOF
629 #include <inttypes.h>
630 int main(int argc, char ** argv){
631 volatile uint32_t i=0x01234567;
632 return (*((uint8_t*)(&i))) == 0x67;
636 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
637 $TMPE && bigendian="yes"
638 else
639 echo big/little test failed
642 else
644 # if cross compiling, cannot launch a program, so make a static guess
645 if test "$cpu" = "armv4b" \
646 -o "$cpu" = "hppa" \
647 -o "$cpu" = "m68k" \
648 -o "$cpu" = "mips" \
649 -o "$cpu" = "mips64" \
650 -o "$cpu" = "powerpc" \
651 -o "$cpu" = "s390" \
652 -o "$cpu" = "sparc" \
653 -o "$cpu" = "sparc64"; then
654 bigendian="yes"
659 # host long bits test
660 hostlongbits="32"
661 if test "$cpu" = "x86_64" \
662 -o "$cpu" = "alpha" \
663 -o "$cpu" = "ia64" \
664 -o "$cpu" = "sparc64"; then
665 hostlongbits="64"
668 # check gcc options support
669 cat > $TMPC <<EOF
670 int main(void) {
674 # Check host NPTL support
675 cat > $TMPC <<EOF
676 #include <sched.h>
677 #include <linux/futex.h>
678 void foo()
680 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
681 #error bork
682 #endif
686 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
688 else
689 nptl="no"
692 ##########################################
693 # KVM probe
695 if test "$kvm" = "yes" ; then
696 cat > $TMPC <<EOF
697 #include <libkvm.h>
698 #ifndef KVM_CAP_PIT
699 #error "kvm no pit capability"
700 #endif
701 int main(void) { return 0; }
703 if $cc $ARCH_CFLAGS $CFLAGS -I"$kernel_path"/include -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
704 kvm_cap_pit="yes"
708 ##########################################
709 # SDL probe
711 sdl_too_old=no
713 if test -z "$sdl" ; then
714 sdl_config="sdl-config"
715 sdl=no
716 sdl_static=no
718 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
719 # win32 cross compilation case
720 sdl_config="i386-mingw32msvc-sdl-config"
721 sdl=yes
722 else
723 # normal SDL probe
724 cat > $TMPC << EOF
725 #include <SDL.h>
726 #undef main /* We don't want SDL to override our main() */
727 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
729 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
730 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
731 if test "$_sdlversion" -lt 121 ; then
732 sdl_too_old=yes
733 else
734 if test "$cocoa" = "no" ; then
735 sdl=yes
739 # static link with sdl ?
740 if test "$sdl" = "yes" ; then
741 aa="no"
742 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
743 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
744 if [ "$aa" = "yes" ] ; then
745 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
748 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
749 sdl_static=yes
751 fi # static link
752 fi # sdl compile test
753 fi # cross compilation
754 else
755 # Make sure to disable cocoa if sdl was set
756 if test "$sdl" = "yes" ; then
757 cocoa="no"
758 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
760 fi # -z $sdl
762 ##########################################
763 # VNC TLS detection
764 if test "$vnc_tls" = "yes" ; then
765 `pkg-config gnutls` || vnc_tls="no"
767 if test "$vnc_tls" = "yes" ; then
768 vnc_tls_cflags=`pkg-config --cflags gnutls`
769 vnc_tls_libs=`pkg-config --libs gnutls`
772 ##########################################
773 # vde libraries probe
774 if test "$vde" = "yes" ; then
775 cat > $TMPC << EOF
776 #include <libvdeplug.h>
777 int main(void) { struct vde_open_args a = {0, 0, 0} ; return 0;}
779 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
781 else
782 echo
783 echo "Error: VDE check failed"
784 echo "Make sure to have the VDE libs and headers installed."
785 echo
786 exit 1
790 ##########################################
791 # Sound support libraries probe
793 audio_drv_probe()
795 drv=$1
796 hdr=$2
797 lib=$3
798 exp=$4
799 cfl=$5
800 cat > $TMPC << EOF
801 #include <$hdr>
802 int main(void) { $exp }
804 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
806 else
807 echo
808 echo "Error: $drv check failed"
809 echo "Make sure to have the $drv libs and headers installed."
810 echo
811 exit 1
815 for drv in $audio_drv_list; do
816 case $drv in
817 alsa)
818 audio_drv_probe $drv alsa/asoundlib.h -lasound \
819 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
822 fmod)
823 if test -z $fmod_lib || test -z $fmod_inc; then
824 echo
825 echo "Error: You must specify path to FMOD library and headers"
826 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
827 echo
828 exit 1
830 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
833 esd)
834 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
838 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
839 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
843 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
844 echo
845 echo "Error: Unknown driver '$drv' selected"
846 echo "Possible drivers are: $audio_possible_drivers"
847 echo
848 exit 1
852 esac
853 done
855 ##########################################
856 # BrlAPI probe
858 if test -z "$brlapi" ; then
859 brlapi=no
860 cat > $TMPC << EOF
861 #include <brlapi.h>
862 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
864 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
865 brlapi=yes
866 fi # brlapi compile test
867 fi # -z $brlapi
869 ##########################################
870 # curses probe
872 if test "$curses" = "yes" ; then
873 curses=no
874 cat > $TMPC << EOF
875 #include <curses.h>
876 int main(void) { return curses_version(); }
878 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
879 curses=yes
881 fi # test "$curses"
883 # Check if tools are available to build documentation.
884 if [ -x "`which texi2html 2>/dev/null`" ] && \
885 [ -x "`which pod2man 2>/dev/null`" ]; then
886 build_docs="yes"
889 if test "$mingw32" = "yes" ; then
890 if test -z "$prefix" ; then
891 prefix="/c/Program Files/Qemu"
893 mansuffix=""
894 datasuffix=""
895 docsuffix=""
896 binsuffix=""
897 else
898 if test -z "$prefix" ; then
899 prefix="/usr/local"
901 mansuffix="/share/man"
902 datasuffix="/share/qemu"
903 docsuffix="/share/doc/qemu"
904 binsuffix="/bin"
907 ######################################
908 # libfdt probe
910 if test -z "$device_tree_support" -a \
911 "$cpu" = "powerpc"; then
912 device_tree_support="no"
913 cat > $TMPC << EOF
914 #include <libfdt.h>
915 /* XXX uncomment later when libfdt is built before this test */
916 //int main(void) { void *fdt; return fdt_create(fdt, 1024); }
917 int main (void) {return 0;}
919 # XXX for now do not try to link to libfdt and just check for header */
920 # if $cc $ARCH_CFLAGS $CFLAGS $LDFLAGS -o $TMPE $TMPC -lfdt 2> /dev/null ; then
921 if $cc $ARCH_CFLAGS $CFLAGS $LDFLAGS -o $TMPE $TMPC 2> /dev/null; then
922 device_tree_support="yes"
923 else
924 echo
925 echo "Error: Could not find libfdt"
926 echo "Make sure to have the libfdt libs and headers installed."
927 echo
928 exit 1
932 echo "Install prefix $prefix"
933 echo "BIOS directory $prefix$datasuffix"
934 echo "binary directory $prefix$binsuffix"
935 if test "$mingw32" = "no" ; then
936 echo "Manual directory $prefix$mansuffix"
937 echo "ELF interp prefix $interp_prefix"
939 echo "Source path $source_path"
940 echo "C compiler $cc"
941 echo "Host C compiler $host_cc"
942 echo "ARCH_CFLAGS $ARCH_CFLAGS"
943 echo "make $make"
944 echo "install $install"
945 echo "host CPU $cpu"
946 echo "host big endian $bigendian"
947 echo "target list $target_list"
948 echo "gprof enabled $gprof"
949 echo "profiler $profiler"
950 echo "static build $static"
951 echo "-Werror enabled $werror"
952 if test "$darwin" = "yes" ; then
953 echo "Cocoa support $cocoa"
955 echo "SDL support $sdl"
956 if test "$sdl" != "no" ; then
957 echo "SDL static link $sdl_static"
959 echo "curses support $curses"
960 echo "mingw32 support $mingw32"
961 echo "Audio drivers $audio_drv_list"
962 echo "Extra audio cards $audio_card_list"
963 echo "Mixer emulation $mixemu"
964 echo "VNC TLS support $vnc_tls"
965 if test "$vnc_tls" = "yes" ; then
966 echo " TLS CFLAGS $vnc_tls_cflags"
967 echo " TLS LIBS $vnc_tls_libs"
969 if test -n "$sparc_cpu"; then
970 echo "Target Sparc Arch $sparc_cpu"
972 echo "kqemu support $kqemu"
973 echo "kvm support $kvm"
974 echo "CPU emulation $cpu_emulation"
975 if test $cpu = "powerpc"; then
976 echo "libfdt support $device_tree_support"
978 echo "brlapi support $brlapi"
979 echo "Documentation $build_docs"
980 [ ! -z "$uname_release" ] && \
981 echo "uname -r $uname_release"
982 echo "NPTL support $nptl"
983 echo "vde support $vde"
985 if test $sdl_too_old = "yes"; then
986 echo "-> Your SDL version is too old - please upgrade to have SDL support"
988 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
989 echo "The error log from compiling the libSDL test is: "
990 cat /tmp/qemu-$$-sdl-config.log
992 rm -f /tmp/qemu-$$-sdl-config.log
993 #if test "$sdl_static" = "no"; then
994 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
996 config_mak="config-host.mak"
997 config_h="config-host.h"
999 #echo "Creating $config_mak and $config_h"
1001 test -f $config_h && mv $config_h ${config_h}~
1003 echo "# Automatically generated by configure - do not modify" > $config_mak
1004 echo "# Configured with: $0 $@" >> $config_mak
1005 echo "/* Automatically generated by configure - do not modify */" > $config_h
1007 echo "prefix=$prefix" >> $config_mak
1008 echo "bindir=\${prefix}$binsuffix" >> $config_mak
1009 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1010 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1011 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1012 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1013 echo "MAKE=$make" >> $config_mak
1014 echo "INSTALL=$install" >> $config_mak
1015 echo "CC=$cc" >> $config_mak
1016 echo "HOST_CC=$host_cc" >> $config_mak
1017 echo "AR=$ar" >> $config_mak
1018 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1019 # XXX: only use CFLAGS and LDFLAGS ?
1020 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1021 # compilation of dyngen tool (useful for win32 build on Linux host)
1022 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1023 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1024 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1025 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1026 echo "CFLAGS=$CFLAGS" >> $config_mak
1027 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1028 echo "EXESUF=$EXESUF" >> $config_mak
1029 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1030 case "$cpu" in
1031 i386)
1032 echo "ARCH=i386" >> $config_mak
1033 echo "#define HOST_I386 1" >> $config_h
1035 x86_64)
1036 echo "ARCH=x86_64" >> $config_mak
1037 echo "#define HOST_X86_64 1" >> $config_h
1039 alpha)
1040 echo "ARCH=alpha" >> $config_mak
1041 echo "#define HOST_ALPHA 1" >> $config_h
1043 armv4b)
1044 echo "ARCH=arm" >> $config_mak
1045 echo "#define HOST_ARM 1" >> $config_h
1047 armv4l)
1048 echo "ARCH=arm" >> $config_mak
1049 echo "#define HOST_ARM 1" >> $config_h
1051 cris)
1052 echo "ARCH=cris" >> $config_mak
1053 echo "#define HOST_CRIS 1" >> $config_h
1055 hppa)
1056 echo "ARCH=hppa" >> $config_mak
1057 echo "#define HOST_HPPA 1" >> $config_h
1059 ia64)
1060 echo "ARCH=ia64" >> $config_mak
1061 echo "#define HOST_IA64 1" >> $config_h
1063 m68k)
1064 echo "ARCH=m68k" >> $config_mak
1065 echo "#define HOST_M68K 1" >> $config_h
1067 mips)
1068 echo "ARCH=mips" >> $config_mak
1069 echo "#define HOST_MIPS 1" >> $config_h
1071 mips64)
1072 echo "ARCH=mips64" >> $config_mak
1073 echo "#define HOST_MIPS64 1" >> $config_h
1075 powerpc)
1076 echo "ARCH=ppc" >> $config_mak
1077 echo "#define HOST_PPC 1" >> $config_h
1079 s390)
1080 echo "ARCH=s390" >> $config_mak
1081 echo "#define HOST_S390 1" >> $config_h
1083 sparc)
1084 echo "ARCH=sparc" >> $config_mak
1085 echo "#define HOST_SPARC 1" >> $config_h
1087 sparc64)
1088 echo "ARCH=sparc64" >> $config_mak
1089 echo "#define HOST_SPARC64 1" >> $config_h
1092 echo "Unsupported CPU = $cpu"
1093 exit 1
1095 esac
1096 if test "$bigendian" = "yes" ; then
1097 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1098 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1100 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1101 if test "$mingw32" = "yes" ; then
1102 echo "CONFIG_WIN32=yes" >> $config_mak
1103 echo "#define CONFIG_WIN32 1" >> $config_h
1104 else
1105 cat > $TMPC << EOF
1106 #include <byteswap.h>
1107 int main(void) { return bswap_32(0); }
1109 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1110 echo "#define HAVE_BYTESWAP_H 1" >> $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
1167 done
1168 echo "" >>$config_h
1169 if test "$mixemu" = "yes" ; then
1170 echo "CONFIG_MIXEMU=yes" >> $config_mak
1171 echo "#define CONFIG_MIXEMU 1" >> $config_h
1173 if test "$vnc_tls" = "yes" ; then
1174 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1175 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1176 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1177 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1179 qemu_version=`head $source_path/VERSION`
1180 echo "VERSION=$qemu_version" >>$config_mak
1181 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1182 echo "#define KVM_VERSION \"kvm-devel\"" >> $config_h
1184 echo "SRC_PATH=$source_path" >> $config_mak
1185 if [ "$source_path_used" = "yes" ]; then
1186 echo "VPATH=$source_path" >> $config_mak
1188 echo "TARGET_DIRS=$target_list" >> $config_mak
1189 if [ "$build_docs" = "yes" ] ; then
1190 echo "BUILD_DOCS=yes" >> $config_mak
1192 if test "$static" = "yes"; then
1193 sdl1=$sdl_static
1194 else
1195 sdl1=$sdl
1197 if test "$sdl1" = "yes" ; then
1198 echo "#define CONFIG_SDL 1" >> $config_h
1199 echo "CONFIG_SDL=yes" >> $config_mak
1200 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1201 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1202 else
1203 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1205 if [ "${aa}" = "yes" ] ; then
1206 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1207 else
1208 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1211 if test "$cocoa" = "yes" ; then
1212 echo "#define CONFIG_COCOA 1" >> $config_h
1213 echo "CONFIG_COCOA=yes" >> $config_mak
1215 if test "$curses" = "yes" ; then
1216 echo "#define CONFIG_CURSES 1" >> $config_h
1217 echo "CONFIG_CURSES=yes" >> $config_mak
1218 echo "CURSES_LIBS=-lcurses" >> $config_mak
1220 if test "$brlapi" = "yes" ; then
1221 echo "CONFIG_BRLAPI=yes" >> $config_mak
1222 echo "#define CONFIG_BRLAPI 1" >> $config_h
1223 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1226 # XXX: suppress that
1227 if [ "$bsd" = "yes" ] ; then
1228 echo "#define O_LARGEFILE 0" >> $config_h
1229 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1230 echo "#define _BSD 1" >> $config_h
1233 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1235 tools=
1236 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1237 tools="qemu-img\$(EXESUF) $tools"
1238 if [ "$linux" = "yes" ] ; then
1239 tools="qemu-nbd\$(EXESUF) $tools"
1242 echo "TOOLS=$tools" >> $config_mak
1244 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1246 for target in $target_list; do
1247 target_dir="$target"
1248 config_mak=$target_dir/config.mak
1249 config_h=$target_dir/config.h
1250 target_cpu=`echo $target | cut -d '-' -f 1`
1251 target_bigendian="no"
1252 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1253 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1254 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1255 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1256 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1257 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1258 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1259 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1260 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1261 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1262 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1263 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1264 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1265 target_softmmu="no"
1266 target_user_only="no"
1267 target_linux_user="no"
1268 target_darwin_user="no"
1269 case "$target" in
1270 ${target_cpu}-softmmu)
1271 target_softmmu="yes"
1273 ${target_cpu}-linux-user)
1274 target_user_only="yes"
1275 target_linux_user="yes"
1277 ${target_cpu}-darwin-user)
1278 target_user_only="yes"
1279 target_darwin_user="yes"
1282 echo "ERROR: Target '$target' not recognised"
1283 exit 1
1285 esac
1287 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1288 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1289 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1290 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1291 echo "Note that this will disable all output from the virtual graphics card"
1292 echo "except through VNC or curses."
1293 exit 1;
1296 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1298 test -f $config_h && mv $config_h ${config_h}~
1300 mkdir -p $target_dir
1301 mkdir -p $target_dir/fpu
1302 mkdir -p $target_dir/tcg
1303 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1304 mkdir -p $target_dir/nwfpe
1308 # don't use ln -sf as not all "ln -sf" over write the file/link
1310 rm -f $target_dir/Makefile
1311 ln -s $source_path/Makefile.target $target_dir/Makefile
1314 echo "# Automatically generated by configure - do not modify" > $config_mak
1315 echo "/* Automatically generated by configure - do not modify */" > $config_h
1318 echo "include ../config-host.mak" >> $config_mak
1319 echo "#include \"../config-host.h\"" >> $config_h
1321 bflt="no"
1322 elfload32="no"
1323 target_nptl="no"
1324 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1325 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1327 disable_cpu_emulation() {
1328 if test $cpu_emulation = "no"; then
1329 echo "#define NO_CPU_EMULATION 1" >> $config_h
1330 echo "NO_CPU_EMULATION=1" >> $config_mak
1334 configure_kvm() {
1335 if test $kvm = "yes" -a "$target_softmmu" = "yes" -a \
1336 \( "$cpu" = "i386" -o "$cpu" = "x86_64" -o "$cpu" = "ia64" -o "$cpu" = "powerpc" \); then
1337 echo "#define USE_KVM 1" >> $config_h
1338 echo "USE_KVM=1" >> $config_mak
1339 echo "CONFIG_KVM_KERNEL_INC=$kernel_path/include" >> $config_mak
1340 if test $kvm_cap_pit = "yes" ; then
1341 echo "USE_KVM_PIT=1" >> $config_mak
1342 echo "#define USE_KVM_PIT 1" >> $config_h
1344 disable_cpu_emulation
1348 case "$target_cpu" in
1349 i386)
1350 echo "TARGET_ARCH=i386" >> $config_mak
1351 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1352 echo "#define TARGET_I386 1" >> $config_h
1353 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1354 then
1355 echo "#define USE_KQEMU 1" >> $config_h
1357 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1358 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1359 then
1360 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1361 else
1362 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1364 configure_kvm
1366 x86_64)
1367 echo "TARGET_ARCH=x86_64" >> $config_mak
1368 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1369 echo "#define TARGET_I386 1" >> $config_h
1370 echo "#define TARGET_X86_64 1" >> $config_h
1371 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1372 then
1373 echo "#define USE_KQEMU 1" >> $config_h
1375 configure_kvm
1377 ia64)
1378 echo "TARGET_ARCH=ia64" >> $config_mak
1379 echo "#define TARGET_ARCH \"ia64\"" >> $config_h
1380 echo "#define TARGET_IA64 1" >> $config_h
1381 configure_kvm
1383 alpha)
1384 echo "TARGET_ARCH=alpha" >> $config_mak
1385 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1386 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1387 echo "#define TARGET_ALPHA 1" >> $config_h
1388 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1390 arm|armeb)
1391 echo "TARGET_ARCH=arm" >> $config_mak
1392 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1393 echo "#define TARGET_ARM 1" >> $config_h
1394 bflt="yes"
1395 target_nptl="yes"
1397 cris)
1398 echo "TARGET_ARCH=cris" >> $config_mak
1399 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1400 echo "#define TARGET_CRIS 1" >> $config_h
1402 m68k)
1403 echo "TARGET_ARCH=m68k" >> $config_mak
1404 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1405 echo "#define TARGET_M68K 1" >> $config_h
1406 bflt="yes"
1408 mips|mipsel)
1409 echo "TARGET_ARCH=mips" >> $config_mak
1410 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1411 echo "#define TARGET_MIPS 1" >> $config_h
1412 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1414 mipsn32|mipsn32el)
1415 echo "TARGET_ARCH=mipsn32" >> $config_mak
1416 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1417 echo "#define TARGET_MIPS 1" >> $config_h
1418 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1420 mips64|mips64el)
1421 echo "TARGET_ARCH=mips64" >> $config_mak
1422 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1423 echo "#define TARGET_MIPS 1" >> $config_h
1424 echo "#define TARGET_MIPS64 1" >> $config_h
1425 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1427 ppc)
1428 echo "TARGET_ARCH=ppc" >> $config_mak
1429 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1430 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1431 echo "#define TARGET_PPC 1" >> $config_h
1432 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1434 ppcemb)
1435 echo "TARGET_ARCH=ppcemb" >> $config_mak
1436 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1437 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1438 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1439 echo "#define TARGET_PPC 1" >> $config_h
1440 echo "#define TARGET_PPCEMB 1" >> $config_h
1441 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1442 if test "$device_tree_support" = "yes" ; then
1443 echo "#define CONFIG_LIBFDT 1" >> $config_h
1444 echo "CONFIG_LIBFDT=1" >> $config_mak
1446 configure_kvm
1448 ppc64)
1449 echo "TARGET_ARCH=ppc64" >> $config_mak
1450 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1451 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1452 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1453 echo "#define TARGET_PPC 1" >> $config_h
1454 echo "#define TARGET_PPC64 1" >> $config_h
1455 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1457 ppc64abi32)
1458 echo "TARGET_ARCH=ppc64" >> $config_mak
1459 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1460 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1461 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1462 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1463 echo "#define TARGET_PPC 1" >> $config_h
1464 echo "#define TARGET_PPC64 1" >> $config_h
1465 echo "#define TARGET_ABI32 1" >> $config_h
1466 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1468 sh4|sh4eb)
1469 echo "TARGET_ARCH=sh4" >> $config_mak
1470 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1471 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1472 echo "#define TARGET_SH4 1" >> $config_h
1473 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1474 bflt="yes"
1476 sparc)
1477 echo "TARGET_ARCH=sparc" >> $config_mak
1478 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1479 echo "#define TARGET_SPARC 1" >> $config_h
1481 sparc64)
1482 echo "TARGET_ARCH=sparc64" >> $config_mak
1483 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1484 echo "#define TARGET_SPARC 1" >> $config_h
1485 echo "#define TARGET_SPARC64 1" >> $config_h
1486 elfload32="yes"
1488 sparc32plus)
1489 echo "TARGET_ARCH=sparc64" >> $config_mak
1490 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1491 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1492 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1493 echo "#define TARGET_SPARC 1" >> $config_h
1494 echo "#define TARGET_SPARC64 1" >> $config_h
1495 echo "#define TARGET_ABI32 1" >> $config_h
1498 echo "Unsupported target CPU"
1499 exit 1
1501 esac
1502 if test "$target_bigendian" = "yes" ; then
1503 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1504 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1506 if test "$target_softmmu" = "yes" ; then
1507 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1508 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1510 if test "$target_user_only" = "yes" ; then
1511 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1512 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1514 if test "$target_linux_user" = "yes" ; then
1515 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1516 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1518 if test "$target_darwin_user" = "yes" ; then
1519 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1520 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1523 if test "$target_cpu" = "arm" \
1524 -o "$target_cpu" = "armeb" \
1525 -o "$target_cpu" = "m68k" \
1526 -o "$target_cpu" = "mips" \
1527 -o "$target_cpu" = "mipsel" \
1528 -o "$target_cpu" = "mipsn32" \
1529 -o "$target_cpu" = "mipsn32el" \
1530 -o "$target_cpu" = "mips64" \
1531 -o "$target_cpu" = "mips64el" \
1532 -o "$target_cpu" = "sparc" \
1533 -o "$target_cpu" = "sparc64" \
1534 -o "$target_cpu" = "sparc32plus"; then
1535 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1536 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1538 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1539 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1540 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1542 if test "$target_user_only" = "yes" \
1543 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1544 echo "#define USE_NPTL 1" >> $config_h
1546 # 32 bit ELF loader in addition to native 64 bit loader?
1547 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1548 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1549 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1552 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1554 done # for target in $targets
1556 # build tree in object directory if source path is different from current one
1557 if test "$source_path_used" = "yes" ; then
1558 DIRS="tests tests/cris slirp audio"
1559 FILES="Makefile tests/Makefile"
1560 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1561 FILES="$FILES tests/test-mmap.c"
1562 for dir in $DIRS ; do
1563 mkdir -p $dir
1564 done
1565 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1566 for f in $FILES ; do
1567 rm -f $f
1568 ln -s $source_path/$f $f
1569 done
1572 rm -f $TMPO $TMPC $TMPE $TMPS