Update ARM disassembler.
[qemu/mini2440.git] / configure
blob87166b4614917fe068b6a1b2bd011c652c57a9c1
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 host_cc="gcc"
28 ar="ar"
29 make="make"
30 install="install"
31 strip="strip"
32 cpu=`uname -m`
33 target_list=""
34 case "$cpu" in
35 i386|i486|i586|i686|i86pc|BePC)
36 cpu="i386"
38 armv*b)
39 cpu="armv4b"
41 armv*l)
42 cpu="armv4l"
44 alpha)
45 cpu="alpha"
47 "Power Macintosh"|ppc|ppc64)
48 cpu="powerpc"
50 mips)
51 cpu="mips"
53 mips64)
54 cpu="mips64"
56 cris)
57 cpu="cris"
59 s390*)
60 cpu="s390"
62 sparc|sun4[cdmuv])
63 cpu="sparc"
65 sparc64)
66 cpu="sparc64"
68 ia64)
69 cpu="ia64"
71 m68k)
72 cpu="m68k"
74 x86_64|amd64)
75 cpu="x86_64"
78 cpu="unknown"
80 esac
81 gprof="no"
82 bigendian="no"
83 mingw32="no"
84 EXESUF=""
85 gdbstub="yes"
86 slirp="yes"
87 adlib="no"
88 oss="no"
89 dsound="no"
90 coreaudio="no"
91 alsa="no"
92 fmod="no"
93 fmod_lib=""
94 fmod_inc=""
95 vnc_tls="yes"
96 bsd="no"
97 linux="no"
98 kqemu="no"
99 profiler="no"
100 cocoa="no"
101 check_gfx="yes"
102 check_gcc="yes"
103 softmmu="yes"
104 linux_user="no"
105 darwin_user="no"
106 build_docs="no"
107 uname_release=""
109 # OS specific
110 targetos=`uname -s`
111 case $targetos in
112 CYGWIN*)
113 mingw32="yes"
114 OS_CFLAGS="-mno-cygwin"
115 VL_OS_LDFLAGS="-mno-cygwin"
116 if [ "$cpu" = "i386" ] ; then
117 kqemu="yes"
120 MINGW32*)
121 mingw32="yes"
122 if [ "$cpu" = "i386" ] ; then
123 kqemu="yes"
126 GNU/kFreeBSD)
127 oss="yes"
128 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
129 kqemu="yes"
132 FreeBSD)
133 bsd="yes"
134 oss="yes"
135 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
136 kqemu="yes"
139 NetBSD)
140 bsd="yes"
141 oss="yes"
143 OpenBSD)
144 bsd="yes"
145 oss="yes"
147 Darwin)
148 bsd="yes"
149 darwin="yes"
150 darwin_user="yes"
151 cocoa="yes"
152 coreaudio="yes"
153 OS_CFLAGS="-mdynamic-no-pic"
155 SunOS)
156 solaris="yes"
157 make="gmake"
158 install="ginstall"
159 needs_libsunmath="no"
160 solarisrev=`uname -r | cut -f2 -d.`
161 # have to select again, because `uname -m` returns i86pc
162 # even on an x86_64 box.
163 solariscpu=`isainfo -k`
164 if test "${solariscpu}" = "amd64" ; then
165 cpu="x86_64"
167 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
168 if test "$solarisrev" -le 9 ; then
169 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
170 needs_libsunmath="yes"
171 else
172 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
173 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
174 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
175 echo "Studio 11 can be downloaded from www.sun.com."
176 exit 1
179 if test "$solarisrev" -ge 9 ; then
180 kqemu="yes"
183 if test -f /usr/include/sys/soundcard.h ; then
184 oss=yes
188 oss="yes"
189 linux="yes"
190 linux_user="yes"
191 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
192 kqemu="yes"
195 esac
197 if [ "$bsd" = "yes" ] ; then
198 if [ "$darwin" != "yes" ] ; then
199 make="gmake"
203 # find source path
204 source_path=`dirname "$0"`
205 if [ -z "$source_path" ]; then
206 source_path=`pwd`
207 else
208 source_path=`cd "$source_path"; pwd`
210 if test "$source_path" = `pwd` ; then
211 source_path_used="no"
212 else
213 source_path_used="yes"
216 for opt do
217 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
218 case "$opt" in
219 --help|-h) show_help=yes
221 --prefix=*) prefix="$optarg"
223 --interp-prefix=*) interp_prefix="$optarg"
225 --source-path=*) source_path="$optarg"
226 source_path_used="yes"
228 --cross-prefix=*) cross_prefix="$optarg"
230 --cc=*) cc="$optarg"
231 gcc3_search="no"
233 --host-cc=*) host_cc="$optarg"
235 --make=*) make="$optarg"
237 --install=*) install="$optarg"
239 --extra-cflags=*) CFLAGS="$optarg"
241 --extra-ldflags=*) LDFLAGS="$optarg"
243 --cpu=*) cpu="$optarg"
245 --target-list=*) target_list="$optarg"
247 --enable-gprof) gprof="yes"
249 --static) static="yes"
251 --disable-sdl) sdl="no"
253 --enable-coreaudio) coreaudio="yes"
255 --enable-alsa) alsa="yes"
257 --enable-dsound) dsound="yes"
259 --enable-fmod) fmod="yes"
261 --fmod-lib=*) fmod_lib="$optarg"
263 --fmod-inc=*) fmod_inc="$optarg"
265 --disable-vnc-tls) vnc_tls="no"
267 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
269 --disable-slirp) slirp="no"
271 --enable-adlib) adlib="yes"
273 --disable-kqemu) kqemu="no"
275 --enable-profiler) profiler="yes"
277 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
279 --disable-gfx-check) check_gfx="no"
281 --disable-gcc-check) check_gcc="no"
283 --disable-system) softmmu="no"
285 --enable-system) softmmu="yes"
287 --disable-linux-user) linux_user="no"
289 --enable-linux-user) linux_user="yes"
291 --disable-darwin-user) darwin_user="no"
293 --enable-darwin-user) darwin_user="yes"
295 --enable-uname-release=*) uname_release="$optarg"
297 --sparc_cpu=*)
298 sparc_cpu="$optarg"
299 case $sparc_cpu in
300 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
301 target_cpu="sparc"; cpu="sparc" ;;
302 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
303 target_cpu="sparc"; cpu="sparc" ;;
304 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
305 target_cpu="sparc64"; cpu="sparc64" ;;
306 *) echo "undefined SPARC architecture. Exiting";exit 1;;
307 esac
309 esac
310 done
312 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
313 AIOLIBS=
314 else
315 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
316 AIOLIBS="-lrt -lpthread"
319 # default flags for all hosts
320 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
321 LDFLAGS="$LDFLAGS -g"
324 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
325 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
327 case $cpu in
328 sparc) if test -z "$sparc_cpu" ; then
329 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
330 ARCH_LDFLAGS="-m32"
331 else
332 ARCH_CFLAGS="${SP_CFLAGS}"
333 ARCH_LDFLAGS="${SP_LDFLAGS}"
336 sparc64) if test -z "$sparc_cpu" ; then
337 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
338 ARCH_LDFLAGS="-m64"
339 else
340 ARCH_CFLAGS="${SP_CFLAGS}"
341 ARCH_LDFLAGS="${SP_LDFLAGS}"
344 esac
346 if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then
347 CFLAGS="${CFLAGS} -m64"
348 OS_CFLAGS="${OS_CFLAGS} -m64"
351 if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then
352 CFLAGS="${CFLAGS} -m32"
353 OS_CFLAGS="${OS_CFLAGS} -m32"
356 if test x"$show_help" = x"yes" ; then
357 cat << EOF
359 Usage: configure [options]
360 Options: [defaults in brackets after descriptions]
363 echo "Standard options:"
364 echo " --help print this message"
365 echo " --prefix=PREFIX install in PREFIX [$prefix]"
366 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
367 echo " use %M for cpu name [$interp_prefix]"
368 echo " --target-list=LIST set target list [$target_list]"
369 echo ""
370 echo "kqemu kernel acceleration support:"
371 echo " --disable-kqemu disable kqemu support"
372 echo ""
373 echo "Advanced options (experts only):"
374 echo " --source-path=PATH path of source code [$source_path]"
375 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
376 echo " --cc=CC use C compiler CC [$cc]"
377 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
378 echo " --make=MAKE use specified make [$make]"
379 echo " --install=INSTALL use specified install [$install]"
380 echo " --static enable static build [$static]"
381 echo " --disable-sdl disable SDL"
382 echo " --enable-cocoa enable COCOA (Mac OS X only)"
383 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
384 echo " --enable-adlib enable Adlib emulation"
385 echo " --enable-coreaudio enable Coreaudio audio driver"
386 echo " --enable-alsa enable ALSA audio driver"
387 echo " --enable-fmod enable FMOD audio driver"
388 echo " --enable-dsound enable DirectSound audio driver"
389 echo " --disable-vnc-tls disable TLS encryption for VNC server"
390 echo " --enable-system enable all system emulation targets"
391 echo " --disable-system disable all system emulation targets"
392 echo " --enable-linux-user enable all linux usermode emulation targets"
393 echo " --disable-linux-user disable all linux usermode emulation targets"
394 echo " --enable-darwin-user enable all darwin usermode emulation targets"
395 echo " --disable-darwin-user disable all darwin usermode emulation targets"
396 echo " --fmod-lib path to FMOD library"
397 echo " --fmod-inc path to FMOD includes"
398 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
399 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
400 echo ""
401 echo "NOTE: The object files are built at the place where configure is launched"
402 exit 1
405 cc="${cross_prefix}${cc}"
406 ar="${cross_prefix}${ar}"
407 strip="${cross_prefix}${strip}"
409 # check that the C compiler works.
410 cat > $TMPC <<EOF
411 int main(void) {}
414 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
415 : C compiler works ok
416 else
417 echo "ERROR: \"$cc\" either does not exist or does not work"
418 exit 1
421 if test "$mingw32" = "yes" ; then
422 linux="no"
423 EXESUF=".exe"
424 oss="no"
427 # Check for gcc4, error if pre-gcc4
428 if test "$check_gcc" = "yes" ; then
429 cat > $TMPC <<EOF
430 #if __GNUC__ < 4
431 #error gcc3
432 #endif
433 int main(){return 0;}
435 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
436 echo "WARNING: \"$cc\" looks like gcc 4.x"
437 found_compat_cc="no"
438 if test "$gcc3_search" = "yes" ; then
439 echo "Looking for gcc 3.x"
440 for compat_cc in $gcc3_list ; do
441 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
442 echo "Found \"$compat_cc\""
443 cc="$cross_prefix$compat_cc"
444 found_compat_cc="yes"
445 break
447 done
448 if test "$found_compat_cc" = "no" ; then
449 echo "gcc 3.x not found!"
452 if test "$found_compat_cc" = "no" ; then
453 echo "QEMU is known to have problems when compiled with gcc 4.x"
454 echo "It is recommended that you use gcc 3.x to build QEMU"
455 echo "To use this compiler anyway, configure with --disable-gcc-check"
456 exit 1;
462 # Solaris specific configure tool chain decisions
464 if test "$solaris" = "yes" ; then
466 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
467 # override the check with --disable-gcc-check
469 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
470 solgcc=`which $cc`
471 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
472 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
473 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
474 echo "or get the latest patch from SunSolve for gcc"
475 exit 1
478 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
479 if test -z "$solinst" ; then
480 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
481 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
482 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
483 exit 1
485 if test "$solinst" = "/usr/sbin/install" ; then
486 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
487 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
488 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
489 exit 1
491 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
492 if test -z "$sol_ar" ; then
493 echo "Error: No path includes ar"
494 if test -f /usr/ccs/bin/ar ; then
495 echo "Add /usr/ccs/bin to your path and rerun configure"
497 exit 1
502 if test -z "$target_list" ; then
503 # these targets are portable
504 if [ "$softmmu" = "yes" ] ; then
505 target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu"
507 # the following are Linux specific
508 if [ "$linux_user" = "yes" ] ; then
509 target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user ppc-linux-user ppcemb-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
511 # the following are Darwin specific
512 if [ "$darwin_user" = "yes" ] ; then
513 target_list="i386-darwin-user ppc-darwin-user $target_list"
515 else
516 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
518 if test -z "$target_list" ; then
519 echo "No targets enabled"
520 exit 1
523 if test -z "$cross_prefix" ; then
525 # ---
526 # big/little endian test
527 cat > $TMPC << EOF
528 #include <inttypes.h>
529 int main(int argc, char ** argv){
530 volatile uint32_t i=0x01234567;
531 return (*((uint8_t*)(&i))) == 0x67;
535 if $cc -o $TMPE $TMPC 2> /dev/null ; then
536 $TMPE && bigendian="yes"
537 else
538 echo big/little test failed
541 else
543 # if cross compiling, cannot launch a program, so make a static guess
544 if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
545 bigendian="yes"
550 # host long bits test
551 hostlongbits="32"
552 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
553 hostlongbits="64"
556 # check gcc options support
557 cat > $TMPC <<EOF
558 int main(void) {
562 ##########################################
563 # SDL probe
565 sdl_too_old=no
567 if test -z "$sdl" ; then
568 sdl_config="sdl-config"
569 sdl=no
570 sdl_static=no
572 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
573 # win32 cross compilation case
574 sdl_config="i386-mingw32msvc-sdl-config"
575 sdl=yes
576 else
577 # normal SDL probe
578 cat > $TMPC << EOF
579 #include <SDL.h>
580 #undef main /* We don't want SDL to override our main() */
581 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
583 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
584 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
585 if test "$_sdlversion" -lt 121 ; then
586 sdl_too_old=yes
587 else
588 if test "$cocoa" = "no" ; then
589 sdl=yes
593 # static link with sdl ?
594 if test "$sdl" = "yes" ; then
595 aa="no"
596 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
597 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
598 if [ "$aa" = "yes" ] ; then
599 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
602 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
603 sdl_static=yes
605 fi # static link
606 fi # sdl compile test
607 fi # cross compilation
608 else
609 # Make sure to disable cocoa if sdl was set
610 if test "$sdl" = "yes" ; then
611 cocoa="no"
612 coreaudio="no"
614 fi # -z $sdl
616 ##########################################
617 # VNC TLS detection
618 if test "$vnc_tls" = "yes" ; then
619 `pkg-config gnutls` || vnc_tls="no"
621 if test "$vnc_tls" = "yes" ; then
622 vnc_tls_cflags=`pkg-config --cflags gnutls`
623 vnc_tls_libs=`pkg-config --libs gnutls`
626 ##########################################
627 # alsa sound support libraries
629 if test "$alsa" = "yes" ; then
630 cat > $TMPC << EOF
631 #include <alsa/asoundlib.h>
632 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
634 if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
636 else
637 echo
638 echo "Error: Could not find alsa"
639 echo "Make sure to have the alsa libs and headers installed."
640 echo
641 exit 1
645 # Check if tools are available to build documentation.
646 if [ -x "`which texi2html 2>/dev/null`" ] && \
647 [ -x "`which pod2man 2>/dev/null`" ]; then
648 build_docs="yes"
651 if test "$mingw32" = "yes" ; then
652 if test -z "$prefix" ; then
653 prefix="/c/Program Files/Qemu"
655 mansuffix=""
656 datasuffix=""
657 docsuffix=""
658 binsuffix=""
659 else
660 if test -z "$prefix" ; then
661 prefix="/usr/local"
663 mansuffix="/share/man"
664 datasuffix="/share/qemu"
665 docsuffix="/share/doc/qemu"
666 binsuffix="/bin"
669 echo "Install prefix $prefix"
670 echo "BIOS directory $prefix$datasuffix"
671 echo "binary directory $prefix$binsuffix"
672 if test "$mingw32" = "no" ; then
673 echo "Manual directory $prefix$mansuffix"
674 echo "ELF interp prefix $interp_prefix"
676 echo "Source path $source_path"
677 echo "C compiler $cc"
678 echo "Host C compiler $host_cc"
679 echo "make $make"
680 echo "install $install"
681 echo "host CPU $cpu"
682 echo "host big endian $bigendian"
683 echo "target list $target_list"
684 echo "gprof enabled $gprof"
685 echo "profiler $profiler"
686 echo "static build $static"
687 if test "$darwin" = "yes" ; then
688 echo "Cocoa support $cocoa"
690 echo "SDL support $sdl"
691 if test "$sdl" != "no" ; then
692 echo "SDL static link $sdl_static"
694 echo "mingw32 support $mingw32"
695 echo "Adlib support $adlib"
696 echo "CoreAudio support $coreaudio"
697 echo "ALSA support $alsa"
698 echo "DSound support $dsound"
699 if test "$fmod" = "yes"; then
700 if test -z $fmod_lib || test -z $fmod_inc; then
701 echo
702 echo "Error: You must specify path to FMOD library and headers"
703 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
704 echo
705 exit 1
707 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
708 else
709 fmod_support=""
711 echo "FMOD support $fmod $fmod_support"
712 echo "OSS support $oss"
713 echo "VNC TLS support $vnc_tls"
714 if test "$vnc_tls" = "yes" ; then
715 echo " TLS CFLAGS $vnc_tls_cflags"
716 echo " TLS LIBS $vnc_tls_libs"
718 if test -n "$sparc_cpu"; then
719 echo "Target Sparc Arch $sparc_cpu"
721 echo "kqemu support $kqemu"
722 echo "Documentation $build_docs"
723 [ ! -z "$uname_release" ] && \
724 echo "uname -r $uname_release"
726 if test $sdl_too_old = "yes"; then
727 echo "-> Your SDL version is too old - please upgrade to have SDL support"
729 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
730 echo "The error log from compiling the libSDL test is: "
731 cat /tmp/qemu-$$-sdl-config.log
733 rm -f /tmp/qemu-$$-sdl-config.log
734 #if test "$sdl_static" = "no"; then
735 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
737 config_mak="config-host.mak"
738 config_h="config-host.h"
740 #echo "Creating $config_mak and $config_h"
742 test -f $config_h && mv $config_h ${config_h}~
744 echo "# Automatically generated by configure - do not modify" > $config_mak
745 echo "# Configured with: $0 $@" >> $config_mak
746 echo "/* Automatically generated by configure - do not modify */" > $config_h
748 echo "prefix=$prefix" >> $config_mak
749 echo "bindir=\${prefix}$binsuffix" >> $config_mak
750 echo "mandir=\${prefix}$mansuffix" >> $config_mak
751 echo "datadir=\${prefix}$datasuffix" >> $config_mak
752 echo "docdir=\${prefix}$docsuffix" >> $config_mak
753 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
754 echo "MAKE=$make" >> $config_mak
755 echo "INSTALL=$install" >> $config_mak
756 echo "CC=$cc" >> $config_mak
757 echo "HOST_CC=$host_cc" >> $config_mak
758 echo "AR=$ar" >> $config_mak
759 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
760 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
761 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
762 echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
763 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
764 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
765 echo "CFLAGS=$CFLAGS" >> $config_mak
766 echo "LDFLAGS=$LDFLAGS" >> $config_mak
767 echo "EXESUF=$EXESUF" >> $config_mak
768 echo "AIOLIBS=$AIOLIBS" >> $config_mak
769 if test "$cpu" = "i386" ; then
770 echo "ARCH=i386" >> $config_mak
771 echo "#define HOST_I386 1" >> $config_h
772 elif test "$cpu" = "x86_64" ; then
773 echo "ARCH=x86_64" >> $config_mak
774 echo "#define HOST_X86_64 1" >> $config_h
775 elif test "$cpu" = "armv4b" ; then
776 echo "ARCH=arm" >> $config_mak
777 echo "#define HOST_ARM 1" >> $config_h
778 elif test "$cpu" = "armv4l" ; then
779 echo "ARCH=arm" >> $config_mak
780 echo "#define HOST_ARM 1" >> $config_h
781 elif test "$cpu" = "powerpc" ; then
782 echo "ARCH=ppc" >> $config_mak
783 echo "#define HOST_PPC 1" >> $config_h
784 elif test "$cpu" = "mips" ; then
785 echo "ARCH=mips" >> $config_mak
786 echo "#define HOST_MIPS 1" >> $config_h
787 elif test "$cpu" = "mips64" ; then
788 echo "ARCH=mips64" >> $config_mak
789 echo "#define HOST_MIPS64 1" >> $config_h
790 elif test "$cpu" = "cris" ; then
791 echo "ARCH=cris" >> $config_mak
792 echo "#define HOST_CRIS 1" >> $config_h
793 elif test "$cpu" = "s390" ; then
794 echo "ARCH=s390" >> $config_mak
795 echo "#define HOST_S390 1" >> $config_h
796 elif test "$cpu" = "alpha" ; then
797 echo "ARCH=alpha" >> $config_mak
798 echo "#define HOST_ALPHA 1" >> $config_h
799 elif test "$cpu" = "sparc" ; then
800 echo "ARCH=sparc" >> $config_mak
801 echo "#define HOST_SPARC 1" >> $config_h
802 elif test "$cpu" = "sparc64" ; then
803 echo "ARCH=sparc64" >> $config_mak
804 echo "#define HOST_SPARC64 1" >> $config_h
805 elif test "$cpu" = "ia64" ; then
806 echo "ARCH=ia64" >> $config_mak
807 echo "#define HOST_IA64 1" >> $config_h
808 elif test "$cpu" = "m68k" ; then
809 echo "ARCH=m68k" >> $config_mak
810 echo "#define HOST_M68K 1" >> $config_h
811 else
812 echo "Unsupported CPU = $cpu"
813 exit 1
815 if test "$bigendian" = "yes" ; then
816 echo "WORDS_BIGENDIAN=yes" >> $config_mak
817 echo "#define WORDS_BIGENDIAN 1" >> $config_h
819 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
820 if test "$mingw32" = "yes" ; then
821 echo "CONFIG_WIN32=yes" >> $config_mak
822 echo "#define CONFIG_WIN32 1" >> $config_h
823 else
824 cat > $TMPC << EOF
825 #include <byteswap.h>
826 int main(void) { return bswap_32(0); }
828 if $cc -o $TMPE $TMPC 2> /dev/null ; then
829 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
832 if test "$darwin" = "yes" ; then
833 echo "CONFIG_DARWIN=yes" >> $config_mak
834 echo "#define CONFIG_DARWIN 1" >> $config_h
836 if test "$solaris" = "yes" ; then
837 echo "CONFIG_SOLARIS=yes" >> $config_mak
838 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
839 if test "$needs_libsunmath" = "yes" ; then
840 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
841 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
844 if test -n "$sparc_cpu"; then
845 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
846 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
848 if test "$gdbstub" = "yes" ; then
849 echo "CONFIG_GDBSTUB=yes" >> $config_mak
850 echo "#define CONFIG_GDBSTUB 1" >> $config_h
852 if test "$gprof" = "yes" ; then
853 echo "TARGET_GPROF=yes" >> $config_mak
854 echo "#define HAVE_GPROF 1" >> $config_h
856 if test "$static" = "yes" ; then
857 echo "CONFIG_STATIC=yes" >> $config_mak
858 echo "#define CONFIG_STATIC 1" >> $config_h
860 if test $profiler = "yes" ; then
861 echo "#define CONFIG_PROFILER 1" >> $config_h
863 if test "$slirp" = "yes" ; then
864 echo "CONFIG_SLIRP=yes" >> $config_mak
865 echo "#define CONFIG_SLIRP 1" >> $config_h
867 if test "$adlib" = "yes" ; then
868 echo "CONFIG_ADLIB=yes" >> $config_mak
869 echo "#define CONFIG_ADLIB 1" >> $config_h
871 if test "$oss" = "yes" ; then
872 echo "CONFIG_OSS=yes" >> $config_mak
873 echo "#define CONFIG_OSS 1" >> $config_h
875 if test "$coreaudio" = "yes" ; then
876 echo "CONFIG_COREAUDIO=yes" >> $config_mak
877 echo "#define CONFIG_COREAUDIO 1" >> $config_h
879 if test "$alsa" = "yes" ; then
880 echo "CONFIG_ALSA=yes" >> $config_mak
881 echo "#define CONFIG_ALSA 1" >> $config_h
883 if test "$dsound" = "yes" ; then
884 echo "CONFIG_DSOUND=yes" >> $config_mak
885 echo "#define CONFIG_DSOUND 1" >> $config_h
887 if test "$fmod" = "yes" ; then
888 echo "CONFIG_FMOD=yes" >> $config_mak
889 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
890 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
891 echo "#define CONFIG_FMOD 1" >> $config_h
893 if test "$vnc_tls" = "yes" ; then
894 echo "CONFIG_VNC_TLS=yes" >> $config_mak
895 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
896 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
897 echo "#define CONFIG_VNC_TLS 1" >> $config_h
899 qemu_version=`head $source_path/VERSION`
900 echo "VERSION=$qemu_version" >>$config_mak
901 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
903 echo "SRC_PATH=$source_path" >> $config_mak
904 if [ "$source_path_used" = "yes" ]; then
905 echo "VPATH=$source_path" >> $config_mak
907 echo "TARGET_DIRS=$target_list" >> $config_mak
908 if [ "$build_docs" = "yes" ] ; then
909 echo "BUILD_DOCS=yes" >> $config_mak
911 if test "$static" = "yes"; then
912 sdl1=$sdl_static
913 else
914 sdl1=$sdl
916 if test "$sdl1" = "yes" ; then
917 echo "#define CONFIG_SDL 1" >> $config_h
918 echo "CONFIG_SDL=yes" >> $config_mak
919 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
920 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
921 else
922 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
924 if [ "${aa}" = "yes" ] ; then
925 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
926 else
927 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
930 if test "$cocoa" = "yes" ; then
931 echo "#define CONFIG_COCOA 1" >> $config_h
932 echo "CONFIG_COCOA=yes" >> $config_mak
935 # XXX: suppress that
936 if [ "$bsd" = "yes" ] ; then
937 echo "#define O_LARGEFILE 0" >> $config_h
938 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
939 echo "#define _BSD 1" >> $config_h
942 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
944 tools=
945 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
946 tools="qemu-img\$(EXESUF) $tools"
948 echo "TOOLS=$tools" >> $config_mak
950 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
952 for target in $target_list; do
953 target_dir="$target"
954 config_mak=$target_dir/config.mak
955 config_h=$target_dir/config.h
956 target_cpu=`echo $target | cut -d '-' -f 1`
957 target_bigendian="no"
958 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
959 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
960 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
961 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
962 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
963 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
964 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
965 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
966 [ "$target_cpu" = "ppc64h" ] && target_bigendian=yes
967 [ "$target_cpu" = "mips" ] && target_bigendian=yes
968 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
969 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
970 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
971 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
972 target_softmmu="no"
973 target_user_only="no"
974 target_linux_user="no"
975 target_darwin_user="no"
976 case "$target" in
977 ${target_cpu}-softmmu)
978 target_softmmu="yes"
980 ${target_cpu}-linux-user)
981 target_user_only="yes"
982 target_linux_user="yes"
984 ${target_cpu}-darwin-user)
985 target_user_only="yes"
986 target_darwin_user="yes"
989 echo "ERROR: Target '$target' not recognised"
990 exit 1
992 esac
994 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
995 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
996 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
997 echo "To build QEMU without graphical output configure with --disable-gfx-check"
998 echo "Note that this will disable all output from the virtual graphics card."
999 exit 1;
1002 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1004 test -f $config_h && mv $config_h ${config_h}~
1006 mkdir -p $target_dir
1007 mkdir -p $target_dir/fpu
1008 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1009 mkdir -p $target_dir/nwfpe
1013 # don't use ln -sf as not all "ln -sf" over write the file/link
1015 rm -f $target_dir/Makefile
1016 ln -s $source_path/Makefile.target $target_dir/Makefile
1019 echo "# Automatically generated by configure - do not modify" > $config_mak
1020 echo "/* Automatically generated by configure - do not modify */" > $config_h
1023 echo "include ../config-host.mak" >> $config_mak
1024 echo "#include \"../config-host.h\"" >> $config_h
1026 bflt="no"
1027 elfload32="no"
1028 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1029 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1031 if test "$target_cpu" = "i386" ; then
1032 echo "TARGET_ARCH=i386" >> $config_mak
1033 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1034 echo "#define TARGET_I386 1" >> $config_h
1035 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1036 echo "#define USE_KQEMU 1" >> $config_h
1038 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1039 echo "TARGET_ARCH=arm" >> $config_mak
1040 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1041 echo "#define TARGET_ARM 1" >> $config_h
1042 bflt="yes"
1043 elif test "$target_cpu" = "sparc" ; then
1044 echo "TARGET_ARCH=sparc" >> $config_mak
1045 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1046 echo "#define TARGET_SPARC 1" >> $config_h
1047 elif test "$target_cpu" = "sparc64" ; then
1048 echo "TARGET_ARCH=sparc64" >> $config_mak
1049 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1050 echo "#define TARGET_SPARC 1" >> $config_h
1051 echo "#define TARGET_SPARC64 1" >> $config_h
1052 elfload32="yes"
1053 elif test "$target_cpu" = "sparc32plus" ; then
1054 echo "TARGET_ARCH=sparc64" >> $config_mak
1055 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1056 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1057 echo "#define TARGET_SPARC 1" >> $config_h
1058 echo "#define TARGET_SPARC64 1" >> $config_h
1059 echo "#define TARGET_ABI32 1" >> $config_h
1060 elif test "$target_cpu" = "ppc" ; then
1061 echo "TARGET_ARCH=ppc" >> $config_mak
1062 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1063 echo "#define TARGET_PPC 1" >> $config_h
1064 elif test "$target_cpu" = "ppcemb" ; then
1065 echo "TARGET_ARCH=ppcemb" >> $config_mak
1066 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1067 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1068 echo "#define TARGET_PPC 1" >> $config_h
1069 echo "#define TARGET_PPCEMB 1" >> $config_h
1070 elif test "$target_cpu" = "ppc64" ; then
1071 echo "TARGET_ARCH=ppc64" >> $config_mak
1072 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1073 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1074 echo "#define TARGET_PPC 1" >> $config_h
1075 echo "#define TARGET_PPC64 1" >> $config_h
1076 elif test "$target_cpu" = "ppc64abi32" ; then
1077 echo "TARGET_ARCH=ppc64" >> $config_mak
1078 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1079 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1080 echo "#define TARGET_PPC 1" >> $config_h
1081 echo "#define TARGET_PPC64 1" >> $config_h
1082 echo "#define TARGET_ABI32 1" >> $config_h
1083 elif test "$target_cpu" = "ppc64h" ; then
1084 echo "TARGET_ARCH=ppc64h" >> $config_mak
1085 echo "#define TARGET_ARCH \"ppc64h\"" >> $config_h
1086 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1087 echo "#define TARGET_PPC 1" >> $config_h
1088 echo "#define TARGET_PPC64 1" >> $config_h
1089 echo "#define TARGET_PPC64H 1" >> $config_h
1090 elif test "$target_cpu" = "x86_64" ; then
1091 echo "TARGET_ARCH=x86_64" >> $config_mak
1092 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1093 echo "#define TARGET_I386 1" >> $config_h
1094 echo "#define TARGET_X86_64 1" >> $config_h
1095 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1096 echo "#define USE_KQEMU 1" >> $config_h
1098 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1099 echo "TARGET_ARCH=mips" >> $config_mak
1100 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1101 echo "#define TARGET_MIPS 1" >> $config_h
1102 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1103 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1104 echo "TARGET_ARCH=mipsn32" >> $config_mak
1105 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1106 echo "#define TARGET_MIPS 1" >> $config_h
1107 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1108 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1109 echo "TARGET_ARCH=mips64" >> $config_mak
1110 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1111 echo "#define TARGET_MIPS 1" >> $config_h
1112 echo "#define TARGET_MIPS64 1" >> $config_h
1113 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1114 elif test "$target_cpu" = "cris" ; then
1115 echo "TARGET_ARCH=cris" >> $config_mak
1116 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1117 echo "#define TARGET_CRIS 1" >> $config_h
1118 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1119 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1120 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1121 echo "TARGET_ARCH=sh4" >> $config_mak
1122 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1123 echo "#define TARGET_SH4 1" >> $config_h
1124 bflt="yes"
1125 elif test "$target_cpu" = "m68k" ; then
1126 echo "TARGET_ARCH=m68k" >> $config_mak
1127 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1128 echo "#define TARGET_M68K 1" >> $config_h
1129 bflt="yes"
1130 elif test "$target_cpu" = "alpha" ; then
1131 echo "TARGET_ARCH=alpha" >> $config_mak
1132 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1133 echo "#define TARGET_ALPHA 1" >> $config_h
1134 else
1135 echo "Unsupported target CPU"
1136 exit 1
1138 if test "$target_bigendian" = "yes" ; then
1139 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1140 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1142 if test "$target_softmmu" = "yes" ; then
1143 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1144 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1146 if test "$target_user_only" = "yes" ; then
1147 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1148 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1150 if test "$target_linux_user" = "yes" ; then
1151 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1152 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1154 if test "$target_darwin_user" = "yes" ; then
1155 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1156 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1159 if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then
1160 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1161 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1163 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1164 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1165 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1167 # 32 bit ELF loader in addition to native 64 bit loader?
1168 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1169 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1170 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1173 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1175 done # for target in $targets
1177 # build tree in object directory if source path is different from current one
1178 if test "$source_path_used" = "yes" ; then
1179 DIRS="tests tests/cris slirp audio"
1180 FILES="Makefile tests/Makefile"
1181 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1182 for dir in $DIRS ; do
1183 mkdir -p $dir
1184 done
1185 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1186 for f in $FILES ; do
1187 rm -f $f
1188 ln -s $source_path/$f $f
1189 done
1192 rm -f $TMPO $TMPC $TMPE $TMPS