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
)
117 OS_CFLAGS
="-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
155 OS_CFLAGS
="-mdynamic-no-pic"
156 OS_LDFLAGS
="-framework CoreFoundation -framework IOKit"
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
200 if [ "$bsd" = "yes" ] ; then
201 if [ "$darwin" != "yes" ] ; then
207 source_path
=`dirname "$0"`
208 if [ -z "$source_path" ]; then
211 source_path
=`cd "$source_path"; pwd`
213 if test "$source_path" = `pwd` ; then
214 source_path_used
="no"
216 source_path_used
="yes"
220 # generate compile errors on warnings for development builds
221 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
226 optarg
=`expr "x$opt" : 'x[^=]*=\(.*\)'`
228 --help|
-h) show_help
=yes
230 --prefix=*) prefix
="$optarg"
232 --interp-prefix=*) interp_prefix
="$optarg"
234 --source-path=*) source_path
="$optarg"
235 source_path_used
="yes"
237 --cross-prefix=*) cross_prefix
="$optarg"
242 --host-cc=*) host_cc
="$optarg"
244 --make=*) make="$optarg"
246 --install=*) install="$optarg"
248 --extra-cflags=*) CFLAGS
="$optarg"
250 --extra-ldflags=*) LDFLAGS
="$optarg"
252 --cpu=*) cpu
="$optarg"
254 --target-list=*) target_list
="$optarg"
256 --enable-gprof) gprof
="yes"
258 --static) static
="yes"
260 --disable-sdl) sdl
="no"
262 --enable-coreaudio) coreaudio
="yes"
264 --enable-alsa) alsa
="yes"
266 --enable-esd) esd
="yes"
268 --enable-dsound) dsound
="yes"
270 --enable-fmod) fmod
="yes"
272 --fmod-lib=*) fmod_lib
="$optarg"
274 --fmod-inc=*) fmod_inc
="$optarg"
276 --disable-vnc-tls) vnc_tls
="no"
278 --enable-mingw32) mingw32
="yes" ; cross_prefix
="i386-mingw32-" ; linux_user
="no"
280 --disable-slirp) slirp
="no"
282 --enable-adlib) adlib
="yes"
284 --enable-ac97) ac97
="yes"
286 --enable-gus) gus
="yes"
288 --disable-kqemu) kqemu
="no"
290 --enable-profiler) profiler
="yes"
292 --enable-cocoa) cocoa
="yes" ; coreaudio
="yes" ; sdl
="no"
294 --disable-gfx-check) check_gfx
="no"
296 --disable-gcc-check) check_gcc
="no"
298 --disable-system) softmmu
="no"
300 --enable-system) softmmu
="yes"
302 --disable-linux-user) linux_user
="no"
304 --enable-linux-user) linux_user
="yes"
306 --disable-darwin-user) darwin_user
="no"
308 --enable-darwin-user) darwin_user
="yes"
310 --enable-uname-release=*) uname_release
="$optarg"
315 v7|v8
) SP_CFLAGS
="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m32"
316 target_cpu
="sparc"; cpu
="sparc" ;;
317 v8plus|v8plusa
) SP_CFLAGS
="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m32"
318 target_cpu
="sparc"; cpu
="sparc" ;;
319 v9
) SP_CFLAGS
="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS
="-m64"
320 target_cpu
="sparc64"; cpu
="sparc64" ;;
321 *) echo "undefined SPARC architecture. Exiting";exit 1;;
324 --enable-werror) werror
="yes"
326 --disable-werror) werror
="no"
328 *) echo "ERROR: unknown option $opt"; show_help
="yes"
333 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
336 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
337 AIOLIBS
="-lrt -lpthread"
340 # default flags for all hosts
341 CFLAGS
="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
342 LDFLAGS
="$LDFLAGS -g"
343 if test "$werror" = "yes" ; then
344 CFLAGS
="$CFLAGS -Werror"
348 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
349 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
352 sparc
) if test -z "$sparc_cpu" ; then
353 ARCH_CFLAGS
="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
356 ARCH_CFLAGS
="${SP_CFLAGS}"
357 ARCH_LDFLAGS
="${SP_LDFLAGS}"
360 sparc64
) if test -z "$sparc_cpu" ; then
361 ARCH_CFLAGS
="-m64 -mcpu=ultrasparc -D__sparc_v9__"
364 ARCH_CFLAGS
="${SP_CFLAGS}"
365 ARCH_LDFLAGS
="${SP_LDFLAGS}"
369 ARCH_CFLAGS
="-march=z900"
381 if test x
"$show_help" = x
"yes" ; then
384 Usage: configure [options]
385 Options: [defaults in brackets after descriptions]
388 echo "Standard options:"
389 echo " --help print this message"
390 echo " --prefix=PREFIX install in PREFIX [$prefix]"
391 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
392 echo " use %M for cpu name [$interp_prefix]"
393 echo " --target-list=LIST set target list [$target_list]"
395 echo "kqemu kernel acceleration support:"
396 echo " --disable-kqemu disable kqemu support"
398 echo "Advanced options (experts only):"
399 echo " --source-path=PATH path of source code [$source_path]"
400 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
401 echo " --cc=CC use C compiler CC [$cc]"
402 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
403 echo " --make=MAKE use specified make [$make]"
404 echo " --install=INSTALL use specified install [$install]"
405 echo " --static enable static build [$static]"
406 echo " --disable-werror disable compilation abort on warning"
407 echo " --disable-sdl disable SDL"
408 echo " --enable-cocoa enable COCOA (Mac OS X only)"
409 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
410 echo " --enable-adlib enable Adlib emulation"
411 echo " --enable-ac97 enable AC97 emulation"
412 echo " --enable-gus enable Gravis Ultrasound emulation"
413 echo " --enable-coreaudio enable Coreaudio audio driver"
414 echo " --enable-alsa enable ALSA audio driver"
415 echo " --enable-esd enable EsoundD audio driver"
416 echo " --enable-fmod enable FMOD audio driver"
417 echo " --enable-dsound enable DirectSound audio driver"
418 echo " --disable-vnc-tls disable TLS encryption for VNC server"
419 echo " --enable-system enable all system emulation targets"
420 echo " --disable-system disable all system emulation targets"
421 echo " --enable-linux-user enable all linux usermode emulation targets"
422 echo " --disable-linux-user disable all linux usermode emulation targets"
423 echo " --enable-darwin-user enable all darwin usermode emulation targets"
424 echo " --disable-darwin-user disable all darwin usermode emulation targets"
425 echo " --fmod-lib path to FMOD library"
426 echo " --fmod-inc path to FMOD includes"
427 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
428 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
430 echo "NOTE: The object files are built at the place where configure is launched"
434 cc
="${cross_prefix}${cc}"
435 ar="${cross_prefix}${ar}"
436 strip
="${cross_prefix}${strip}"
438 # check that the C compiler works.
443 if $cc -c -o $TMPO $TMPC 2> /dev
/null
; then
444 : C compiler works ok
446 echo "ERROR: \"$cc\" either does not exist or does not work"
450 if test "$mingw32" = "yes" ; then
456 # Check for gcc4, error if pre-gcc4
457 if test "$check_gcc" = "yes" ; then
462 int main(){return 0;}
464 if "$cc" -o $TMPE $TMPC 2> /dev
/null
; then
465 echo "WARNING: \"$cc\" looks like gcc 4.x"
467 if test "$gcc3_search" = "yes" ; then
468 echo "Looking for gcc 3.x"
469 for compat_cc
in $gcc3_list ; do
470 if "$cross_prefix$compat_cc" --version 2> /dev
/null | fgrep
'(GCC) 3.' > /dev
/null
2>&1 ; then
471 echo "Found \"$compat_cc\""
472 cc
="$cross_prefix$compat_cc"
473 found_compat_cc
="yes"
477 if test "$found_compat_cc" = "no" ; then
478 echo "gcc 3.x not found!"
481 if test "$found_compat_cc" = "no" ; then
482 echo "QEMU is known to have problems when compiled with gcc 4.x"
483 echo "It is recommended that you use gcc 3.x to build QEMU"
484 echo "To use this compiler anyway, configure with --disable-gcc-check"
491 # Solaris specific configure tool chain decisions
493 if test "$solaris" = "yes" ; then
495 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
496 # override the check with --disable-gcc-check
498 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
500 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
501 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
502 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
503 echo "or get the latest patch from SunSolve for gcc"
507 solinst
=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
508 if test -z "$solinst" ; then
509 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
510 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
511 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
514 if test "$solinst" = "/usr/sbin/install" ; then
515 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
516 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
517 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
520 sol_ar
=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
521 if test -z "$sol_ar" ; then
522 echo "Error: No path includes ar"
523 if test -f /usr
/ccs
/bin
/ar ; then
524 echo "Add /usr/ccs/bin to your path and rerun configure"
531 if test -z "$target_list" ; then
532 # these targets are portable
533 if [ "$softmmu" = "yes" ] ; then
534 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"
536 # the following are Linux specific
537 if [ "$linux_user" = "yes" ] ; then
538 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"
540 # the following are Darwin specific
541 if [ "$darwin_user" = "yes" ] ; then
542 target_list
="i386-darwin-user ppc-darwin-user $target_list"
545 target_list
=`echo "$target_list" | sed -e 's/,/ /g'`
547 if test -z "$target_list" ; then
548 echo "No targets enabled"
552 if test -z "$cross_prefix" ; then
555 # big/little endian test
557 #include <inttypes.h>
558 int main(int argc, char ** argv){
559 volatile uint32_t i=0x01234567;
560 return (*((uint8_t*)(&i))) == 0x67;
564 if $cc -o $TMPE $TMPC 2> /dev
/null
; then
565 $TMPE && bigendian
="yes"
567 echo big
/little
test failed
572 # if cross compiling, cannot launch a program, so make a static guess
573 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
579 # host long bits test
581 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
585 # check gcc options support
591 ##########################################
596 if test -z "$sdl" ; then
597 sdl_config
="sdl-config"
601 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
602 # win32 cross compilation case
603 sdl_config
="i386-mingw32msvc-sdl-config"
609 #undef main /* We don't want SDL to override our main() */
610 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
612 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
613 _sdlversion
=`$sdl_config --version | sed 's/[^0-9]//g'`
614 if test "$_sdlversion" -lt 121 ; then
617 if test "$cocoa" = "no" ; then
622 # static link with sdl ?
623 if test "$sdl" = "yes" ; then
625 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa
="yes"
626 sdl_static_libs
=`$sdl_config --static-libs 2>/dev/null`
627 if [ "$aa" = "yes" ] ; then
628 sdl_static_libs
="$sdl_static_libs `aalib-config --static-libs`"
631 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev
/null
; then
635 fi # sdl compile test
636 fi # cross compilation
638 # Make sure to disable cocoa if sdl was set
639 if test "$sdl" = "yes" ; then
645 ##########################################
647 if test "$vnc_tls" = "yes" ; then
648 `pkg-config gnutls` || vnc_tls
="no"
650 if test "$vnc_tls" = "yes" ; then
651 vnc_tls_cflags
=`pkg-config --cflags gnutls`
652 vnc_tls_libs
=`pkg-config --libs gnutls`
655 ##########################################
656 # alsa sound support libraries
658 if test "$alsa" = "yes" ; then
660 #include <alsa/asoundlib.h>
661 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
663 if $cc -o $TMPE $TMPC -lasound 2> /dev
/null
; then
667 echo "Error: Could not find alsa"
668 echo "Make sure to have the alsa libs and headers installed."
674 # Check if tools are available to build documentation.
675 if [ -x "`which texi2html 2>/dev/null`" ] && \
676 [ -x "`which pod2man 2>/dev/null`" ]; then
680 if test "$mingw32" = "yes" ; then
681 if test -z "$prefix" ; then
682 prefix
="/c/Program Files/Qemu"
689 if test -z "$prefix" ; then
692 mansuffix
="/share/man"
693 datasuffix
="/share/qemu"
694 docsuffix
="/share/doc/qemu"
698 echo "Install prefix $prefix"
699 echo "BIOS directory $prefix$datasuffix"
700 echo "binary directory $prefix$binsuffix"
701 if test "$mingw32" = "no" ; then
702 echo "Manual directory $prefix$mansuffix"
703 echo "ELF interp prefix $interp_prefix"
705 echo "Source path $source_path"
706 echo "C compiler $cc"
707 echo "Host C compiler $host_cc"
709 echo "install $install"
711 echo "host big endian $bigendian"
712 echo "target list $target_list"
713 echo "gprof enabled $gprof"
714 echo "profiler $profiler"
715 echo "static build $static"
716 echo "-Werror enabled $werror"
717 if test "$darwin" = "yes" ; then
718 echo "Cocoa support $cocoa"
720 echo "SDL support $sdl"
721 if test "$sdl" != "no" ; then
722 echo "SDL static link $sdl_static"
724 echo "mingw32 support $mingw32"
725 echo "Adlib support $adlib"
726 echo "AC97 support $ac97"
727 echo "GUS support $gus"
728 echo "CoreAudio support $coreaudio"
729 echo "ALSA support $alsa"
730 echo "EsounD support $esd"
731 echo "DSound support $dsound"
732 if test "$fmod" = "yes"; then
733 if test -z $fmod_lib ||
test -z $fmod_inc; then
735 echo "Error: You must specify path to FMOD library and headers"
736 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
740 fmod_support
=" (lib='$fmod_lib' include='$fmod_inc')"
744 echo "FMOD support $fmod $fmod_support"
745 echo "OSS support $oss"
746 echo "VNC TLS support $vnc_tls"
747 if test "$vnc_tls" = "yes" ; then
748 echo " TLS CFLAGS $vnc_tls_cflags"
749 echo " TLS LIBS $vnc_tls_libs"
751 if test -n "$sparc_cpu"; then
752 echo "Target Sparc Arch $sparc_cpu"
754 echo "kqemu support $kqemu"
755 echo "Documentation $build_docs"
756 [ ! -z "$uname_release" ] && \
757 echo "uname -r $uname_release"
759 if test $sdl_too_old = "yes"; then
760 echo "-> Your SDL version is too old - please upgrade to have SDL support"
762 if [ -s /tmp
/qemu-$$
-sdl-config.log
]; then
763 echo "The error log from compiling the libSDL test is: "
764 cat /tmp
/qemu-$$
-sdl-config.log
766 rm -f /tmp
/qemu-$$
-sdl-config.log
767 #if test "$sdl_static" = "no"; then
768 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
770 config_mak
="config-host.mak"
771 config_h
="config-host.h"
773 #echo "Creating $config_mak and $config_h"
775 test -f $config_h && mv $config_h ${config_h}~
777 echo "# Automatically generated by configure - do not modify" > $config_mak
778 echo "# Configured with: $0 $@" >> $config_mak
779 echo "/* Automatically generated by configure - do not modify */" > $config_h
781 echo "prefix=$prefix" >> $config_mak
782 echo "bindir=\${prefix}$binsuffix" >> $config_mak
783 echo "mandir=\${prefix}$mansuffix" >> $config_mak
784 echo "datadir=\${prefix}$datasuffix" >> $config_mak
785 echo "docdir=\${prefix}$docsuffix" >> $config_mak
786 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
787 echo "MAKE=$make" >> $config_mak
788 echo "INSTALL=$install" >> $config_mak
789 echo "CC=$cc" >> $config_mak
790 echo "HOST_CC=$host_cc" >> $config_mak
791 echo "AR=$ar" >> $config_mak
792 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
793 # XXX: only use CFLAGS and LDFLAGS ?
794 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
795 # compilation of dyngen tool (useful for win32 build on Linux host)
796 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
797 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
798 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
799 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
800 echo "CFLAGS=$CFLAGS" >> $config_mak
801 echo "LDFLAGS=$LDFLAGS" >> $config_mak
802 echo "EXESUF=$EXESUF" >> $config_mak
803 echo "AIOLIBS=$AIOLIBS" >> $config_mak
804 if test "$cpu" = "i386" ; then
805 echo "ARCH=i386" >> $config_mak
806 echo "#define HOST_I386 1" >> $config_h
807 elif test "$cpu" = "x86_64" ; then
808 echo "ARCH=x86_64" >> $config_mak
809 echo "#define HOST_X86_64 1" >> $config_h
810 elif test "$cpu" = "armv4b" ; then
811 echo "ARCH=arm" >> $config_mak
812 echo "#define HOST_ARM 1" >> $config_h
813 elif test "$cpu" = "armv4l" ; then
814 echo "ARCH=arm" >> $config_mak
815 echo "#define HOST_ARM 1" >> $config_h
816 elif test "$cpu" = "powerpc" ; then
817 echo "ARCH=ppc" >> $config_mak
818 echo "#define HOST_PPC 1" >> $config_h
819 elif test "$cpu" = "mips" ; then
820 echo "ARCH=mips" >> $config_mak
821 echo "#define HOST_MIPS 1" >> $config_h
822 elif test "$cpu" = "mips64" ; then
823 echo "ARCH=mips64" >> $config_mak
824 echo "#define HOST_MIPS64 1" >> $config_h
825 elif test "$cpu" = "cris" ; then
826 echo "ARCH=cris" >> $config_mak
827 echo "#define HOST_CRIS 1" >> $config_h
828 elif test "$cpu" = "s390" ; then
829 echo "ARCH=s390" >> $config_mak
830 echo "#define HOST_S390 1" >> $config_h
831 elif test "$cpu" = "alpha" ; then
832 echo "ARCH=alpha" >> $config_mak
833 echo "#define HOST_ALPHA 1" >> $config_h
834 elif test "$cpu" = "sparc" ; then
835 echo "ARCH=sparc" >> $config_mak
836 echo "#define HOST_SPARC 1" >> $config_h
837 elif test "$cpu" = "sparc64" ; then
838 echo "ARCH=sparc64" >> $config_mak
839 echo "#define HOST_SPARC64 1" >> $config_h
840 elif test "$cpu" = "ia64" ; then
841 echo "ARCH=ia64" >> $config_mak
842 echo "#define HOST_IA64 1" >> $config_h
843 elif test "$cpu" = "m68k" ; then
844 echo "ARCH=m68k" >> $config_mak
845 echo "#define HOST_M68K 1" >> $config_h
847 echo "Unsupported CPU = $cpu"
850 if test "$bigendian" = "yes" ; then
851 echo "WORDS_BIGENDIAN=yes" >> $config_mak
852 echo "#define WORDS_BIGENDIAN 1" >> $config_h
854 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
855 if test "$mingw32" = "yes" ; then
856 echo "CONFIG_WIN32=yes" >> $config_mak
857 echo "#define CONFIG_WIN32 1" >> $config_h
860 #include <byteswap.h>
861 int main(void) { return bswap_32(0); }
863 if $cc -o $TMPE $TMPC 2> /dev
/null
; then
864 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
867 if test "$darwin" = "yes" ; then
868 echo "CONFIG_DARWIN=yes" >> $config_mak
869 echo "#define CONFIG_DARWIN 1" >> $config_h
871 if test "$solaris" = "yes" ; then
872 echo "CONFIG_SOLARIS=yes" >> $config_mak
873 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
874 if test "$needs_libsunmath" = "yes" ; then
875 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
876 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
879 if test -n "$sparc_cpu"; then
880 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
881 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
883 if test "$gdbstub" = "yes" ; then
884 echo "CONFIG_GDBSTUB=yes" >> $config_mak
885 echo "#define CONFIG_GDBSTUB 1" >> $config_h
887 if test "$gprof" = "yes" ; then
888 echo "TARGET_GPROF=yes" >> $config_mak
889 echo "#define HAVE_GPROF 1" >> $config_h
891 if test "$static" = "yes" ; then
892 echo "CONFIG_STATIC=yes" >> $config_mak
893 echo "#define CONFIG_STATIC 1" >> $config_h
895 if test $profiler = "yes" ; then
896 echo "#define CONFIG_PROFILER 1" >> $config_h
898 if test "$slirp" = "yes" ; then
899 echo "CONFIG_SLIRP=yes" >> $config_mak
900 echo "#define CONFIG_SLIRP 1" >> $config_h
902 if test "$adlib" = "yes" ; then
903 echo "CONFIG_ADLIB=yes" >> $config_mak
904 echo "#define CONFIG_ADLIB 1" >> $config_h
906 if test "$ac97" = "yes" ; then
907 echo "CONFIG_AC97=yes" >> $config_mak
908 echo "#define CONFIG_AC97 1" >> $config_h
910 if test "$gus" = "yes" ; then
911 echo "CONFIG_GUS=yes" >> $config_mak
912 echo "#define CONFIG_GUS 1" >> $config_h
914 if test "$oss" = "yes" ; then
915 echo "CONFIG_OSS=yes" >> $config_mak
916 echo "#define CONFIG_OSS 1" >> $config_h
918 if test "$coreaudio" = "yes" ; then
919 echo "CONFIG_COREAUDIO=yes" >> $config_mak
920 echo "#define CONFIG_COREAUDIO 1" >> $config_h
922 if test "$alsa" = "yes" ; then
923 echo "CONFIG_ALSA=yes" >> $config_mak
924 echo "#define CONFIG_ALSA 1" >> $config_h
926 if test "$esd" = "yes" ; then
927 echo "CONFIG_ESD=yes" >> $config_mak
928 echo "#define CONFIG_ESD 1" >> $config_h
930 if test "$dsound" = "yes" ; then
931 echo "CONFIG_DSOUND=yes" >> $config_mak
932 echo "#define CONFIG_DSOUND 1" >> $config_h
934 if test "$fmod" = "yes" ; then
935 echo "CONFIG_FMOD=yes" >> $config_mak
936 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
937 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
938 echo "#define CONFIG_FMOD 1" >> $config_h
940 if test "$vnc_tls" = "yes" ; then
941 echo "CONFIG_VNC_TLS=yes" >> $config_mak
942 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
943 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
944 echo "#define CONFIG_VNC_TLS 1" >> $config_h
946 qemu_version
=`head $source_path/VERSION`
947 echo "VERSION=$qemu_version" >>$config_mak
948 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
950 echo "SRC_PATH=$source_path" >> $config_mak
951 if [ "$source_path_used" = "yes" ]; then
952 echo "VPATH=$source_path" >> $config_mak
954 echo "TARGET_DIRS=$target_list" >> $config_mak
955 if [ "$build_docs" = "yes" ] ; then
956 echo "BUILD_DOCS=yes" >> $config_mak
958 if test "$static" = "yes"; then
963 if test "$sdl1" = "yes" ; then
964 echo "#define CONFIG_SDL 1" >> $config_h
965 echo "CONFIG_SDL=yes" >> $config_mak
966 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
967 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
969 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
971 if [ "${aa}" = "yes" ] ; then
972 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
974 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
977 if test "$cocoa" = "yes" ; then
978 echo "#define CONFIG_COCOA 1" >> $config_h
979 echo "CONFIG_COCOA=yes" >> $config_mak
983 if [ "$bsd" = "yes" ] ; then
984 echo "#define O_LARGEFILE 0" >> $config_h
985 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
986 echo "#define _BSD 1" >> $config_h
989 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
992 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
993 tools
="qemu-img\$(EXESUF) $tools"
995 echo "TOOLS=$tools" >> $config_mak
997 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~
$config_h
999 for target
in $target_list; do
1000 target_dir
="$target"
1001 config_mak
=$target_dir/config.mak
1002 config_h
=$target_dir/config.h
1003 target_cpu
=`echo $target | cut -d '-' -f 1`
1004 target_bigendian
="no"
1005 [ "$target_cpu" = "armeb" ] && target_bigendian
=yes
1006 [ "$target_cpu" = "sparc" ] && target_bigendian
=yes
1007 [ "$target_cpu" = "sparc64" ] && target_bigendian
=yes
1008 [ "$target_cpu" = "sparc32plus" ] && target_bigendian
=yes
1009 [ "$target_cpu" = "ppc" ] && target_bigendian
=yes
1010 [ "$target_cpu" = "ppcemb" ] && target_bigendian
=yes
1011 [ "$target_cpu" = "ppc64" ] && target_bigendian
=yes
1012 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian
=yes
1013 [ "$target_cpu" = "mips" ] && target_bigendian
=yes
1014 [ "$target_cpu" = "mipsn32" ] && target_bigendian
=yes
1015 [ "$target_cpu" = "mips64" ] && target_bigendian
=yes
1016 [ "$target_cpu" = "sh4eb" ] && target_bigendian
=yes
1017 [ "$target_cpu" = "m68k" ] && target_bigendian
=yes
1019 target_user_only
="no"
1020 target_linux_user
="no"
1021 target_darwin_user
="no"
1023 ${target_cpu}-softmmu)
1024 target_softmmu
="yes"
1026 ${target_cpu}-linux-user)
1027 target_user_only
="yes"
1028 target_linux_user
="yes"
1030 ${target_cpu}-darwin-user)
1031 target_user_only
="yes"
1032 target_darwin_user
="yes"
1035 echo "ERROR: Target '$target' not recognised"
1040 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1041 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1042 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1043 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1044 echo "Note that this will disable all output from the virtual graphics card."
1048 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1050 test -f $config_h && mv $config_h ${config_h}~
1052 mkdir
-p $target_dir
1053 mkdir
-p $target_dir/fpu
1054 mkdir
-p $target_dir/tcg
1055 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1056 mkdir
-p $target_dir/nwfpe
1060 # don't use ln -sf as not all "ln -sf" over write the file/link
1062 rm -f $target_dir/Makefile
1063 ln -s $source_path/Makefile.target
$target_dir/Makefile
1066 echo "# Automatically generated by configure - do not modify" > $config_mak
1067 echo "/* Automatically generated by configure - do not modify */" > $config_h
1070 echo "include ../config-host.mak" >> $config_mak
1071 echo "#include \"../config-host.h\"" >> $config_h
1075 interp_prefix1
=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1076 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1078 if test "$target_cpu" = "i386" ; then
1079 echo "TARGET_ARCH=i386" >> $config_mak
1080 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1081 echo "#define TARGET_I386 1" >> $config_h
1082 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1083 echo "#define USE_KQEMU 1" >> $config_h
1085 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1086 echo "TARGET_ARCH=arm" >> $config_mak
1087 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1088 echo "#define TARGET_ARM 1" >> $config_h
1090 elif test "$target_cpu" = "sparc" ; then
1091 echo "TARGET_ARCH=sparc" >> $config_mak
1092 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1093 echo "#define TARGET_SPARC 1" >> $config_h
1094 elif test "$target_cpu" = "sparc64" ; then
1095 echo "TARGET_ARCH=sparc64" >> $config_mak
1096 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1097 echo "#define TARGET_SPARC 1" >> $config_h
1098 echo "#define TARGET_SPARC64 1" >> $config_h
1100 elif test "$target_cpu" = "sparc32plus" ; then
1101 echo "TARGET_ARCH=sparc64" >> $config_mak
1102 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1103 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1104 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1105 echo "#define TARGET_SPARC 1" >> $config_h
1106 echo "#define TARGET_SPARC64 1" >> $config_h
1107 echo "#define TARGET_ABI32 1" >> $config_h
1108 elif test "$target_cpu" = "ppc" ; then
1109 echo "TARGET_ARCH=ppc" >> $config_mak
1110 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1111 echo "#define TARGET_PPC 1" >> $config_h
1112 elif test "$target_cpu" = "ppcemb" ; then
1113 echo "TARGET_ARCH=ppcemb" >> $config_mak
1114 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1115 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1116 echo "#define TARGET_PPC 1" >> $config_h
1117 echo "#define TARGET_PPCEMB 1" >> $config_h
1118 elif test "$target_cpu" = "ppc64" ; then
1119 echo "TARGET_ARCH=ppc64" >> $config_mak
1120 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1121 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1122 echo "#define TARGET_PPC 1" >> $config_h
1123 echo "#define TARGET_PPC64 1" >> $config_h
1124 elif test "$target_cpu" = "ppc64abi32" ; then
1125 echo "TARGET_ARCH=ppc64" >> $config_mak
1126 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1127 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1128 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1129 echo "#define TARGET_PPC 1" >> $config_h
1130 echo "#define TARGET_PPC64 1" >> $config_h
1131 echo "#define TARGET_ABI32 1" >> $config_h
1132 elif test "$target_cpu" = "x86_64" ; then
1133 echo "TARGET_ARCH=x86_64" >> $config_mak
1134 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1135 echo "#define TARGET_I386 1" >> $config_h
1136 echo "#define TARGET_X86_64 1" >> $config_h
1137 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1138 echo "#define USE_KQEMU 1" >> $config_h
1140 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1141 echo "TARGET_ARCH=mips" >> $config_mak
1142 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1143 echo "#define TARGET_MIPS 1" >> $config_h
1144 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1145 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1146 echo "TARGET_ARCH=mipsn32" >> $config_mak
1147 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1148 echo "#define TARGET_MIPS 1" >> $config_h
1149 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1150 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1151 echo "TARGET_ARCH=mips64" >> $config_mak
1152 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1153 echo "#define TARGET_MIPS 1" >> $config_h
1154 echo "#define TARGET_MIPS64 1" >> $config_h
1155 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1156 elif test "$target_cpu" = "cris" ; then
1157 echo "TARGET_ARCH=cris" >> $config_mak
1158 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1159 echo "#define TARGET_CRIS 1" >> $config_h
1160 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1161 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1162 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1163 echo "TARGET_ARCH=sh4" >> $config_mak
1164 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1165 echo "#define TARGET_SH4 1" >> $config_h
1167 elif test "$target_cpu" = "m68k" ; then
1168 echo "TARGET_ARCH=m68k" >> $config_mak
1169 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1170 echo "#define TARGET_M68K 1" >> $config_h
1172 elif test "$target_cpu" = "alpha" ; then
1173 echo "TARGET_ARCH=alpha" >> $config_mak
1174 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1175 echo "#define TARGET_ALPHA 1" >> $config_h
1177 echo "Unsupported target CPU"
1180 if test "$target_bigendian" = "yes" ; then
1181 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1182 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1184 if test "$target_softmmu" = "yes" ; then
1185 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1186 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1188 if test "$target_user_only" = "yes" ; then
1189 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1190 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1192 if test "$target_linux_user" = "yes" ; then
1193 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1194 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1196 if test "$target_darwin_user" = "yes" ; then
1197 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1198 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1201 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
1202 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1203 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1205 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1206 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1207 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1209 # 32 bit ELF loader in addition to native 64 bit loader?
1210 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1211 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1212 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1215 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~
$config_h
1217 done # for target in $targets
1219 # build tree in object directory if source path is different from current one
1220 if test "$source_path_used" = "yes" ; then
1221 DIRS
="tests tests/cris slirp audio"
1222 FILES
="Makefile tests/Makefile"
1223 FILES
="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1224 for dir
in $DIRS ; do
1227 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1228 for f
in $FILES ; do
1230 ln -s $source_path/$f $f
1234 rm -f $TMPO $TMPC $TMPE $TMPS