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)
114 OS_CFLAGS="-mno-cygwin"
115 VL_OS_LDFLAGS="-mno-cygwin"
116 if [ "$cpu" = "i386" ] ; then
122 if [ "$cpu" = "i386" ] ; then
128 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
135 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
153 OS_CFLAGS="-mdynamic-no-pic"
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
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"
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."
179 if test "$solarisrev" -ge 9 ; then
183 if test -f /usr/include/sys/soundcard.h ; then
191 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
197 if [ "$bsd" = "yes" ] ; then
198 if [ "$darwin" != "yes" ] ; then
204 source_path=`dirname "$0"`
205 if [ -z "$source_path" ]; then
208 source_path=`cd "$source_path"; pwd`
210 if test "$source_path" = `pwd` ; then
211 source_path_used="no"
213 source_path_used="yes"
217 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
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"
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"
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;;
312 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
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)
328 sparc) if test -z "$sparc_cpu" ; then
329 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
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__"
340 ARCH_CFLAGS="${SP_CFLAGS}"
341 ARCH_LDFLAGS="${SP_LDFLAGS}"
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
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]"
370 echo "kqemu kernel acceleration support:"
371 echo " --disable-kqemu disable kqemu support"
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"
401 echo "NOTE: The object files are built at the place where configure is launched"
405 cc="${cross_prefix}${cc}"
406 ar="${cross_prefix}${ar}"
407 strip="${cross_prefix}${strip}"
409 # check that the C compiler works.
414 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
415 : C compiler works ok
417 echo "ERROR: \"$cc\" either does not exist or does not work"
421 if test "$mingw32" = "yes" ; then
427 # Check for gcc4, error if pre-gcc4
428 if test "$check_gcc" = "yes" ; then
433 int main(){return 0;}
435 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
436 echo "WARNING: \"$cc\" looks like gcc 4.x"
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"
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"
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
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"
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)"
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"
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"
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"
516 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
518 if test -z "$target_list" ; then
519 echo "No targets enabled"
523 if test -z "$cross_prefix" ; then
526 # big/little endian test
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"
538 echo big/little test failed
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
550 # host long bits test
552 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
556 # check gcc options support
562 ##########################################
567 if test -z "$sdl" ; then
568 sdl_config="sdl-config"
572 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
573 # win32 cross compilation case
574 sdl_config="i386-mingw32msvc-sdl-config"
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
588 if test "$cocoa" = "no" ; then
593 # static link with sdl ?
594 if test "$sdl" = "yes" ; then
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
606 fi # sdl compile test
607 fi # cross compilation
609 # Make sure to disable cocoa if sdl was set
610 if test "$sdl" = "yes" ; then
616 ##########################################
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
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
638 echo "Error: Could not find alsa"
639 echo "Make sure to have the alsa libs and headers installed."
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
651 if test "$mingw32" = "yes" ; then
652 if test -z "$prefix" ; then
653 prefix="/c/Program Files/Qemu"
660 if test -z "$prefix" ; then
663 mansuffix="/share/man"
664 datasuffix="/share/qemu"
665 docsuffix="/share/doc/qemu"
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"
680 echo "install $install"
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
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"
707 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
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
812 echo "Unsupported CPU = $cpu"
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
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
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
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
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
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
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
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
973 target_user_only="no"
974 target_linux_user="no"
975 target_darwin_user="no"
977 ${target_cpu}-softmmu)
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"
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."
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
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
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
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
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
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
1135 echo "Unsupported target CPU"
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
1185 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1186 for f in $FILES ; do
1188 ln -s $source_path/$f $f
1192 rm -f $TMPO $TMPC $TMPE $TMPS