Remove stray uses of vl.h.
[qemu/mini2440.git] / configure
blob205eee8cacfd6962ad04a1351cb71fa840dfe664
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 werror="no"
217 # generate compile errors on warnings for development builds
218 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
219 #werror="yes";
222 for opt do
223 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
224 case "$opt" in
225 --help|-h) show_help=yes
227 --prefix=*) prefix="$optarg"
229 --interp-prefix=*) interp_prefix="$optarg"
231 --source-path=*) source_path="$optarg"
232 source_path_used="yes"
234 --cross-prefix=*) cross_prefix="$optarg"
236 --cc=*) cc="$optarg"
237 gcc3_search="no"
239 --host-cc=*) host_cc="$optarg"
241 --make=*) make="$optarg"
243 --install=*) install="$optarg"
245 --extra-cflags=*) CFLAGS="$optarg"
247 --extra-ldflags=*) LDFLAGS="$optarg"
249 --cpu=*) cpu="$optarg"
251 --target-list=*) target_list="$optarg"
253 --enable-gprof) gprof="yes"
255 --static) static="yes"
257 --disable-sdl) sdl="no"
259 --enable-coreaudio) coreaudio="yes"
261 --enable-alsa) alsa="yes"
263 --enable-dsound) dsound="yes"
265 --enable-fmod) fmod="yes"
267 --fmod-lib=*) fmod_lib="$optarg"
269 --fmod-inc=*) fmod_inc="$optarg"
271 --disable-vnc-tls) vnc_tls="no"
273 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
275 --disable-slirp) slirp="no"
277 --enable-adlib) adlib="yes"
279 --disable-kqemu) kqemu="no"
281 --enable-profiler) profiler="yes"
283 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
285 --disable-gfx-check) check_gfx="no"
287 --disable-gcc-check) check_gcc="no"
289 --disable-system) softmmu="no"
291 --enable-system) softmmu="yes"
293 --disable-linux-user) linux_user="no"
295 --enable-linux-user) linux_user="yes"
297 --disable-darwin-user) darwin_user="no"
299 --enable-darwin-user) darwin_user="yes"
301 --enable-uname-release=*) uname_release="$optarg"
303 --sparc_cpu=*)
304 sparc_cpu="$optarg"
305 case $sparc_cpu in
306 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
307 target_cpu="sparc"; cpu="sparc" ;;
308 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
309 target_cpu="sparc"; cpu="sparc" ;;
310 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
311 target_cpu="sparc64"; cpu="sparc64" ;;
312 *) echo "undefined SPARC architecture. Exiting";exit 1;;
313 esac
315 --enable-werror) werror="yes"
317 --disable-werror) werror="no"
319 *) echo "ERROR: unknown option $opt"; show_help="yes"
321 esac
322 done
324 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
325 AIOLIBS=
326 else
327 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
328 AIOLIBS="-lrt -lpthread"
331 # default flags for all hosts
332 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
333 LDFLAGS="$LDFLAGS -g"
334 if test "$werror" = "yes" ; then
335 CFLAGS="$CFLAGS -Werror"
339 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
340 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
342 case $cpu in
343 sparc) if test -z "$sparc_cpu" ; then
344 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
345 ARCH_LDFLAGS="-m32"
346 else
347 ARCH_CFLAGS="${SP_CFLAGS}"
348 ARCH_LDFLAGS="${SP_LDFLAGS}"
351 sparc64) if test -z "$sparc_cpu" ; then
352 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
353 ARCH_LDFLAGS="-m64"
354 else
355 ARCH_CFLAGS="${SP_CFLAGS}"
356 ARCH_LDFLAGS="${SP_LDFLAGS}"
359 esac
361 if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then
362 CFLAGS="${CFLAGS} -m64"
363 OS_CFLAGS="${OS_CFLAGS} -m64"
366 if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then
367 CFLAGS="${CFLAGS} -m32"
368 OS_CFLAGS="${OS_CFLAGS} -m32"
371 if test x"$show_help" = x"yes" ; then
372 cat << EOF
374 Usage: configure [options]
375 Options: [defaults in brackets after descriptions]
378 echo "Standard options:"
379 echo " --help print this message"
380 echo " --prefix=PREFIX install in PREFIX [$prefix]"
381 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
382 echo " use %M for cpu name [$interp_prefix]"
383 echo " --target-list=LIST set target list [$target_list]"
384 echo ""
385 echo "kqemu kernel acceleration support:"
386 echo " --disable-kqemu disable kqemu support"
387 echo ""
388 echo "Advanced options (experts only):"
389 echo " --source-path=PATH path of source code [$source_path]"
390 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
391 echo " --cc=CC use C compiler CC [$cc]"
392 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
393 echo " --make=MAKE use specified make [$make]"
394 echo " --install=INSTALL use specified install [$install]"
395 echo " --static enable static build [$static]"
396 echo " --disable-werror disable compilation abort on warning"
397 echo " --disable-sdl disable SDL"
398 echo " --enable-cocoa enable COCOA (Mac OS X only)"
399 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
400 echo " --enable-adlib enable Adlib emulation"
401 echo " --enable-coreaudio enable Coreaudio audio driver"
402 echo " --enable-alsa enable ALSA audio driver"
403 echo " --enable-fmod enable FMOD audio driver"
404 echo " --enable-dsound enable DirectSound audio driver"
405 echo " --disable-vnc-tls disable TLS encryption for VNC server"
406 echo " --enable-system enable all system emulation targets"
407 echo " --disable-system disable all system emulation targets"
408 echo " --enable-linux-user enable all linux usermode emulation targets"
409 echo " --disable-linux-user disable all linux usermode emulation targets"
410 echo " --enable-darwin-user enable all darwin usermode emulation targets"
411 echo " --disable-darwin-user disable all darwin usermode emulation targets"
412 echo " --fmod-lib path to FMOD library"
413 echo " --fmod-inc path to FMOD includes"
414 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
415 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
416 echo ""
417 echo "NOTE: The object files are built at the place where configure is launched"
418 exit 1
421 cc="${cross_prefix}${cc}"
422 ar="${cross_prefix}${ar}"
423 strip="${cross_prefix}${strip}"
425 # check that the C compiler works.
426 cat > $TMPC <<EOF
427 int main(void) {}
430 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
431 : C compiler works ok
432 else
433 echo "ERROR: \"$cc\" either does not exist or does not work"
434 exit 1
437 if test "$mingw32" = "yes" ; then
438 linux="no"
439 EXESUF=".exe"
440 oss="no"
443 # Check for gcc4, error if pre-gcc4
444 if test "$check_gcc" = "yes" ; then
445 cat > $TMPC <<EOF
446 #if __GNUC__ < 4
447 #error gcc3
448 #endif
449 int main(){return 0;}
451 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
452 echo "WARNING: \"$cc\" looks like gcc 4.x"
453 found_compat_cc="no"
454 if test "$gcc3_search" = "yes" ; then
455 echo "Looking for gcc 3.x"
456 for compat_cc in $gcc3_list ; do
457 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
458 echo "Found \"$compat_cc\""
459 cc="$cross_prefix$compat_cc"
460 found_compat_cc="yes"
461 break
463 done
464 if test "$found_compat_cc" = "no" ; then
465 echo "gcc 3.x not found!"
468 if test "$found_compat_cc" = "no" ; then
469 echo "QEMU is known to have problems when compiled with gcc 4.x"
470 echo "It is recommended that you use gcc 3.x to build QEMU"
471 echo "To use this compiler anyway, configure with --disable-gcc-check"
472 exit 1;
478 # Solaris specific configure tool chain decisions
480 if test "$solaris" = "yes" ; then
482 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
483 # override the check with --disable-gcc-check
485 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
486 solgcc=`which $cc`
487 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
488 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
489 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
490 echo "or get the latest patch from SunSolve for gcc"
491 exit 1
494 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
495 if test -z "$solinst" ; then
496 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
497 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
498 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
499 exit 1
501 if test "$solinst" = "/usr/sbin/install" ; then
502 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
503 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
504 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
505 exit 1
507 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
508 if test -z "$sol_ar" ; then
509 echo "Error: No path includes ar"
510 if test -f /usr/ccs/bin/ar ; then
511 echo "Add /usr/ccs/bin to your path and rerun configure"
513 exit 1
518 if test -z "$target_list" ; then
519 # these targets are portable
520 if [ "$softmmu" = "yes" ] ; then
521 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"
523 # the following are Linux specific
524 if [ "$linux_user" = "yes" ] ; then
525 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 ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
527 # the following are Darwin specific
528 if [ "$darwin_user" = "yes" ] ; then
529 target_list="i386-darwin-user ppc-darwin-user $target_list"
531 else
532 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
534 if test -z "$target_list" ; then
535 echo "No targets enabled"
536 exit 1
539 if test -z "$cross_prefix" ; then
541 # ---
542 # big/little endian test
543 cat > $TMPC << EOF
544 #include <inttypes.h>
545 int main(int argc, char ** argv){
546 volatile uint32_t i=0x01234567;
547 return (*((uint8_t*)(&i))) == 0x67;
551 if $cc -o $TMPE $TMPC 2> /dev/null ; then
552 $TMPE && bigendian="yes"
553 else
554 echo big/little test failed
557 else
559 # if cross compiling, cannot launch a program, so make a static guess
560 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
561 bigendian="yes"
566 # host long bits test
567 hostlongbits="32"
568 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
569 hostlongbits="64"
572 # check gcc options support
573 cat > $TMPC <<EOF
574 int main(void) {
578 ##########################################
579 # SDL probe
581 sdl_too_old=no
583 if test -z "$sdl" ; then
584 sdl_config="sdl-config"
585 sdl=no
586 sdl_static=no
588 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
589 # win32 cross compilation case
590 sdl_config="i386-mingw32msvc-sdl-config"
591 sdl=yes
592 else
593 # normal SDL probe
594 cat > $TMPC << EOF
595 #include <SDL.h>
596 #undef main /* We don't want SDL to override our main() */
597 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
599 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
600 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
601 if test "$_sdlversion" -lt 121 ; then
602 sdl_too_old=yes
603 else
604 if test "$cocoa" = "no" ; then
605 sdl=yes
609 # static link with sdl ?
610 if test "$sdl" = "yes" ; then
611 aa="no"
612 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
613 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
614 if [ "$aa" = "yes" ] ; then
615 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
618 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
619 sdl_static=yes
621 fi # static link
622 fi # sdl compile test
623 fi # cross compilation
624 else
625 # Make sure to disable cocoa if sdl was set
626 if test "$sdl" = "yes" ; then
627 cocoa="no"
628 coreaudio="no"
630 fi # -z $sdl
632 ##########################################
633 # VNC TLS detection
634 if test "$vnc_tls" = "yes" ; then
635 `pkg-config gnutls` || vnc_tls="no"
637 if test "$vnc_tls" = "yes" ; then
638 vnc_tls_cflags=`pkg-config --cflags gnutls`
639 vnc_tls_libs=`pkg-config --libs gnutls`
642 ##########################################
643 # alsa sound support libraries
645 if test "$alsa" = "yes" ; then
646 cat > $TMPC << EOF
647 #include <alsa/asoundlib.h>
648 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
650 if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
652 else
653 echo
654 echo "Error: Could not find alsa"
655 echo "Make sure to have the alsa libs and headers installed."
656 echo
657 exit 1
661 # Check if tools are available to build documentation.
662 if [ -x "`which texi2html 2>/dev/null`" ] && \
663 [ -x "`which pod2man 2>/dev/null`" ]; then
664 build_docs="yes"
667 if test "$mingw32" = "yes" ; then
668 if test -z "$prefix" ; then
669 prefix="/c/Program Files/Qemu"
671 mansuffix=""
672 datasuffix=""
673 docsuffix=""
674 binsuffix=""
675 else
676 if test -z "$prefix" ; then
677 prefix="/usr/local"
679 mansuffix="/share/man"
680 datasuffix="/share/qemu"
681 docsuffix="/share/doc/qemu"
682 binsuffix="/bin"
685 echo "Install prefix $prefix"
686 echo "BIOS directory $prefix$datasuffix"
687 echo "binary directory $prefix$binsuffix"
688 if test "$mingw32" = "no" ; then
689 echo "Manual directory $prefix$mansuffix"
690 echo "ELF interp prefix $interp_prefix"
692 echo "Source path $source_path"
693 echo "C compiler $cc"
694 echo "Host C compiler $host_cc"
695 echo "make $make"
696 echo "install $install"
697 echo "host CPU $cpu"
698 echo "host big endian $bigendian"
699 echo "target list $target_list"
700 echo "gprof enabled $gprof"
701 echo "profiler $profiler"
702 echo "static build $static"
703 echo "-Werror enabled $werror"
704 if test "$darwin" = "yes" ; then
705 echo "Cocoa support $cocoa"
707 echo "SDL support $sdl"
708 if test "$sdl" != "no" ; then
709 echo "SDL static link $sdl_static"
711 echo "mingw32 support $mingw32"
712 echo "Adlib support $adlib"
713 echo "CoreAudio support $coreaudio"
714 echo "ALSA support $alsa"
715 echo "DSound support $dsound"
716 if test "$fmod" = "yes"; then
717 if test -z $fmod_lib || test -z $fmod_inc; then
718 echo
719 echo "Error: You must specify path to FMOD library and headers"
720 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
721 echo
722 exit 1
724 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
725 else
726 fmod_support=""
728 echo "FMOD support $fmod $fmod_support"
729 echo "OSS support $oss"
730 echo "VNC TLS support $vnc_tls"
731 if test "$vnc_tls" = "yes" ; then
732 echo " TLS CFLAGS $vnc_tls_cflags"
733 echo " TLS LIBS $vnc_tls_libs"
735 if test -n "$sparc_cpu"; then
736 echo "Target Sparc Arch $sparc_cpu"
738 echo "kqemu support $kqemu"
739 echo "Documentation $build_docs"
740 [ ! -z "$uname_release" ] && \
741 echo "uname -r $uname_release"
743 if test $sdl_too_old = "yes"; then
744 echo "-> Your SDL version is too old - please upgrade to have SDL support"
746 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
747 echo "The error log from compiling the libSDL test is: "
748 cat /tmp/qemu-$$-sdl-config.log
750 rm -f /tmp/qemu-$$-sdl-config.log
751 #if test "$sdl_static" = "no"; then
752 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
754 config_mak="config-host.mak"
755 config_h="config-host.h"
757 #echo "Creating $config_mak and $config_h"
759 test -f $config_h && mv $config_h ${config_h}~
761 echo "# Automatically generated by configure - do not modify" > $config_mak
762 echo "# Configured with: $0 $@" >> $config_mak
763 echo "/* Automatically generated by configure - do not modify */" > $config_h
765 echo "prefix=$prefix" >> $config_mak
766 echo "bindir=\${prefix}$binsuffix" >> $config_mak
767 echo "mandir=\${prefix}$mansuffix" >> $config_mak
768 echo "datadir=\${prefix}$datasuffix" >> $config_mak
769 echo "docdir=\${prefix}$docsuffix" >> $config_mak
770 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
771 echo "MAKE=$make" >> $config_mak
772 echo "INSTALL=$install" >> $config_mak
773 echo "CC=$cc" >> $config_mak
774 echo "HOST_CC=$host_cc" >> $config_mak
775 echo "AR=$ar" >> $config_mak
776 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
777 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
778 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
779 echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
780 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
781 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
782 echo "CFLAGS=$CFLAGS" >> $config_mak
783 echo "LDFLAGS=$LDFLAGS" >> $config_mak
784 echo "EXESUF=$EXESUF" >> $config_mak
785 echo "AIOLIBS=$AIOLIBS" >> $config_mak
786 if test "$cpu" = "i386" ; then
787 echo "ARCH=i386" >> $config_mak
788 echo "#define HOST_I386 1" >> $config_h
789 elif test "$cpu" = "x86_64" ; then
790 echo "ARCH=x86_64" >> $config_mak
791 echo "#define HOST_X86_64 1" >> $config_h
792 elif test "$cpu" = "armv4b" ; then
793 echo "ARCH=arm" >> $config_mak
794 echo "#define HOST_ARM 1" >> $config_h
795 elif test "$cpu" = "armv4l" ; then
796 echo "ARCH=arm" >> $config_mak
797 echo "#define HOST_ARM 1" >> $config_h
798 elif test "$cpu" = "powerpc" ; then
799 echo "ARCH=ppc" >> $config_mak
800 echo "#define HOST_PPC 1" >> $config_h
801 elif test "$cpu" = "mips" ; then
802 echo "ARCH=mips" >> $config_mak
803 echo "#define HOST_MIPS 1" >> $config_h
804 elif test "$cpu" = "mips64" ; then
805 echo "ARCH=mips64" >> $config_mak
806 echo "#define HOST_MIPS64 1" >> $config_h
807 elif test "$cpu" = "cris" ; then
808 echo "ARCH=cris" >> $config_mak
809 echo "#define HOST_CRIS 1" >> $config_h
810 elif test "$cpu" = "s390" ; then
811 echo "ARCH=s390" >> $config_mak
812 echo "#define HOST_S390 1" >> $config_h
813 elif test "$cpu" = "alpha" ; then
814 echo "ARCH=alpha" >> $config_mak
815 echo "#define HOST_ALPHA 1" >> $config_h
816 elif test "$cpu" = "sparc" ; then
817 echo "ARCH=sparc" >> $config_mak
818 echo "#define HOST_SPARC 1" >> $config_h
819 elif test "$cpu" = "sparc64" ; then
820 echo "ARCH=sparc64" >> $config_mak
821 echo "#define HOST_SPARC64 1" >> $config_h
822 elif test "$cpu" = "ia64" ; then
823 echo "ARCH=ia64" >> $config_mak
824 echo "#define HOST_IA64 1" >> $config_h
825 elif test "$cpu" = "m68k" ; then
826 echo "ARCH=m68k" >> $config_mak
827 echo "#define HOST_M68K 1" >> $config_h
828 else
829 echo "Unsupported CPU = $cpu"
830 exit 1
832 if test "$bigendian" = "yes" ; then
833 echo "WORDS_BIGENDIAN=yes" >> $config_mak
834 echo "#define WORDS_BIGENDIAN 1" >> $config_h
836 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
837 if test "$mingw32" = "yes" ; then
838 echo "CONFIG_WIN32=yes" >> $config_mak
839 echo "#define CONFIG_WIN32 1" >> $config_h
840 else
841 cat > $TMPC << EOF
842 #include <byteswap.h>
843 int main(void) { return bswap_32(0); }
845 if $cc -o $TMPE $TMPC 2> /dev/null ; then
846 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
849 if test "$darwin" = "yes" ; then
850 echo "CONFIG_DARWIN=yes" >> $config_mak
851 echo "#define CONFIG_DARWIN 1" >> $config_h
853 if test "$solaris" = "yes" ; then
854 echo "CONFIG_SOLARIS=yes" >> $config_mak
855 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
856 if test "$needs_libsunmath" = "yes" ; then
857 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
858 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
861 if test -n "$sparc_cpu"; then
862 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
863 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
865 if test "$gdbstub" = "yes" ; then
866 echo "CONFIG_GDBSTUB=yes" >> $config_mak
867 echo "#define CONFIG_GDBSTUB 1" >> $config_h
869 if test "$gprof" = "yes" ; then
870 echo "TARGET_GPROF=yes" >> $config_mak
871 echo "#define HAVE_GPROF 1" >> $config_h
873 if test "$static" = "yes" ; then
874 echo "CONFIG_STATIC=yes" >> $config_mak
875 echo "#define CONFIG_STATIC 1" >> $config_h
877 if test $profiler = "yes" ; then
878 echo "#define CONFIG_PROFILER 1" >> $config_h
880 if test "$slirp" = "yes" ; then
881 echo "CONFIG_SLIRP=yes" >> $config_mak
882 echo "#define CONFIG_SLIRP 1" >> $config_h
884 if test "$adlib" = "yes" ; then
885 echo "CONFIG_ADLIB=yes" >> $config_mak
886 echo "#define CONFIG_ADLIB 1" >> $config_h
888 if test "$oss" = "yes" ; then
889 echo "CONFIG_OSS=yes" >> $config_mak
890 echo "#define CONFIG_OSS 1" >> $config_h
892 if test "$coreaudio" = "yes" ; then
893 echo "CONFIG_COREAUDIO=yes" >> $config_mak
894 echo "#define CONFIG_COREAUDIO 1" >> $config_h
896 if test "$alsa" = "yes" ; then
897 echo "CONFIG_ALSA=yes" >> $config_mak
898 echo "#define CONFIG_ALSA 1" >> $config_h
900 if test "$dsound" = "yes" ; then
901 echo "CONFIG_DSOUND=yes" >> $config_mak
902 echo "#define CONFIG_DSOUND 1" >> $config_h
904 if test "$fmod" = "yes" ; then
905 echo "CONFIG_FMOD=yes" >> $config_mak
906 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
907 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
908 echo "#define CONFIG_FMOD 1" >> $config_h
910 if test "$vnc_tls" = "yes" ; then
911 echo "CONFIG_VNC_TLS=yes" >> $config_mak
912 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
913 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
914 echo "#define CONFIG_VNC_TLS 1" >> $config_h
916 qemu_version=`head $source_path/VERSION`
917 echo "VERSION=$qemu_version" >>$config_mak
918 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
920 echo "SRC_PATH=$source_path" >> $config_mak
921 if [ "$source_path_used" = "yes" ]; then
922 echo "VPATH=$source_path" >> $config_mak
924 echo "TARGET_DIRS=$target_list" >> $config_mak
925 if [ "$build_docs" = "yes" ] ; then
926 echo "BUILD_DOCS=yes" >> $config_mak
928 if test "$static" = "yes"; then
929 sdl1=$sdl_static
930 else
931 sdl1=$sdl
933 if test "$sdl1" = "yes" ; then
934 echo "#define CONFIG_SDL 1" >> $config_h
935 echo "CONFIG_SDL=yes" >> $config_mak
936 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
937 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
938 else
939 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
941 if [ "${aa}" = "yes" ] ; then
942 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
943 else
944 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
947 if test "$cocoa" = "yes" ; then
948 echo "#define CONFIG_COCOA 1" >> $config_h
949 echo "CONFIG_COCOA=yes" >> $config_mak
952 # XXX: suppress that
953 if [ "$bsd" = "yes" ] ; then
954 echo "#define O_LARGEFILE 0" >> $config_h
955 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
956 echo "#define _BSD 1" >> $config_h
959 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
961 tools=
962 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
963 tools="qemu-img\$(EXESUF) $tools"
965 echo "TOOLS=$tools" >> $config_mak
967 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
969 for target in $target_list; do
970 target_dir="$target"
971 config_mak=$target_dir/config.mak
972 config_h=$target_dir/config.h
973 target_cpu=`echo $target | cut -d '-' -f 1`
974 target_bigendian="no"
975 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
976 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
977 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
978 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
979 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
980 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
981 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
982 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
983 [ "$target_cpu" = "mips" ] && target_bigendian=yes
984 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
985 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
986 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
987 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
988 target_softmmu="no"
989 target_user_only="no"
990 target_linux_user="no"
991 target_darwin_user="no"
992 case "$target" in
993 ${target_cpu}-softmmu)
994 target_softmmu="yes"
996 ${target_cpu}-linux-user)
997 target_user_only="yes"
998 target_linux_user="yes"
1000 ${target_cpu}-darwin-user)
1001 target_user_only="yes"
1002 target_darwin_user="yes"
1005 echo "ERROR: Target '$target' not recognised"
1006 exit 1
1008 esac
1010 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1011 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1012 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1013 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1014 echo "Note that this will disable all output from the virtual graphics card."
1015 exit 1;
1018 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1020 test -f $config_h && mv $config_h ${config_h}~
1022 mkdir -p $target_dir
1023 mkdir -p $target_dir/fpu
1024 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1025 mkdir -p $target_dir/nwfpe
1029 # don't use ln -sf as not all "ln -sf" over write the file/link
1031 rm -f $target_dir/Makefile
1032 ln -s $source_path/Makefile.target $target_dir/Makefile
1035 echo "# Automatically generated by configure - do not modify" > $config_mak
1036 echo "/* Automatically generated by configure - do not modify */" > $config_h
1039 echo "include ../config-host.mak" >> $config_mak
1040 echo "#include \"../config-host.h\"" >> $config_h
1042 bflt="no"
1043 elfload32="no"
1044 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1045 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1047 if test "$target_cpu" = "i386" ; then
1048 echo "TARGET_ARCH=i386" >> $config_mak
1049 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1050 echo "#define TARGET_I386 1" >> $config_h
1051 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1052 echo "#define USE_KQEMU 1" >> $config_h
1054 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1055 echo "TARGET_ARCH=arm" >> $config_mak
1056 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1057 echo "#define TARGET_ARM 1" >> $config_h
1058 bflt="yes"
1059 elif test "$target_cpu" = "sparc" ; then
1060 echo "TARGET_ARCH=sparc" >> $config_mak
1061 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1062 echo "#define TARGET_SPARC 1" >> $config_h
1063 elif test "$target_cpu" = "sparc64" ; then
1064 echo "TARGET_ARCH=sparc64" >> $config_mak
1065 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1066 echo "#define TARGET_SPARC 1" >> $config_h
1067 echo "#define TARGET_SPARC64 1" >> $config_h
1068 elfload32="yes"
1069 elif test "$target_cpu" = "sparc32plus" ; then
1070 echo "TARGET_ARCH=sparc64" >> $config_mak
1071 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1072 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1073 echo "#define TARGET_SPARC 1" >> $config_h
1074 echo "#define TARGET_SPARC64 1" >> $config_h
1075 echo "#define TARGET_ABI32 1" >> $config_h
1076 elif test "$target_cpu" = "ppc" ; then
1077 echo "TARGET_ARCH=ppc" >> $config_mak
1078 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1079 echo "#define TARGET_PPC 1" >> $config_h
1080 elif test "$target_cpu" = "ppcemb" ; then
1081 echo "TARGET_ARCH=ppcemb" >> $config_mak
1082 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1083 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1084 echo "#define TARGET_PPC 1" >> $config_h
1085 echo "#define TARGET_PPCEMB 1" >> $config_h
1086 elif test "$target_cpu" = "ppc64" ; then
1087 echo "TARGET_ARCH=ppc64" >> $config_mak
1088 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1089 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1090 echo "#define TARGET_PPC 1" >> $config_h
1091 echo "#define TARGET_PPC64 1" >> $config_h
1092 elif test "$target_cpu" = "ppc64abi32" ; then
1093 echo "TARGET_ARCH=ppc64" >> $config_mak
1094 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1095 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1096 echo "#define TARGET_PPC 1" >> $config_h
1097 echo "#define TARGET_PPC64 1" >> $config_h
1098 echo "#define TARGET_ABI32 1" >> $config_h
1099 elif test "$target_cpu" = "x86_64" ; then
1100 echo "TARGET_ARCH=x86_64" >> $config_mak
1101 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1102 echo "#define TARGET_I386 1" >> $config_h
1103 echo "#define TARGET_X86_64 1" >> $config_h
1104 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1105 echo "#define USE_KQEMU 1" >> $config_h
1107 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1108 echo "TARGET_ARCH=mips" >> $config_mak
1109 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1110 echo "#define TARGET_MIPS 1" >> $config_h
1111 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1112 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1113 echo "TARGET_ARCH=mipsn32" >> $config_mak
1114 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1115 echo "#define TARGET_MIPS 1" >> $config_h
1116 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1117 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1118 echo "TARGET_ARCH=mips64" >> $config_mak
1119 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1120 echo "#define TARGET_MIPS 1" >> $config_h
1121 echo "#define TARGET_MIPS64 1" >> $config_h
1122 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1123 elif test "$target_cpu" = "cris" ; then
1124 echo "TARGET_ARCH=cris" >> $config_mak
1125 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1126 echo "#define TARGET_CRIS 1" >> $config_h
1127 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1128 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1129 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1130 echo "TARGET_ARCH=sh4" >> $config_mak
1131 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1132 echo "#define TARGET_SH4 1" >> $config_h
1133 bflt="yes"
1134 elif test "$target_cpu" = "m68k" ; then
1135 echo "TARGET_ARCH=m68k" >> $config_mak
1136 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1137 echo "#define TARGET_M68K 1" >> $config_h
1138 bflt="yes"
1139 elif test "$target_cpu" = "alpha" ; then
1140 echo "TARGET_ARCH=alpha" >> $config_mak
1141 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1142 echo "#define TARGET_ALPHA 1" >> $config_h
1143 else
1144 echo "Unsupported target CPU"
1145 exit 1
1147 if test "$target_bigendian" = "yes" ; then
1148 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1149 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1151 if test "$target_softmmu" = "yes" ; then
1152 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1153 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1155 if test "$target_user_only" = "yes" ; then
1156 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1157 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1159 if test "$target_linux_user" = "yes" ; then
1160 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1161 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1163 if test "$target_darwin_user" = "yes" ; then
1164 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1165 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1168 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
1169 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1170 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1172 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1173 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1174 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1176 # 32 bit ELF loader in addition to native 64 bit loader?
1177 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1178 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1179 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1182 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1184 done # for target in $targets
1186 # build tree in object directory if source path is different from current one
1187 if test "$source_path_used" = "yes" ; then
1188 DIRS="tests tests/cris slirp audio"
1189 FILES="Makefile tests/Makefile"
1190 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1191 for dir in $DIRS ; do
1192 mkdir -p $dir
1193 done
1194 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1195 for f in $FILES ; do
1196 rm -f $f
1197 ln -s $source_path/$f $f
1198 done
1201 rm -f $TMPO $TMPC $TMPE $TMPS