3 # qemu configure script (c) 2003 Fabrice Bellard
5 # set temporary file name
6 if test ! -z "$TMPDIR" ; then
8 elif test ! -z "$TEMPDIR" ; then
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"
21 interp_prefix
="/usr/gnemul/qemu-%M"
26 gcc3_list
="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
35 i386|i486|i586|i686|i86pc|BePC
)
47 "Power Macintosh"|ppc|ppc64
)
116 OS_CFLAGS
="-mno-cygwin"
117 VL_OS_LDFLAGS
="-mno-cygwin"
118 if [ "$cpu" = "i386" ] ; then
124 if [ "$cpu" = "i386" ] ; then
130 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
137 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
156 OS_CFLAGS
="-mdynamic-no-pic"
162 needs_libsunmath
="no"
163 solarisrev
=`uname -r | cut -f2 -d.`
164 # have to select again, because `uname -m` returns i86pc
165 # even on an x86_64 box.
166 solariscpu
=`isainfo -k`
167 if test "${solariscpu}" = "amd64" ; then
170 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
171 if test "$solarisrev" -le 9 ; then
172 if test -f /opt
/SUNWspro
/prod
/lib
/libsunmath.so
.1; then
173 needs_libsunmath
="yes"
175 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
176 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
177 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
178 echo "Studio 11 can be downloaded from www.sun.com."
182 if test "$solarisrev" -ge 9 ; then
186 if test -f /usr
/include
/sys
/soundcard.h
; then
194 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
198 if [ "$cpu" = "ia64" ] ; then
206 if [ "$bsd" = "yes" ] ; then
207 if [ "$darwin" != "yes" ] ; then
213 source_path
=`dirname "$0"`
214 if [ -z "$source_path" ]; then
217 source_path
=`cd "$source_path"; pwd`
219 if test "$source_path" = `pwd` ; then
220 source_path_used
="no"
222 source_path_used
="yes"
226 # generate compile errors on warnings for development builds
227 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
232 optarg
=`expr "x$opt" : 'x[^=]*=\(.*\)'`
234 --help|
-h) show_help
=yes
236 --prefix=*) prefix
="$optarg"
238 --interp-prefix=*) interp_prefix
="$optarg"
240 --source-path=*) source_path
="$optarg"
241 source_path_used
="yes"
243 --cross-prefix=*) cross_prefix
="$optarg"
248 --host-cc=*) host_cc
="$optarg"
250 --make=*) make="$optarg"
252 --install=*) install="$optarg"
254 --extra-cflags=*) CFLAGS
="$optarg"
256 --extra-ldflags=*) LDFLAGS
="$optarg"
258 --cpu=*) cpu
="$optarg"
260 --target-list=*) target_list
="$optarg"
262 --enable-gprof) gprof
="yes"
264 --static) static
="yes"
266 --disable-sdl) sdl
="no"
268 --enable-coreaudio) coreaudio
="yes"
270 --enable-alsa) alsa
="yes"
272 --enable-dsound) dsound
="yes"
274 --enable-fmod) fmod
="yes"
276 --fmod-lib=*) fmod_lib
="$optarg"
278 --fmod-inc=*) fmod_inc
="$optarg"
280 --disable-vnc-tls) vnc_tls
="no"
282 --enable-mingw32) mingw32
="yes" ; cross_prefix
="i386-mingw32-" ; linux_user
="no"
284 --disable-slirp) slirp
="no"
286 --enable-adlib) adlib
="yes"
288 --disable-kqemu) kqemu
="no"
290 --enable-kvm) kvm
="yes"
292 --enable-profiler) profiler
="yes"
294 --kernel-path=*) kernel_path
="$optarg"
296 --enable-cocoa) cocoa
="yes" ; coreaudio
="yes" ; sdl
="no"
298 --disable-gfx-check) check_gfx
="no"
300 --disable-gcc-check) check_gcc
="no"
302 --disable-system) softmmu
="no"
304 --enable-system) softmmu
="yes"
306 --disable-linux-user) linux_user
="no"
308 --enable-linux-user) linux_user
="yes"
310 --disable-darwin-user) darwin_user
="no"
312 --enable-darwin-user) darwin_user
="yes"
314 --enable-uname-release=*) uname_release
="$optarg"
319 v7|v8
) SP_CFLAGS
="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m32"
320 target_cpu
="sparc"; cpu
="sparc" ;;
321 v8plus|v8plusa
) SP_CFLAGS
="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m32"
322 target_cpu
="sparc"; cpu
="sparc" ;;
323 v9
) SP_CFLAGS
="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m64"
324 target_cpu
="sparc64"; cpu
="sparc64" ;;
325 *) echo "undefined SPARC architecture. Exiting";exit 1;;
328 --enable-werror) werror
="yes"
330 --disable-werror) werror
="no"
332 *) echo "ERROR: unknown option $opt"; show_help
="yes"
337 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
340 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
341 AIOLIBS
="-lrt -lpthread"
344 # default flags for all hosts
345 CFLAGS
="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
346 LDFLAGS
="$LDFLAGS -g"
347 if test "$werror" = "yes" ; then
348 CFLAGS
="$CFLAGS -Werror"
352 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
353 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
356 sparc
) if test -z "$sparc_cpu" ; then
357 ARCH_CFLAGS
="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
360 ARCH_CFLAGS
="${SP_CFLAGS}"
361 ARCH_LDFLAGS
="${SP_LDFLAGS}"
364 sparc64
) if test -z "$sparc_cpu" ; then
365 ARCH_CFLAGS
="-m64 -mcpu=ultrasparc -D__sparc_v9__"
368 ARCH_CFLAGS
="${SP_CFLAGS}"
369 ARCH_LDFLAGS
="${SP_LDFLAGS}"
373 ARCH_CFLAGS
="-march=z900"
377 if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then
378 CFLAGS
="${CFLAGS} -m64"
379 OS_CFLAGS
="${OS_CFLAGS} -m64"
380 OS_LDFLAGS
="${OS_LDFLAGS} -m64"
383 if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then
384 CFLAGS
="${CFLAGS} -m32"
385 OS_CFLAGS
="${OS_CFLAGS} -m32"
388 if test x
"$show_help" = x
"yes" ; then
391 Usage: configure [options]
392 Options: [defaults in brackets after descriptions]
395 echo "Standard options:"
396 echo " --help print this message"
397 echo " --prefix=PREFIX install in PREFIX [$prefix]"
398 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
399 echo " use %M for cpu name [$interp_prefix]"
400 echo " --target-list=LIST set target list [$target_list]"
402 echo "kqemu kernel acceleration support:"
403 echo " --disable-kqemu disable kqemu support"
404 echo " --kernel-path=PATH set the kernel path (configure probes it)"
405 echo " --enable-kvm enable kernel virtual machine support"
407 echo "Advanced options (experts only):"
408 echo " --source-path=PATH path of source code [$source_path]"
409 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
410 echo " --cc=CC use C compiler CC [$cc]"
411 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
412 echo " --make=MAKE use specified make [$make]"
413 echo " --install=INSTALL use specified install [$install]"
414 echo " --static enable static build [$static]"
415 echo " --disable-werror disable compilation abort on warning"
416 echo " --disable-sdl disable SDL"
417 echo " --enable-cocoa enable COCOA (Mac OS X only)"
418 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
419 echo " --enable-adlib enable Adlib emulation"
420 echo " --enable-coreaudio enable Coreaudio audio driver"
421 echo " --enable-alsa enable ALSA audio driver"
422 echo " --enable-fmod enable FMOD audio driver"
423 echo " --enable-dsound enable DirectSound audio driver"
424 echo " --disable-vnc-tls disable TLS encryption for VNC server"
425 echo " --enable-system enable all system emulation targets"
426 echo " --disable-system disable all system emulation targets"
427 echo " --enable-linux-user enable all linux usermode emulation targets"
428 echo " --disable-linux-user disable all linux usermode emulation targets"
429 echo " --enable-darwin-user enable all darwin usermode emulation targets"
430 echo " --disable-darwin-user disable all darwin usermode emulation targets"
431 echo " --fmod-lib path to FMOD library"
432 echo " --fmod-inc path to FMOD includes"
433 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
434 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
436 echo "NOTE: The object files are built at the place where configure is launched"
440 cc
="${cross_prefix}${cc}"
441 ar="${cross_prefix}${ar}"
442 strip
="${cross_prefix}${strip}"
444 # check that the C compiler works.
449 if $cc -c -o $TMPO $TMPC 2> /dev
/null
; then
450 : C compiler works ok
452 echo "ERROR: \"$cc\" either does not exist or does not work"
456 if test "$mingw32" = "yes" ; then
462 # Check for gcc4, error if pre-gcc4
463 if test "$check_gcc" = "yes" ; then
468 int main(){return 0;}
470 if "$cc" -o $TMPE $TMPC 2> /dev
/null
; then
471 echo "WARNING: \"$cc\" looks like gcc 4.x"
473 if test "$gcc3_search" = "yes" ; then
474 echo "Looking for gcc 3.x"
475 for compat_cc
in $gcc3_list ; do
476 if "$cross_prefix$compat_cc" --version 2> /dev
/null | fgrep
'(GCC) 3.' > /dev
/null
2>&1 ; then
477 echo "Found \"$compat_cc\""
478 cc
="$cross_prefix$compat_cc"
479 found_compat_cc
="yes"
483 if test "$found_compat_cc" = "no" ; then
484 echo "gcc 3.x not found!"
487 if test "$found_compat_cc" = "no" ; then
488 echo "QEMU is known to have problems when compiled with gcc 4.x"
489 echo "It is recommended that you use gcc 3.x to build QEMU"
490 echo "To use this compiler anyway, configure with --disable-gcc-check"
497 # Solaris specific configure tool chain decisions
499 if test "$solaris" = "yes" ; then
501 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
502 # override the check with --disable-gcc-check
504 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
506 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
507 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
508 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
509 echo "or get the latest patch from SunSolve for gcc"
513 solinst
=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
514 if test -z "$solinst" ; then
515 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
516 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
517 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
520 if test "$solinst" = "/usr/sbin/install" ; then
521 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
522 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
523 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
526 sol_ar
=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
527 if test -z "$sol_ar" ; then
528 echo "Error: No path includes ar"
529 if test -f /usr
/ccs
/bin
/ar ; then
530 echo "Add /usr/ccs/bin to your path and rerun configure"
537 if test -z "$target_list" ; then
538 # these targets are portable
539 if [ "$softmmu" = "yes" ] ; then
540 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 sh4eb-softmmu cris-softmmu"
542 # the following are Linux specific
543 if [ "$linux_user" = "yes" ] ; then
544 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 sh4eb-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
546 # the following are Darwin specific
547 if [ "$darwin_user" = "yes" ] ; then
548 target_list
="i386-darwin-user ppc-darwin-user $target_list"
551 target_list
=`echo "$target_list" | sed -e 's/,/ /g'`
553 if test -z "$target_list" ; then
554 echo "No targets enabled"
558 if test -z "$cross_prefix" ; then
561 # big/little endian test
563 #include <inttypes.h>
564 int main(int argc, char ** argv){
565 volatile uint32_t i=0x01234567;
566 return (*((uint8_t*)(&i))) == 0x67;
570 if $cc -o $TMPE $TMPC 2> /dev
/null
; then
571 $TMPE && bigendian
="yes"
573 echo big
/little
test failed
578 # if cross compiling, cannot launch a program, so make a static guess
579 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
585 # host long bits test
587 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
591 # check gcc options support
597 ##########################################
602 if test -z "$sdl" ; then
603 sdl_config
="sdl-config"
607 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
608 # win32 cross compilation case
609 sdl_config
="i386-mingw32msvc-sdl-config"
615 #undef main /* We don't want SDL to override our main() */
616 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
618 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp
/qemu-$$
-sdl-config.log
; then
619 _sdlversion
=`$sdl_config --version | sed 's/[^0-9]//g'`
620 if test "$_sdlversion" -lt 121 ; then
623 if test "$cocoa" = "no" ; then
628 # static link with sdl ?
629 if test "$sdl" = "yes" ; then
631 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa
="yes"
632 sdl_static_libs
=`$sdl_config --static-libs 2>/dev/null`
633 if [ "$aa" = "yes" ] ; then
634 sdl_static_libs
="$sdl_static_libs `aalib-config --static-libs`"
637 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev
/null
; then
641 fi # sdl compile test
642 fi # cross compilation
644 # Make sure to disable cocoa if sdl was set
645 if test "$sdl" = "yes" ; then
651 ##########################################
653 if test "$vnc_tls" = "yes" ; then
654 `pkg-config gnutls` || vnc_tls
="no"
656 if test "$vnc_tls" = "yes" ; then
657 vnc_tls_cflags
=`pkg-config --cflags gnutls`
658 vnc_tls_libs
=`pkg-config --libs gnutls`
661 ##########################################
662 # alsa sound support libraries
664 if test "$alsa" = "yes" ; then
666 #include <alsa/asoundlib.h>
667 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
669 if $cc -o $TMPE $TMPC -lasound 2> /dev
/null
; then
673 echo "Error: Could not find alsa"
674 echo "Make sure to have the alsa libs and headers installed."
680 # Check if tools are available to build documentation.
681 if [ -x "`which texi2html 2>/dev/null`" ] && \
682 [ -x "`which pod2man 2>/dev/null`" ]; then
686 if test "$mingw32" = "yes" ; then
687 if test -z "$prefix" ; then
688 prefix
="/c/Program Files/Qemu"
695 if test -z "$prefix" ; then
698 mansuffix
="/share/man"
699 datasuffix
="/share/qemu"
700 docsuffix
="/share/doc/qemu"
704 echo "Install prefix $prefix"
705 echo "BIOS directory $prefix$datasuffix"
706 echo "binary directory $prefix$binsuffix"
707 if test "$mingw32" = "no" ; then
708 echo "Manual directory $prefix$mansuffix"
709 echo "ELF interp prefix $interp_prefix"
711 echo "Source path $source_path"
712 echo "C compiler $cc"
713 echo "Host C compiler $host_cc"
715 echo "install $install"
717 echo "host big endian $bigendian"
718 echo "target list $target_list"
719 echo "gprof enabled $gprof"
720 echo "profiler $profiler"
721 echo "static build $static"
722 echo "-Werror enabled $werror"
723 if test "$darwin" = "yes" ; then
724 echo "Cocoa support $cocoa"
726 echo "SDL support $sdl"
727 if test "$sdl" != "no" ; then
728 echo "SDL static link $sdl_static"
730 echo "mingw32 support $mingw32"
731 echo "Adlib support $adlib"
732 echo "CoreAudio support $coreaudio"
733 echo "ALSA support $alsa"
734 echo "DSound support $dsound"
735 if test "$fmod" = "yes"; then
736 if test -z $fmod_lib ||
test -z $fmod_inc; then
738 echo "Error: You must specify path to FMOD library and headers"
739 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
743 fmod_support
=" (lib='$fmod_lib' include='$fmod_inc')"
747 echo "FMOD support $fmod $fmod_support"
748 echo "OSS support $oss"
749 echo "VNC TLS support $vnc_tls"
750 if test "$vnc_tls" = "yes" ; then
751 echo " TLS CFLAGS $vnc_tls_cflags"
752 echo " TLS LIBS $vnc_tls_libs"
754 if test -n "$sparc_cpu"; then
755 echo "Target Sparc Arch $sparc_cpu"
757 echo "kqemu support $kqemu"
758 echo "kvm support $kvm"
759 echo "Documentation $build_docs"
760 [ ! -z "$uname_release" ] && \
761 echo "uname -r $uname_release"
763 if test $sdl_too_old = "yes"; then
764 echo "-> Your SDL version is too old - please upgrade to have SDL support"
766 if [ -s /tmp
/qemu-$$
-sdl-config.log
]; then
767 echo "The error log from compiling the libSDL test is: "
768 cat /tmp
/qemu-$$
-sdl-config.log
770 rm -f /tmp
/qemu-$$
-sdl-config.log
771 #if test "$sdl_static" = "no"; then
772 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
774 config_mak
="config-host.mak"
775 config_h
="config-host.h"
777 #echo "Creating $config_mak and $config_h"
779 test -f $config_h && mv $config_h ${config_h}~
781 echo "# Automatically generated by configure - do not modify" > $config_mak
782 echo "# Configured with: $0 $@" >> $config_mak
783 echo "/* Automatically generated by configure - do not modify */" > $config_h
785 echo "prefix=$prefix" >> $config_mak
786 echo "bindir=\${prefix}$binsuffix" >> $config_mak
787 echo "mandir=\${prefix}$mansuffix" >> $config_mak
788 echo "datadir=\${prefix}$datasuffix" >> $config_mak
789 echo "docdir=\${prefix}$docsuffix" >> $config_mak
790 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
791 echo "MAKE=$make" >> $config_mak
792 echo "INSTALL=$install" >> $config_mak
793 echo "CC=$cc" >> $config_mak
794 echo "HOST_CC=$host_cc" >> $config_mak
795 echo "AR=$ar" >> $config_mak
796 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
797 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
798 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
799 echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
800 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
801 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
802 echo "CFLAGS=$CFLAGS" >> $config_mak
803 echo "LDFLAGS=$LDFLAGS" >> $config_mak
804 echo "EXESUF=$EXESUF" >> $config_mak
805 echo "AIOLIBS=$AIOLIBS" >> $config_mak
806 if test "$cpu" = "i386" ; then
807 echo "ARCH=i386" >> $config_mak
808 echo "#define HOST_I386 1" >> $config_h
809 elif test "$cpu" = "x86_64" ; then
810 echo "ARCH=x86_64" >> $config_mak
811 echo "#define HOST_X86_64 1" >> $config_h
812 elif test "$cpu" = "armv4b" ; then
813 echo "ARCH=arm" >> $config_mak
814 echo "#define HOST_ARM 1" >> $config_h
815 elif test "$cpu" = "armv4l" ; then
816 echo "ARCH=arm" >> $config_mak
817 echo "#define HOST_ARM 1" >> $config_h
818 elif test "$cpu" = "powerpc" ; then
819 echo "ARCH=ppc" >> $config_mak
820 echo "#define HOST_PPC 1" >> $config_h
821 elif test "$cpu" = "mips" ; then
822 echo "ARCH=mips" >> $config_mak
823 echo "#define HOST_MIPS 1" >> $config_h
824 elif test "$cpu" = "mips64" ; then
825 echo "ARCH=mips64" >> $config_mak
826 echo "#define HOST_MIPS64 1" >> $config_h
827 elif test "$cpu" = "cris" ; then
828 echo "ARCH=cris" >> $config_mak
829 echo "#define HOST_CRIS 1" >> $config_h
830 elif test "$cpu" = "s390" ; then
831 echo "ARCH=s390" >> $config_mak
832 echo "#define HOST_S390 1" >> $config_h
833 elif test "$cpu" = "alpha" ; then
834 echo "ARCH=alpha" >> $config_mak
835 echo "#define HOST_ALPHA 1" >> $config_h
836 elif test "$cpu" = "sparc" ; then
837 echo "ARCH=sparc" >> $config_mak
838 echo "#define HOST_SPARC 1" >> $config_h
839 elif test "$cpu" = "sparc64" ; then
840 echo "ARCH=sparc64" >> $config_mak
841 echo "#define HOST_SPARC64 1" >> $config_h
842 elif test "$cpu" = "ia64" ; then
843 echo "ARCH=ia64" >> $config_mak
844 echo "#define HOST_IA64 1" >> $config_h
845 elif test "$cpu" = "m68k" ; then
846 echo "ARCH=m68k" >> $config_mak
847 echo "#define HOST_M68K 1" >> $config_h
849 echo "Unsupported CPU = $cpu"
852 if test "$bigendian" = "yes" ; then
853 echo "WORDS_BIGENDIAN=yes" >> $config_mak
854 echo "#define WORDS_BIGENDIAN 1" >> $config_h
856 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
857 if test "$mingw32" = "yes" ; then
858 echo "CONFIG_WIN32=yes" >> $config_mak
859 echo "#define CONFIG_WIN32 1" >> $config_h
862 #include <byteswap.h>
863 int main(void) { return bswap_32(0); }
865 if $cc -o $TMPE $TMPC 2> /dev
/null
; then
866 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
869 if test "$darwin" = "yes" ; then
870 echo "CONFIG_DARWIN=yes" >> $config_mak
871 echo "#define CONFIG_DARWIN 1" >> $config_h
873 if test "$solaris" = "yes" ; then
874 echo "CONFIG_SOLARIS=yes" >> $config_mak
875 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
876 if test "$needs_libsunmath" = "yes" ; then
877 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
878 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
881 if test -n "$sparc_cpu"; then
882 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
883 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
885 if test "$gdbstub" = "yes" ; then
886 echo "CONFIG_GDBSTUB=yes" >> $config_mak
887 echo "#define CONFIG_GDBSTUB 1" >> $config_h
889 if test "$gprof" = "yes" ; then
890 echo "TARGET_GPROF=yes" >> $config_mak
891 echo "#define HAVE_GPROF 1" >> $config_h
893 if test "$static" = "yes" ; then
894 echo "CONFIG_STATIC=yes" >> $config_mak
895 echo "#define CONFIG_STATIC 1" >> $config_h
897 if test $profiler = "yes" ; then
898 echo "#define CONFIG_PROFILER 1" >> $config_h
900 if test "$slirp" = "yes" ; then
901 echo "CONFIG_SLIRP=yes" >> $config_mak
902 echo "#define CONFIG_SLIRP 1" >> $config_h
904 if test "$adlib" = "yes" ; then
905 echo "CONFIG_ADLIB=yes" >> $config_mak
906 echo "#define CONFIG_ADLIB 1" >> $config_h
908 if test "$oss" = "yes" ; then
909 echo "CONFIG_OSS=yes" >> $config_mak
910 echo "#define CONFIG_OSS 1" >> $config_h
912 if test "$coreaudio" = "yes" ; then
913 echo "CONFIG_COREAUDIO=yes" >> $config_mak
914 echo "#define CONFIG_COREAUDIO 1" >> $config_h
916 if test "$alsa" = "yes" ; then
917 echo "CONFIG_ALSA=yes" >> $config_mak
918 echo "#define CONFIG_ALSA 1" >> $config_h
920 if test "$dsound" = "yes" ; then
921 echo "CONFIG_DSOUND=yes" >> $config_mak
922 echo "#define CONFIG_DSOUND 1" >> $config_h
924 if test "$fmod" = "yes" ; then
925 echo "CONFIG_FMOD=yes" >> $config_mak
926 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
927 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
928 echo "#define CONFIG_FMOD 1" >> $config_h
930 if test "$vnc_tls" = "yes" ; then
931 echo "CONFIG_VNC_TLS=yes" >> $config_mak
932 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
933 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
934 echo "#define CONFIG_VNC_TLS 1" >> $config_h
936 qemu_version
=`head $source_path/VERSION`
937 echo "VERSION=$qemu_version" >>$config_mak
938 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
939 echo "#define KVM_VERSION \"kvm-devel\"" >> $config_h
941 echo "SRC_PATH=$source_path" >> $config_mak
942 if [ "$source_path_used" = "yes" ]; then
943 echo "VPATH=$source_path" >> $config_mak
945 echo "TARGET_DIRS=$target_list" >> $config_mak
946 if [ "$build_docs" = "yes" ] ; then
947 echo "BUILD_DOCS=yes" >> $config_mak
949 if test "$static" = "yes"; then
954 if test "$sdl1" = "yes" ; then
955 echo "#define CONFIG_SDL 1" >> $config_h
956 echo "CONFIG_SDL=yes" >> $config_mak
957 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
958 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
960 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
962 if [ "${aa}" = "yes" ] ; then
963 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
965 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
968 if test "$cocoa" = "yes" ; then
969 echo "#define CONFIG_COCOA 1" >> $config_h
970 echo "CONFIG_COCOA=yes" >> $config_mak
974 if [ "$bsd" = "yes" ] ; then
975 echo "#define O_LARGEFILE 0" >> $config_h
976 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
977 echo "#define _BSD 1" >> $config_h
980 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
983 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
984 tools
="qemu-img\$(EXESUF) $tools"
986 echo "TOOLS=$tools" >> $config_mak
988 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~
$config_h
990 for target
in $target_list; do
992 config_mak
=$target_dir/config.mak
993 config_h
=$target_dir/config.h
994 target_cpu
=`echo $target | cut -d '-' -f 1`
995 target_bigendian
="no"
996 [ "$target_cpu" = "armeb" ] && target_bigendian
=yes
997 [ "$target_cpu" = "sparc" ] && target_bigendian
=yes
998 [ "$target_cpu" = "sparc64" ] && target_bigendian
=yes
999 [ "$target_cpu" = "sparc32plus" ] && target_bigendian
=yes
1000 [ "$target_cpu" = "ppc" ] && target_bigendian
=yes
1001 [ "$target_cpu" = "ppcemb" ] && target_bigendian
=yes
1002 [ "$target_cpu" = "ppc64" ] && target_bigendian
=yes
1003 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian
=yes
1004 [ "$target_cpu" = "mips" ] && target_bigendian
=yes
1005 [ "$target_cpu" = "mipsn32" ] && target_bigendian
=yes
1006 [ "$target_cpu" = "mips64" ] && target_bigendian
=yes
1007 [ "$target_cpu" = "sh4eb" ] && target_bigendian
=yes
1008 [ "$target_cpu" = "m68k" ] && target_bigendian
=yes
1010 target_user_only
="no"
1011 target_linux_user
="no"
1012 target_darwin_user
="no"
1014 ${target_cpu}-softmmu)
1015 target_softmmu
="yes"
1017 ${target_cpu}-linux-user)
1018 target_user_only
="yes"
1019 target_linux_user
="yes"
1021 ${target_cpu}-darwin-user)
1022 target_user_only
="yes"
1023 target_darwin_user
="yes"
1026 echo "ERROR: Target '$target' not recognised"
1031 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1032 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1033 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1034 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1035 echo "Note that this will disable all output from the virtual graphics card."
1039 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1041 test -f $config_h && mv $config_h ${config_h}~
1043 mkdir
-p $target_dir
1044 mkdir
-p $target_dir/fpu
1045 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1046 mkdir
-p $target_dir/nwfpe
1050 # don't use ln -sf as not all "ln -sf" over write the file/link
1052 rm -f $target_dir/Makefile
1053 ln -s $source_path/Makefile.target
$target_dir/Makefile
1056 echo "# Automatically generated by configure - do not modify" > $config_mak
1057 echo "/* Automatically generated by configure - do not modify */" > $config_h
1060 echo "include ../config-host.mak" >> $config_mak
1061 echo "#include \"../config-host.h\"" >> $config_h
1065 interp_prefix1
=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1066 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1069 if test $kvm = "yes" -a "$target_softmmu" = "yes" -a \
1070 \
( "$cpu" = "i386" -o "$cpu" = "x86_64" -o "$cpu" = "ia64" \
); then
1071 echo "#define USE_KVM 1" >> $config_h
1072 echo "CONFIG_KVM_KERNEL_INC=$kernel_path/include" >> $config_mak
1076 if test "$target_cpu" = "i386" ; then
1077 echo "TARGET_ARCH=i386" >> $config_mak
1078 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1079 echo "#define TARGET_I386 1" >> $config_h
1080 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1081 echo "#define USE_KQEMU 1" >> $config_h
1084 elif test "$target_cpu" = "ia64" ; then
1085 echo "TARGET_ARCH=ia64" >> $config_mak
1086 echo "#define TARGET_ARCH \"ia64\"" >> $config_h
1087 echo "#define TARGET_IA64 1" >> $config_h
1089 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1090 echo "TARGET_ARCH=arm" >> $config_mak
1091 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1092 echo "#define TARGET_ARM 1" >> $config_h
1094 elif test "$target_cpu" = "sparc" ; then
1095 echo "TARGET_ARCH=sparc" >> $config_mak
1096 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1097 echo "#define TARGET_SPARC 1" >> $config_h
1098 elif test "$target_cpu" = "sparc64" ; then
1099 echo "TARGET_ARCH=sparc64" >> $config_mak
1100 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1101 echo "#define TARGET_SPARC 1" >> $config_h
1102 echo "#define TARGET_SPARC64 1" >> $config_h
1104 elif test "$target_cpu" = "sparc32plus" ; then
1105 echo "TARGET_ARCH=sparc64" >> $config_mak
1106 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1107 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1108 echo "#define TARGET_SPARC 1" >> $config_h
1109 echo "#define TARGET_SPARC64 1" >> $config_h
1110 echo "#define TARGET_ABI32 1" >> $config_h
1111 elif test "$target_cpu" = "ppc" ; then
1112 echo "TARGET_ARCH=ppc" >> $config_mak
1113 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1114 echo "#define TARGET_PPC 1" >> $config_h
1115 elif test "$target_cpu" = "ppcemb" ; then
1116 echo "TARGET_ARCH=ppcemb" >> $config_mak
1117 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1118 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1119 echo "#define TARGET_PPC 1" >> $config_h
1120 echo "#define TARGET_PPCEMB 1" >> $config_h
1121 elif test "$target_cpu" = "ppc64" ; then
1122 echo "TARGET_ARCH=ppc64" >> $config_mak
1123 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1124 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1125 echo "#define TARGET_PPC 1" >> $config_h
1126 echo "#define TARGET_PPC64 1" >> $config_h
1127 elif test "$target_cpu" = "ppc64abi32" ; then
1128 echo "TARGET_ARCH=ppc64" >> $config_mak
1129 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1130 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1131 echo "#define TARGET_PPC 1" >> $config_h
1132 echo "#define TARGET_PPC64 1" >> $config_h
1133 echo "#define TARGET_ABI32 1" >> $config_h
1134 elif test "$target_cpu" = "x86_64" ; then
1135 echo "TARGET_ARCH=x86_64" >> $config_mak
1136 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1137 echo "#define TARGET_I386 1" >> $config_h
1138 echo "#define TARGET_X86_64 1" >> $config_h
1139 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1140 echo "#define USE_KQEMU 1" >> $config_h
1143 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1144 echo "TARGET_ARCH=mips" >> $config_mak
1145 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1146 echo "#define TARGET_MIPS 1" >> $config_h
1147 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1148 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1149 echo "TARGET_ARCH=mipsn32" >> $config_mak
1150 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1151 echo "#define TARGET_MIPS 1" >> $config_h
1152 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1153 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1154 echo "TARGET_ARCH=mips64" >> $config_mak
1155 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1156 echo "#define TARGET_MIPS 1" >> $config_h
1157 echo "#define TARGET_MIPS64 1" >> $config_h
1158 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1159 elif test "$target_cpu" = "cris" ; then
1160 echo "TARGET_ARCH=cris" >> $config_mak
1161 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1162 echo "#define TARGET_CRIS 1" >> $config_h
1163 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1164 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1165 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1166 echo "TARGET_ARCH=sh4" >> $config_mak
1167 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1168 echo "#define TARGET_SH4 1" >> $config_h
1170 elif test "$target_cpu" = "m68k" ; then
1171 echo "TARGET_ARCH=m68k" >> $config_mak
1172 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1173 echo "#define TARGET_M68K 1" >> $config_h
1175 elif test "$target_cpu" = "alpha" ; then
1176 echo "TARGET_ARCH=alpha" >> $config_mak
1177 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1178 echo "#define TARGET_ALPHA 1" >> $config_h
1180 echo "Unsupported target CPU"
1183 if test "$target_bigendian" = "yes" ; then
1184 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1185 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1187 if test "$target_softmmu" = "yes" ; then
1188 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1189 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1191 if test "$target_user_only" = "yes" ; then
1192 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1193 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1195 if test "$target_linux_user" = "yes" ; then
1196 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1197 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1199 if test "$target_darwin_user" = "yes" ; then
1200 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1201 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1204 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
1205 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1206 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1208 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1209 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1210 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1212 # 32 bit ELF loader in addition to native 64 bit loader?
1213 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1214 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1215 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1218 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~
$config_h
1220 done # for target in $targets
1222 # build tree in object directory if source path is different from current one
1223 if test "$source_path_used" = "yes" ; then
1224 DIRS
="tests tests/cris slirp audio"
1225 FILES
="Makefile tests/Makefile"
1226 FILES
="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1227 for dir
in $DIRS ; do
1230 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1231 for f
in $FILES ; do
1233 ln -s $source_path/$f $f
1237 rm -f $TMPO $TMPC $TMPE $TMPS