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
)
115 OS_CFLAGS
="-mno-cygwin"
116 VL_OS_LDFLAGS
="-mno-cygwin"
117 if [ "$cpu" = "i386" ] ; then
123 if [ "$cpu" = "i386" ] ; then
129 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
136 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
154 OS_CFLAGS
="-mdynamic-no-pic"
155 OS_LDFLAGS
="-framework CoreFoundation -framework IOKit"
161 needs_libsunmath
="no"
162 solarisrev
=`uname -r | cut -f2 -d.`
163 # have to select again, because `uname -m` returns i86pc
164 # even on an x86_64 box.
165 solariscpu
=`isainfo -k`
166 if test "${solariscpu}" = "amd64" ; then
169 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
170 if test "$solarisrev" -le 9 ; then
171 if test -f /opt
/SUNWspro
/prod
/lib
/libsunmath.so
.1; then
172 needs_libsunmath
="yes"
174 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
175 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
176 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
177 echo "Studio 11 can be downloaded from www.sun.com."
181 if test "$solarisrev" -ge 9 ; then
185 if test -f /usr
/include
/sys
/soundcard.h
; then
193 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
199 if [ "$bsd" = "yes" ] ; then
200 if [ "$darwin" != "yes" ] ; then
206 source_path
=`dirname "$0"`
207 if [ -z "$source_path" ]; then
210 source_path
=`cd "$source_path"; pwd`
212 if test "$source_path" = `pwd` ; then
213 source_path_used
="no"
215 source_path_used
="yes"
219 # generate compile errors on warnings for development builds
220 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
225 optarg
=`expr "x$opt" : 'x[^=]*=\(.*\)'`
227 --help|
-h) show_help
=yes
229 --prefix=*) prefix
="$optarg"
231 --interp-prefix=*) interp_prefix
="$optarg"
233 --source-path=*) source_path
="$optarg"
234 source_path_used
="yes"
236 --cross-prefix=*) cross_prefix
="$optarg"
241 --host-cc=*) host_cc
="$optarg"
243 --make=*) make="$optarg"
245 --install=*) install="$optarg"
247 --extra-cflags=*) CFLAGS
="$optarg"
249 --extra-ldflags=*) LDFLAGS
="$optarg"
251 --cpu=*) cpu
="$optarg"
253 --target-list=*) target_list
="$optarg"
255 --enable-gprof) gprof
="yes"
257 --static) static
="yes"
259 --disable-sdl) sdl
="no"
261 --enable-coreaudio) coreaudio
="yes"
263 --enable-alsa) alsa
="yes"
265 --enable-esd) esd
="yes"
267 --enable-dsound) dsound
="yes"
269 --enable-fmod) fmod
="yes"
271 --fmod-lib=*) fmod_lib
="$optarg"
273 --fmod-inc=*) fmod_inc
="$optarg"
275 --disable-vnc-tls) vnc_tls
="no"
277 --enable-mingw32) mingw32
="yes" ; cross_prefix
="i386-mingw32-" ; linux_user
="no"
279 --disable-slirp) slirp
="no"
281 --enable-adlib) adlib
="yes"
283 --disable-kqemu) kqemu
="no"
285 --enable-profiler) profiler
="yes"
287 --enable-cocoa) cocoa
="yes" ; coreaudio
="yes" ; sdl
="no"
289 --disable-gfx-check) check_gfx
="no"
291 --disable-gcc-check) check_gcc
="no"
293 --disable-system) softmmu
="no"
295 --enable-system) softmmu
="yes"
297 --disable-linux-user) linux_user
="no"
299 --enable-linux-user) linux_user
="yes"
301 --disable-darwin-user) darwin_user
="no"
303 --enable-darwin-user) darwin_user
="yes"
305 --enable-uname-release=*) uname_release
="$optarg"
310 v7|v8
) SP_CFLAGS
="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m32"
311 target_cpu
="sparc"; cpu
="sparc" ;;
312 v8plus|v8plusa
) SP_CFLAGS
="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m32"
313 target_cpu
="sparc"; cpu
="sparc" ;;
314 v9
) SP_CFLAGS
="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m64"
315 target_cpu
="sparc64"; cpu
="sparc64" ;;
316 *) echo "undefined SPARC architecture. Exiting";exit 1;;
319 --enable-werror) werror
="yes"
321 --disable-werror) werror
="no"
323 *) echo "ERROR: unknown option $opt"; show_help
="yes"
328 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
331 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
332 AIOLIBS
="-lrt -lpthread"
335 # default flags for all hosts
336 CFLAGS
="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
337 LDFLAGS
="$LDFLAGS -g"
338 if test "$werror" = "yes" ; then
339 CFLAGS
="$CFLAGS -Werror"
343 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
344 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
347 sparc
) if test -z "$sparc_cpu" ; then
348 ARCH_CFLAGS
="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
351 ARCH_CFLAGS
="${SP_CFLAGS}"
352 ARCH_LDFLAGS
="${SP_LDFLAGS}"
355 sparc64
) if test -z "$sparc_cpu" ; then
356 ARCH_CFLAGS
="-m64 -mcpu=ultrasparc -D__sparc_v9__"
359 ARCH_CFLAGS
="${SP_CFLAGS}"
360 ARCH_LDFLAGS
="${SP_LDFLAGS}"
364 ARCH_CFLAGS
="-march=z900"
368 if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then
369 CFLAGS
="${CFLAGS} -m64"
370 OS_CFLAGS
="${OS_CFLAGS} -m64"
371 OS_LDFLAGS
="${OS_LDFLAGS} -m64"
374 if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then
375 CFLAGS
="${CFLAGS} -m32"
376 OS_CFLAGS
="${OS_CFLAGS} -m32"
379 if test x
"$show_help" = x
"yes" ; then
382 Usage: configure [options]
383 Options: [defaults in brackets after descriptions]
386 echo "Standard options:"
387 echo " --help print this message"
388 echo " --prefix=PREFIX install in PREFIX [$prefix]"
389 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
390 echo " use %M for cpu name [$interp_prefix]"
391 echo " --target-list=LIST set target list [$target_list]"
393 echo "kqemu kernel acceleration support:"
394 echo " --disable-kqemu disable kqemu support"
396 echo "Advanced options (experts only):"
397 echo " --source-path=PATH path of source code [$source_path]"
398 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
399 echo " --cc=CC use C compiler CC [$cc]"
400 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
401 echo " --make=MAKE use specified make [$make]"
402 echo " --install=INSTALL use specified install [$install]"
403 echo " --static enable static build [$static]"
404 echo " --disable-werror disable compilation abort on warning"
405 echo " --disable-sdl disable SDL"
406 echo " --enable-cocoa enable COCOA (Mac OS X only)"
407 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
408 echo " --enable-adlib enable Adlib emulation"
409 echo " --enable-coreaudio enable Coreaudio audio driver"
410 echo " --enable-alsa enable ALSA audio driver"
411 echo " --enable-esd enable EsoundD audio driver"
412 echo " --enable-fmod enable FMOD audio driver"
413 echo " --enable-dsound enable DirectSound audio driver"
414 echo " --disable-vnc-tls disable TLS encryption for VNC server"
415 echo " --enable-system enable all system emulation targets"
416 echo " --disable-system disable all system emulation targets"
417 echo " --enable-linux-user enable all linux usermode emulation targets"
418 echo " --disable-linux-user disable all linux usermode emulation targets"
419 echo " --enable-darwin-user enable all darwin usermode emulation targets"
420 echo " --disable-darwin-user disable all darwin usermode emulation targets"
421 echo " --fmod-lib path to FMOD library"
422 echo " --fmod-inc path to FMOD includes"
423 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
424 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
426 echo "NOTE: The object files are built at the place where configure is launched"
430 cc
="${cross_prefix}${cc}"
431 ar="${cross_prefix}${ar}"
432 strip
="${cross_prefix}${strip}"
434 # check that the C compiler works.
439 if $cc -c -o $TMPO $TMPC 2> /dev
/null
; then
440 : C compiler works ok
442 echo "ERROR: \"$cc\" either does not exist or does not work"
446 if test "$mingw32" = "yes" ; then
452 # Check for gcc4, error if pre-gcc4
453 if test "$check_gcc" = "yes" ; then
458 int main(){return 0;}
460 if "$cc" -o $TMPE $TMPC 2> /dev
/null
; then
461 echo "WARNING: \"$cc\" looks like gcc 4.x"
463 if test "$gcc3_search" = "yes" ; then
464 echo "Looking for gcc 3.x"
465 for compat_cc
in $gcc3_list ; do
466 if "$cross_prefix$compat_cc" --version 2> /dev
/null | fgrep
'(GCC) 3.' > /dev
/null
2>&1 ; then
467 echo "Found \"$compat_cc\""
468 cc
="$cross_prefix$compat_cc"
469 found_compat_cc
="yes"
473 if test "$found_compat_cc" = "no" ; then
474 echo "gcc 3.x not found!"
477 if test "$found_compat_cc" = "no" ; then
478 echo "QEMU is known to have problems when compiled with gcc 4.x"
479 echo "It is recommended that you use gcc 3.x to build QEMU"
480 echo "To use this compiler anyway, configure with --disable-gcc-check"
487 # Solaris specific configure tool chain decisions
489 if test "$solaris" = "yes" ; then
491 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
492 # override the check with --disable-gcc-check
494 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
496 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
497 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
498 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
499 echo "or get the latest patch from SunSolve for gcc"
503 solinst
=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
504 if test -z "$solinst" ; then
505 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
506 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
507 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
510 if test "$solinst" = "/usr/sbin/install" ; then
511 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
512 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
513 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
516 sol_ar
=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
517 if test -z "$sol_ar" ; then
518 echo "Error: No path includes ar"
519 if test -f /usr
/ccs
/bin
/ar ; then
520 echo "Add /usr/ccs/bin to your path and rerun configure"
527 if test -z "$target_list" ; then
528 # these targets are portable
529 if [ "$softmmu" = "yes" ] ; then
530 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"
532 # the following are Linux specific
533 if [ "$linux_user" = "yes" ] ; then
534 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"
536 # the following are Darwin specific
537 if [ "$darwin_user" = "yes" ] ; then
538 target_list
="i386-darwin-user ppc-darwin-user $target_list"
541 target_list
=`echo "$target_list" | sed -e 's/,/ /g'`
543 if test -z "$target_list" ; then
544 echo "No targets enabled"
548 if test -z "$cross_prefix" ; then
551 # big/little endian test
553 #include <inttypes.h>
554 int main(int argc, char ** argv){
555 volatile uint32_t i=0x01234567;
556 return (*((uint8_t*)(&i))) == 0x67;
560 if $cc -o $TMPE $TMPC 2> /dev
/null
; then
561 $TMPE && bigendian
="yes"
563 echo big
/little
test failed
568 # if cross compiling, cannot launch a program, so make a static guess
569 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
575 # host long bits test
577 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
581 # check gcc options support
587 ##########################################
592 if test -z "$sdl" ; then
593 sdl_config
="sdl-config"
597 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
598 # win32 cross compilation case
599 sdl_config
="i386-mingw32msvc-sdl-config"
605 #undef main /* We don't want SDL to override our main() */
606 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
608 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
609 _sdlversion
=`$sdl_config --version | sed 's/[^0-9]//g'`
610 if test "$_sdlversion" -lt 121 ; then
613 if test "$cocoa" = "no" ; then
618 # static link with sdl ?
619 if test "$sdl" = "yes" ; then
621 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa
="yes"
622 sdl_static_libs
=`$sdl_config --static-libs 2>/dev/null`
623 if [ "$aa" = "yes" ] ; then
624 sdl_static_libs
="$sdl_static_libs `aalib-config --static-libs`"
627 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev
/null
; then
631 fi # sdl compile test
632 fi # cross compilation
634 # Make sure to disable cocoa if sdl was set
635 if test "$sdl" = "yes" ; then
641 ##########################################
643 if test "$vnc_tls" = "yes" ; then
644 `pkg-config gnutls` || vnc_tls
="no"
646 if test "$vnc_tls" = "yes" ; then
647 vnc_tls_cflags
=`pkg-config --cflags gnutls`
648 vnc_tls_libs
=`pkg-config --libs gnutls`
651 ##########################################
652 # alsa sound support libraries
654 if test "$alsa" = "yes" ; then
656 #include <alsa/asoundlib.h>
657 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
659 if $cc -o $TMPE $TMPC -lasound 2> /dev
/null
; then
663 echo "Error: Could not find alsa"
664 echo "Make sure to have the alsa libs and headers installed."
670 # Check if tools are available to build documentation.
671 if [ -x "`which texi2html 2>/dev/null`" ] && \
672 [ -x "`which pod2man 2>/dev/null`" ]; then
676 if test "$mingw32" = "yes" ; then
677 if test -z "$prefix" ; then
678 prefix
="/c/Program Files/Qemu"
685 if test -z "$prefix" ; then
688 mansuffix
="/share/man"
689 datasuffix
="/share/qemu"
690 docsuffix
="/share/doc/qemu"
694 echo "Install prefix $prefix"
695 echo "BIOS directory $prefix$datasuffix"
696 echo "binary directory $prefix$binsuffix"
697 if test "$mingw32" = "no" ; then
698 echo "Manual directory $prefix$mansuffix"
699 echo "ELF interp prefix $interp_prefix"
701 echo "Source path $source_path"
702 echo "C compiler $cc"
703 echo "Host C compiler $host_cc"
705 echo "install $install"
707 echo "host big endian $bigendian"
708 echo "target list $target_list"
709 echo "gprof enabled $gprof"
710 echo "profiler $profiler"
711 echo "static build $static"
712 echo "-Werror enabled $werror"
713 if test "$darwin" = "yes" ; then
714 echo "Cocoa support $cocoa"
716 echo "SDL support $sdl"
717 if test "$sdl" != "no" ; then
718 echo "SDL static link $sdl_static"
720 echo "mingw32 support $mingw32"
721 echo "Adlib support $adlib"
722 echo "CoreAudio support $coreaudio"
723 echo "ALSA support $alsa"
724 echo "EsounD support $esd"
725 echo "DSound support $dsound"
726 if test "$fmod" = "yes"; then
727 if test -z $fmod_lib ||
test -z $fmod_inc; then
729 echo "Error: You must specify path to FMOD library and headers"
730 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
734 fmod_support
=" (lib='$fmod_lib' include='$fmod_inc')"
738 echo "FMOD support $fmod $fmod_support"
739 echo "OSS support $oss"
740 echo "VNC TLS support $vnc_tls"
741 if test "$vnc_tls" = "yes" ; then
742 echo " TLS CFLAGS $vnc_tls_cflags"
743 echo " TLS LIBS $vnc_tls_libs"
745 if test -n "$sparc_cpu"; then
746 echo "Target Sparc Arch $sparc_cpu"
748 echo "kqemu support $kqemu"
749 echo "Documentation $build_docs"
750 [ ! -z "$uname_release" ] && \
751 echo "uname -r $uname_release"
753 if test $sdl_too_old = "yes"; then
754 echo "-> Your SDL version is too old - please upgrade to have SDL support"
756 if [ -s /tmp
/qemu-$$
-sdl-config.log
]; then
757 echo "The error log from compiling the libSDL test is: "
758 cat /tmp
/qemu-$$
-sdl-config.log
760 rm -f /tmp
/qemu-$$
-sdl-config.log
761 #if test "$sdl_static" = "no"; then
762 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
764 config_mak
="config-host.mak"
765 config_h
="config-host.h"
767 #echo "Creating $config_mak and $config_h"
769 test -f $config_h && mv $config_h ${config_h}~
771 echo "# Automatically generated by configure - do not modify" > $config_mak
772 echo "# Configured with: $0 $@" >> $config_mak
773 echo "/* Automatically generated by configure - do not modify */" > $config_h
775 echo "prefix=$prefix" >> $config_mak
776 echo "bindir=\${prefix}$binsuffix" >> $config_mak
777 echo "mandir=\${prefix}$mansuffix" >> $config_mak
778 echo "datadir=\${prefix}$datasuffix" >> $config_mak
779 echo "docdir=\${prefix}$docsuffix" >> $config_mak
780 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
781 echo "MAKE=$make" >> $config_mak
782 echo "INSTALL=$install" >> $config_mak
783 echo "CC=$cc" >> $config_mak
784 echo "HOST_CC=$host_cc" >> $config_mak
785 echo "AR=$ar" >> $config_mak
786 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
787 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
788 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
789 echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
790 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
791 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
792 echo "CFLAGS=$CFLAGS" >> $config_mak
793 echo "LDFLAGS=$LDFLAGS" >> $config_mak
794 echo "EXESUF=$EXESUF" >> $config_mak
795 echo "AIOLIBS=$AIOLIBS" >> $config_mak
796 if test "$cpu" = "i386" ; then
797 echo "ARCH=i386" >> $config_mak
798 echo "#define HOST_I386 1" >> $config_h
799 elif test "$cpu" = "x86_64" ; then
800 echo "ARCH=x86_64" >> $config_mak
801 echo "#define HOST_X86_64 1" >> $config_h
802 elif test "$cpu" = "armv4b" ; then
803 echo "ARCH=arm" >> $config_mak
804 echo "#define HOST_ARM 1" >> $config_h
805 elif test "$cpu" = "armv4l" ; then
806 echo "ARCH=arm" >> $config_mak
807 echo "#define HOST_ARM 1" >> $config_h
808 elif test "$cpu" = "powerpc" ; then
809 echo "ARCH=ppc" >> $config_mak
810 echo "#define HOST_PPC 1" >> $config_h
811 elif test "$cpu" = "mips" ; then
812 echo "ARCH=mips" >> $config_mak
813 echo "#define HOST_MIPS 1" >> $config_h
814 elif test "$cpu" = "mips64" ; then
815 echo "ARCH=mips64" >> $config_mak
816 echo "#define HOST_MIPS64 1" >> $config_h
817 elif test "$cpu" = "cris" ; then
818 echo "ARCH=cris" >> $config_mak
819 echo "#define HOST_CRIS 1" >> $config_h
820 elif test "$cpu" = "s390" ; then
821 echo "ARCH=s390" >> $config_mak
822 echo "#define HOST_S390 1" >> $config_h
823 elif test "$cpu" = "alpha" ; then
824 echo "ARCH=alpha" >> $config_mak
825 echo "#define HOST_ALPHA 1" >> $config_h
826 elif test "$cpu" = "sparc" ; then
827 echo "ARCH=sparc" >> $config_mak
828 echo "#define HOST_SPARC 1" >> $config_h
829 elif test "$cpu" = "sparc64" ; then
830 echo "ARCH=sparc64" >> $config_mak
831 echo "#define HOST_SPARC64 1" >> $config_h
832 elif test "$cpu" = "ia64" ; then
833 echo "ARCH=ia64" >> $config_mak
834 echo "#define HOST_IA64 1" >> $config_h
835 elif test "$cpu" = "m68k" ; then
836 echo "ARCH=m68k" >> $config_mak
837 echo "#define HOST_M68K 1" >> $config_h
839 echo "Unsupported CPU = $cpu"
842 if test "$bigendian" = "yes" ; then
843 echo "WORDS_BIGENDIAN=yes" >> $config_mak
844 echo "#define WORDS_BIGENDIAN 1" >> $config_h
846 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
847 if test "$mingw32" = "yes" ; then
848 echo "CONFIG_WIN32=yes" >> $config_mak
849 echo "#define CONFIG_WIN32 1" >> $config_h
852 #include <byteswap.h>
853 int main(void) { return bswap_32(0); }
855 if $cc -o $TMPE $TMPC 2> /dev
/null
; then
856 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
859 if test "$darwin" = "yes" ; then
860 echo "CONFIG_DARWIN=yes" >> $config_mak
861 echo "#define CONFIG_DARWIN 1" >> $config_h
863 if test "$solaris" = "yes" ; then
864 echo "CONFIG_SOLARIS=yes" >> $config_mak
865 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
866 if test "$needs_libsunmath" = "yes" ; then
867 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
868 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
871 if test -n "$sparc_cpu"; then
872 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
873 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
875 if test "$gdbstub" = "yes" ; then
876 echo "CONFIG_GDBSTUB=yes" >> $config_mak
877 echo "#define CONFIG_GDBSTUB 1" >> $config_h
879 if test "$gprof" = "yes" ; then
880 echo "TARGET_GPROF=yes" >> $config_mak
881 echo "#define HAVE_GPROF 1" >> $config_h
883 if test "$static" = "yes" ; then
884 echo "CONFIG_STATIC=yes" >> $config_mak
885 echo "#define CONFIG_STATIC 1" >> $config_h
887 if test $profiler = "yes" ; then
888 echo "#define CONFIG_PROFILER 1" >> $config_h
890 if test "$slirp" = "yes" ; then
891 echo "CONFIG_SLIRP=yes" >> $config_mak
892 echo "#define CONFIG_SLIRP 1" >> $config_h
894 if test "$adlib" = "yes" ; then
895 echo "CONFIG_ADLIB=yes" >> $config_mak
896 echo "#define CONFIG_ADLIB 1" >> $config_h
898 if test "$oss" = "yes" ; then
899 echo "CONFIG_OSS=yes" >> $config_mak
900 echo "#define CONFIG_OSS 1" >> $config_h
902 if test "$coreaudio" = "yes" ; then
903 echo "CONFIG_COREAUDIO=yes" >> $config_mak
904 echo "#define CONFIG_COREAUDIO 1" >> $config_h
906 if test "$alsa" = "yes" ; then
907 echo "CONFIG_ALSA=yes" >> $config_mak
908 echo "#define CONFIG_ALSA 1" >> $config_h
910 if test "$esd" = "yes" ; then
911 echo "CONFIG_ESD=yes" >> $config_mak
912 echo "#define CONFIG_ESD 1" >> $config_h
914 if test "$dsound" = "yes" ; then
915 echo "CONFIG_DSOUND=yes" >> $config_mak
916 echo "#define CONFIG_DSOUND 1" >> $config_h
918 if test "$fmod" = "yes" ; then
919 echo "CONFIG_FMOD=yes" >> $config_mak
920 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
921 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
922 echo "#define CONFIG_FMOD 1" >> $config_h
924 if test "$vnc_tls" = "yes" ; then
925 echo "CONFIG_VNC_TLS=yes" >> $config_mak
926 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
927 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
928 echo "#define CONFIG_VNC_TLS 1" >> $config_h
930 qemu_version
=`head $source_path/VERSION`
931 echo "VERSION=$qemu_version" >>$config_mak
932 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
934 echo "SRC_PATH=$source_path" >> $config_mak
935 if [ "$source_path_used" = "yes" ]; then
936 echo "VPATH=$source_path" >> $config_mak
938 echo "TARGET_DIRS=$target_list" >> $config_mak
939 if [ "$build_docs" = "yes" ] ; then
940 echo "BUILD_DOCS=yes" >> $config_mak
942 if test "$static" = "yes"; then
947 if test "$sdl1" = "yes" ; then
948 echo "#define CONFIG_SDL 1" >> $config_h
949 echo "CONFIG_SDL=yes" >> $config_mak
950 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
951 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
953 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
955 if [ "${aa}" = "yes" ] ; then
956 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
958 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
961 if test "$cocoa" = "yes" ; then
962 echo "#define CONFIG_COCOA 1" >> $config_h
963 echo "CONFIG_COCOA=yes" >> $config_mak
967 if [ "$bsd" = "yes" ] ; then
968 echo "#define O_LARGEFILE 0" >> $config_h
969 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
970 echo "#define _BSD 1" >> $config_h
973 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
976 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
977 tools
="qemu-img\$(EXESUF) $tools"
979 echo "TOOLS=$tools" >> $config_mak
981 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~
$config_h
983 for target
in $target_list; do
985 config_mak
=$target_dir/config.mak
986 config_h
=$target_dir/config.h
987 target_cpu
=`echo $target | cut -d '-' -f 1`
988 target_bigendian
="no"
989 [ "$target_cpu" = "armeb" ] && target_bigendian
=yes
990 [ "$target_cpu" = "sparc" ] && target_bigendian
=yes
991 [ "$target_cpu" = "sparc64" ] && target_bigendian
=yes
992 [ "$target_cpu" = "sparc32plus" ] && target_bigendian
=yes
993 [ "$target_cpu" = "ppc" ] && target_bigendian
=yes
994 [ "$target_cpu" = "ppcemb" ] && target_bigendian
=yes
995 [ "$target_cpu" = "ppc64" ] && target_bigendian
=yes
996 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian
=yes
997 [ "$target_cpu" = "mips" ] && target_bigendian
=yes
998 [ "$target_cpu" = "mipsn32" ] && target_bigendian
=yes
999 [ "$target_cpu" = "mips64" ] && target_bigendian
=yes
1000 [ "$target_cpu" = "sh4eb" ] && target_bigendian
=yes
1001 [ "$target_cpu" = "m68k" ] && target_bigendian
=yes
1003 target_user_only
="no"
1004 target_linux_user
="no"
1005 target_darwin_user
="no"
1007 ${target_cpu}-softmmu)
1008 target_softmmu
="yes"
1010 ${target_cpu}-linux-user)
1011 target_user_only
="yes"
1012 target_linux_user
="yes"
1014 ${target_cpu}-darwin-user)
1015 target_user_only
="yes"
1016 target_darwin_user
="yes"
1019 echo "ERROR: Target '$target' not recognised"
1024 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1025 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1026 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1027 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1028 echo "Note that this will disable all output from the virtual graphics card."
1032 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1034 test -f $config_h && mv $config_h ${config_h}~
1036 mkdir
-p $target_dir
1037 mkdir
-p $target_dir/fpu
1038 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1039 mkdir
-p $target_dir/nwfpe
1043 # don't use ln -sf as not all "ln -sf" over write the file/link
1045 rm -f $target_dir/Makefile
1046 ln -s $source_path/Makefile.target
$target_dir/Makefile
1049 echo "# Automatically generated by configure - do not modify" > $config_mak
1050 echo "/* Automatically generated by configure - do not modify */" > $config_h
1053 echo "include ../config-host.mak" >> $config_mak
1054 echo "#include \"../config-host.h\"" >> $config_h
1058 interp_prefix1
=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1059 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1061 if test "$target_cpu" = "i386" ; then
1062 echo "TARGET_ARCH=i386" >> $config_mak
1063 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1064 echo "#define TARGET_I386 1" >> $config_h
1065 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1066 echo "#define USE_KQEMU 1" >> $config_h
1068 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1069 echo "TARGET_ARCH=arm" >> $config_mak
1070 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1071 echo "#define TARGET_ARM 1" >> $config_h
1073 elif test "$target_cpu" = "sparc" ; then
1074 echo "TARGET_ARCH=sparc" >> $config_mak
1075 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1076 echo "#define TARGET_SPARC 1" >> $config_h
1077 elif test "$target_cpu" = "sparc64" ; then
1078 echo "TARGET_ARCH=sparc64" >> $config_mak
1079 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1080 echo "#define TARGET_SPARC 1" >> $config_h
1081 echo "#define TARGET_SPARC64 1" >> $config_h
1083 elif test "$target_cpu" = "sparc32plus" ; then
1084 echo "TARGET_ARCH=sparc64" >> $config_mak
1085 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1086 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1087 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1088 echo "#define TARGET_SPARC 1" >> $config_h
1089 echo "#define TARGET_SPARC64 1" >> $config_h
1090 echo "#define TARGET_ABI32 1" >> $config_h
1091 elif test "$target_cpu" = "ppc" ; then
1092 echo "TARGET_ARCH=ppc" >> $config_mak
1093 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1094 echo "#define TARGET_PPC 1" >> $config_h
1095 elif test "$target_cpu" = "ppcemb" ; then
1096 echo "TARGET_ARCH=ppcemb" >> $config_mak
1097 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1098 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1099 echo "#define TARGET_PPC 1" >> $config_h
1100 echo "#define TARGET_PPCEMB 1" >> $config_h
1101 elif test "$target_cpu" = "ppc64" ; then
1102 echo "TARGET_ARCH=ppc64" >> $config_mak
1103 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1104 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1105 echo "#define TARGET_PPC 1" >> $config_h
1106 echo "#define TARGET_PPC64 1" >> $config_h
1107 elif test "$target_cpu" = "ppc64abi32" ; then
1108 echo "TARGET_ARCH=ppc64" >> $config_mak
1109 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1110 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1111 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1112 echo "#define TARGET_PPC 1" >> $config_h
1113 echo "#define TARGET_PPC64 1" >> $config_h
1114 echo "#define TARGET_ABI32 1" >> $config_h
1115 elif test "$target_cpu" = "x86_64" ; then
1116 echo "TARGET_ARCH=x86_64" >> $config_mak
1117 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1118 echo "#define TARGET_I386 1" >> $config_h
1119 echo "#define TARGET_X86_64 1" >> $config_h
1120 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1121 echo "#define USE_KQEMU 1" >> $config_h
1123 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1124 echo "TARGET_ARCH=mips" >> $config_mak
1125 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1126 echo "#define TARGET_MIPS 1" >> $config_h
1127 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1128 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1129 echo "TARGET_ARCH=mipsn32" >> $config_mak
1130 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1131 echo "#define TARGET_MIPS 1" >> $config_h
1132 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1133 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1134 echo "TARGET_ARCH=mips64" >> $config_mak
1135 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1136 echo "#define TARGET_MIPS 1" >> $config_h
1137 echo "#define TARGET_MIPS64 1" >> $config_h
1138 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1139 elif test "$target_cpu" = "cris" ; then
1140 echo "TARGET_ARCH=cris" >> $config_mak
1141 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1142 echo "#define TARGET_CRIS 1" >> $config_h
1143 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1144 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1145 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1146 echo "TARGET_ARCH=sh4" >> $config_mak
1147 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1148 echo "#define TARGET_SH4 1" >> $config_h
1150 elif test "$target_cpu" = "m68k" ; then
1151 echo "TARGET_ARCH=m68k" >> $config_mak
1152 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1153 echo "#define TARGET_M68K 1" >> $config_h
1155 elif test "$target_cpu" = "alpha" ; then
1156 echo "TARGET_ARCH=alpha" >> $config_mak
1157 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1158 echo "#define TARGET_ALPHA 1" >> $config_h
1160 echo "Unsupported target CPU"
1163 if test "$target_bigendian" = "yes" ; then
1164 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1165 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1167 if test "$target_softmmu" = "yes" ; then
1168 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1169 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1171 if test "$target_user_only" = "yes" ; then
1172 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1173 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1175 if test "$target_linux_user" = "yes" ; then
1176 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1177 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1179 if test "$target_darwin_user" = "yes" ; then
1180 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1181 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1184 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
1185 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1186 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1188 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1189 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1190 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1192 # 32 bit ELF loader in addition to native 64 bit loader?
1193 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1194 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1195 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1198 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~
$config_h
1200 done # for target in $targets
1202 # build tree in object directory if source path is different from current one
1203 if test "$source_path_used" = "yes" ; then
1204 DIRS
="tests tests/cris slirp audio"
1205 FILES
="Makefile tests/Makefile"
1206 FILES
="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1207 for dir
in $DIRS ; do
1210 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1211 for f
in $FILES ; do
1213 ln -s $source_path/$f $f
1217 rm -f $TMPO $TMPC $TMPE $TMPS