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"
18 TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
19 TMPSDLLOG="${TMPDIR1}/qemu-conf-sdl-$$-${RANDOM}.log"
21 trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG; exit" 0 2 3 15
25 interp_prefix="/usr/gnemul/qemu-%M"
30 gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
38 cpu=`test $(uname -s) = AIX && uname -p || uname -m`
41 i386|i486|i586|i686|i86pc|BePC)
74 "Power Macintosh"|ppc|ppc64|powerpc)
131 OS_CFLAGS="-mno-cygwin"
132 if [ "$cpu" = "i386" ] ; then
135 audio_possible_drivers="sdl"
139 if [ "$cpu" = "i386" ] ; then
142 audio_possible_drivers="dsound sdl fmod"
146 audio_possible_drivers="oss sdl esd pa"
147 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
154 audio_possible_drivers="oss sdl esd pa"
156 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
163 audio_possible_drivers="oss sdl esd"
165 aio_lib="-lrt -lpthread"
171 audio_possible_drivers="oss sdl esd"
180 audio_drv_list="coreaudio"
181 audio_possible_drivers="coreaudio sdl fmod"
182 OS_CFLAGS="-mdynamic-no-pic"
183 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
190 needs_libsunmath="no"
191 solarisrev=`uname -r | cut -f2 -d.`
192 # have to select again, because `uname -m` returns i86pc
193 # even on an x86_64 box.
194 solariscpu=`isainfo -k`
195 if test "${solariscpu}" = "amd64" ; then
198 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
199 if test "$solarisrev" -le 9 ; then
200 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
201 needs_libsunmath="yes"
203 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
204 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
205 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
206 echo "Studio 11 can be downloaded from www.sun.com."
210 if test "$solarisrev" -ge 9 ; then
214 if test -f /usr/include/sys/soundcard.h ; then
217 audio_possible_drivers="oss sdl"
225 audio_possible_drivers="oss alsa sdl esd pa"
229 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
231 audio_possible_drivers="$audio_possible_drivers fmod"
236 if [ "$bsd" = "yes" ] ; then
237 if [ "$darwin" != "yes" ] ; then
245 source_path=`dirname "$0"`
246 source_path_used="no"
248 if [ -z "$source_path" ]; then
251 source_path=`cd "$source_path"; pwd`
253 [ -f "$workdir/vl.c" ] || source_path_used="yes"
256 # generate compile errors on warnings for development builds
257 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
262 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
264 --help|-h) show_help=yes
266 --prefix=*) prefix="$optarg"
268 --interp-prefix=*) interp_prefix="$optarg"
270 --source-path=*) source_path="$optarg"
271 source_path_used="yes"
273 --cross-prefix=*) cross_prefix="$optarg"
278 --host-cc=*) host_cc="$optarg"
280 --make=*) make="$optarg"
282 --install=*) install="$optarg"
284 --extra-cflags=*) CFLAGS="$optarg"
286 --extra-ldflags=*) LDFLAGS="$optarg"
288 --cpu=*) cpu="$optarg"
290 --target-list=*) target_list="$optarg"
292 --enable-gprof) gprof="yes"
294 --static) static="yes"
296 --disable-sdl) sdl="no"
298 --fmod-lib=*) fmod_lib="$optarg"
300 --fmod-inc=*) fmod_inc="$optarg"
302 --oss-lib=*) oss_lib="$optarg"
304 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
306 --audio-drv-list=*) audio_drv_list="$optarg"
308 --enable-sparse) sparse="yes"
310 --disable-sparse) sparse="no"
312 --disable-vnc-tls) vnc_tls="no"
314 --disable-slirp) slirp="no"
316 --disable-vde) vde="no"
318 --disable-kqemu) kqemu="no"
320 --disable-brlapi) brlapi="no"
322 --disable-bluez) bluez="no"
324 --disable-kvm) kvm="no"
326 --enable-profiler) profiler="yes"
331 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
333 --disable-gfx-check) check_gfx="no"
335 --disable-gcc-check) check_gcc="no"
337 --disable-system) softmmu="no"
339 --enable-system) softmmu="yes"
341 --disable-linux-user) linux_user="no"
343 --enable-linux-user) linux_user="yes"
345 --disable-darwin-user) darwin_user="no"
347 --enable-darwin-user) darwin_user="yes"
349 --disable-bsd-user) bsd_user="no"
351 --enable-bsd-user) bsd_user="yes"
353 --enable-uname-release=*) uname_release="$optarg"
358 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
359 target_cpu="sparc"; cpu="sparc" ;;
360 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
361 target_cpu="sparc"; cpu="sparc" ;;
362 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
363 target_cpu="sparc64"; cpu="sparc64" ;;
364 *) echo "undefined SPARC architecture. Exiting";exit 1;;
367 --enable-werror) werror="yes"
369 --disable-werror) werror="no"
371 --disable-curses) curses="no"
373 --disable-nptl) nptl="no"
375 --enable-mixemu) mixemu="yes"
377 --disable-aio) aio="no"
379 --disable-blobs) blobs="no"
381 --kerneldir=*) kerneldir="$optarg"
383 *) echo "ERROR: unknown option $opt"; show_help="yes"
388 # default flags for all hosts
389 CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
390 CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
391 LDFLAGS="$LDFLAGS -g"
392 if test "$werror" = "yes" ; then
393 CFLAGS="$CFLAGS -Werror"
396 if test "$solaris" = "no" ; then
397 if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
398 LDFLAGS="$LDFLAGS -Wl,--warn-common"
403 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
404 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
407 sparc) if test -z "$sparc_cpu" ; then
408 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
411 ARCH_CFLAGS="${SP_CFLAGS}"
412 ARCH_LDFLAGS="${SP_LDFLAGS}"
415 sparc64) if test -z "$sparc_cpu" ; then
416 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
419 ARCH_CFLAGS="${SP_CFLAGS}"
420 ARCH_LDFLAGS="${SP_LDFLAGS}"
424 ARCH_CFLAGS="-march=z900"
436 if test x"$show_help" = x"yes" ; then
439 Usage: configure [options]
440 Options: [defaults in brackets after descriptions]
443 echo "Standard options:"
444 echo " --help print this message"
445 echo " --prefix=PREFIX install in PREFIX [$prefix]"
446 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
447 echo " use %M for cpu name [$interp_prefix]"
448 echo " --target-list=LIST set target list [$target_list]"
450 echo "kqemu kernel acceleration support:"
451 echo " --disable-kqemu disable kqemu support"
453 echo "Advanced options (experts only):"
454 echo " --source-path=PATH path of source code [$source_path]"
455 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
456 echo " --cc=CC use C compiler CC [$cc]"
457 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
458 echo " --make=MAKE use specified make [$make]"
459 echo " --install=INSTALL use specified install [$install]"
460 echo " --static enable static build [$static]"
461 echo " --enable-sparse enable sparse checker"
462 echo " --disable-sparse disable sparse checker (default)"
463 echo " --disable-werror disable compilation abort on warning"
464 echo " --disable-sdl disable SDL"
465 echo " --enable-cocoa enable COCOA (Mac OS X only)"
466 echo " --audio-drv-list=LIST set audio drivers list:"
467 echo " Available drivers: $audio_possible_drivers"
468 echo " --audio-card-list=LIST set list of additional emulated audio cards"
469 echo " Available cards: ac97 adlib cs4231a gus"
470 echo " --enable-mixemu enable mixer emulation"
471 echo " --disable-brlapi disable BrlAPI"
472 echo " --disable-vnc-tls disable TLS encryption for VNC server"
473 echo " --disable-curses disable curses output"
474 echo " --disable-bluez disable bluez stack connectivity"
475 echo " --disable-kvm disable KVM acceleration support"
476 echo " --disable-nptl disable usermode NPTL support"
477 echo " --enable-system enable all system emulation targets"
478 echo " --disable-system disable all system emulation targets"
479 echo " --enable-linux-user enable all linux usermode emulation targets"
480 echo " --disable-linux-user disable all linux usermode emulation targets"
481 echo " --enable-darwin-user enable all darwin usermode emulation targets"
482 echo " --disable-darwin-user disable all darwin usermode emulation targets"
483 echo " --enable-bsd-user enable all BSD usermode emulation targets"
484 echo " --disable-bsd-user disable all BSD usermode emulation targets"
485 echo " --fmod-lib path to FMOD library"
486 echo " --fmod-inc path to FMOD includes"
487 echo " --oss-lib path to OSS library"
488 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
489 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
490 echo " --disable-vde disable support for vde network"
491 echo " --disable-aio disable AIO support"
492 echo " --disable-blobs disable installing provided firmware blobs"
493 echo " --kerneldir=PATH look for kernel includes in PATH"
495 echo "NOTE: The object files are built at the place where configure is launched"
499 cc="${cross_prefix}${cc}"
500 ar="${cross_prefix}${ar}"
501 strip="${cross_prefix}${strip}"
503 # check that the C compiler works.
508 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
509 : C compiler works ok
511 echo "ERROR: \"$cc\" either does not exist or does not work"
515 # check compiler to see if we're on mingw32
524 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
528 if test "$mingw32" = "yes" ; then
536 if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
538 elif [ "$bsd" = "yes" ]; then
541 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
542 AIOLIBS="-lrt -lpthread"
545 # Check for gcc4, error if pre-gcc4
546 if test "$check_gcc" = "yes" ; then
551 int main(){return 0;}
553 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
554 echo "WARNING: \"$cc\" looks like gcc 4.x"
556 if test "$gcc3_search" = "yes" ; then
557 echo "Looking for gcc 3.x"
558 for compat_cc in $gcc3_list ; do
559 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
560 echo "Found \"$compat_cc\""
561 cc="$cross_prefix$compat_cc"
562 found_compat_cc="yes"
566 if test "$found_compat_cc" = "no" ; then
567 echo "gcc 3.x not found!"
570 if test "$found_compat_cc" = "no" ; then
571 echo "QEMU is known to have problems when compiled with gcc 4.x"
572 echo "It is recommended that you use gcc 3.x to build QEMU"
573 echo "To use this compiler anyway, configure with --disable-gcc-check"
579 if test ! -x "$(which cgcc 2>/dev/null)"; then
584 # Solaris specific configure tool chain decisions
586 if test "$solaris" = "yes" ; then
588 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
589 # override the check with --disable-gcc-check
591 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
593 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
594 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
595 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
596 echo "or get the latest patch from SunSolve for gcc"
600 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
601 if test -z "$solinst" ; then
602 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
603 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
604 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
607 if test "$solinst" = "/usr/sbin/install" ; then
608 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
609 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
610 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
613 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
614 if test -z "$sol_ar" ; then
615 echo "Error: No path includes ar"
616 if test -f /usr/ccs/bin/ar ; then
617 echo "Add /usr/ccs/bin to your path and rerun configure"
624 if test -z "$target_list" ; then
625 # these targets are portable
626 if [ "$softmmu" = "yes" ] ; then
645 # the following are Linux specific
646 if [ "$linux_user" = "yes" ] ; then
647 target_list="${target_list}\
659 ppc64abi32-linux-user \
664 sparc32plus-linux-user \
667 # the following are Darwin specific
668 if [ "$darwin_user" = "yes" ] ; then
669 target_list="$target_list i386-darwin-user ppc-darwin-user"
671 # the following are BSD specific
672 if [ "$bsd_user" = "yes" ] ; then
673 target_list="${target_list}\
678 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
680 if test -z "$target_list" ; then
681 echo "No targets enabled"
685 if test -z "$cross_prefix" ; then
688 # big/little endian test
690 #include <inttypes.h>
691 int main(int argc, char ** argv){
692 volatile uint32_t i=0x01234567;
693 return (*((uint8_t*)(&i))) == 0x67;
697 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
698 $TMPE && bigendian="yes"
700 echo big/little test failed
705 # if cross compiling, cannot launch a program, so make a static guess
706 if test "$cpu" = "armv4b" \
710 -o "$cpu" = "mips64" \
711 -o "$cpu" = "powerpc" \
713 -o "$cpu" = "sparc" \
714 -o "$cpu" = "sparc64"; then
720 # host long bits test
722 if test "$cpu" = "x86_64" \
723 -o "$cpu" = "alpha" \
725 -o "$cpu" = "sparc64"; then
729 # ppc specific hostlongbits selection
730 if test "$cpu" = "powerpc" ; then
731 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
732 grep -q __powerpc64__ $TMPI && hostlongbits=64
734 echo hostlongbits test failed
739 # check gcc options support
745 # Check host NPTL support
748 #include <linux/futex.h>
751 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
757 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
763 ##########################################
768 int main(void) { zlibVersion(); return 0; }
770 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
774 echo "Error: zlib check failed"
775 echo "Make sure to have the zlib libs and headers installed."
780 ##########################################
785 if test -z "$sdl" ; then
786 sdl_config="sdl-config"
792 #undef main /* We don't want SDL to override our main() */
793 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
795 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> $TMPSDLLOG ; then
796 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
797 if test "$_sdlversion" -lt 121 ; then
800 if test "$cocoa" = "no" ; then
805 # static link with sdl ?
806 if test "$sdl" = "yes" ; then
808 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
809 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
810 if [ "$aa" = "yes" ] ; then
811 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
814 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
818 fi # sdl compile test
820 # Make sure to disable cocoa if sdl was set
821 if test "$sdl" = "yes" ; then
823 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
827 ##########################################
829 if test "$vnc_tls" = "yes" ; then
831 #include <gnutls/gnutls.h>
832 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
834 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
835 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
836 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
837 $vnc_tls_libs 2> /dev/null ; then
844 ##########################################
845 # vde libraries probe
846 if test "$vde" = "yes" ; then
848 #include <libvdeplug.h>
851 struct vde_open_args a = {0, 0, 0};
852 vde_open("", "", &a);
856 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
863 ##########################################
864 # Sound support libraries probe
875 int main(void) { $exp }
877 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
881 echo "Error: $drv check failed"
882 echo "Make sure to have the $drv libs and headers installed."
888 audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
889 for drv in $audio_drv_list; do
892 audio_drv_probe $drv alsa/asoundlib.h -lasound \
893 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
897 if test -z $fmod_lib || test -z $fmod_inc; then
899 echo "Error: You must specify path to FMOD library and headers"
900 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
904 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
908 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
912 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
913 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
916 oss|sdl|core|wav|dsound)
917 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
921 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
923 echo "Error: Unknown driver '$drv' selected"
924 echo "Possible drivers are: $audio_possible_drivers"
932 ##########################################
935 if test -z "$brlapi" ; then
939 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
941 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
943 fi # brlapi compile test
946 ##########################################
949 if test "$curses" = "yes" ; then
953 int main(void) { return curses_version(); }
955 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
960 ##########################################
961 # bluez support probe
962 if test "$bluez" = "yes" ; then
963 `pkg-config bluez` || bluez="no"
965 if test "$bluez" = "yes" ; then
967 #include <bluetooth/bluetooth.h>
968 int main(void) { return bt_error(0); }
970 bluez_cflags=`pkg-config --cflags bluez`
971 bluez_libs=`pkg-config --libs bluez`
972 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
973 $bluez_libs 2> /dev/null ; then
980 ##########################################
982 if test "$kvm" = "yes" ; then
984 #include <linux/kvm.h>
985 #if !defined(KVM_API_VERSION) || \
986 KVM_API_VERSION < 12 || \
987 KVM_API_VERSION > 12 || \
988 !defined(KVM_CAP_USER_MEMORY) || \
989 !defined(KVM_CAP_SET_TSS_ADDR)
990 #error Invalid KVM version
992 int main(void) { return 0; }
994 if test "$kerneldir" != "" ; then
995 kvm_cflags=-I"$kerneldir"/include
999 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
1007 ##########################################
1009 if test "$aio" = "yes" ; then
1013 int main(void) { return aio_write(NULL); }
1015 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
1020 # Check if tools are available to build documentation.
1021 if [ -x "`which texi2html 2>/dev/null`" ] && \
1022 [ -x "`which pod2man 2>/dev/null`" ]; then
1026 if test "$mingw32" = "yes" ; then
1027 if test -z "$prefix" ; then
1028 prefix="c:\\\\Program Files\\\\Qemu"
1035 if test -z "$prefix" ; then
1038 mansuffix="/share/man"
1039 datasuffix="/share/qemu"
1040 docsuffix="/share/doc/qemu"
1044 echo "Install prefix $prefix"
1045 echo "BIOS directory $prefix$datasuffix"
1046 echo "binary directory $prefix$binsuffix"
1047 if test "$mingw32" = "no" ; then
1048 echo "Manual directory $prefix$mansuffix"
1049 echo "ELF interp prefix $interp_prefix"
1051 echo "Source path $source_path"
1052 echo "C compiler $cc"
1053 echo "Host C compiler $host_cc"
1054 echo "ARCH_CFLAGS $ARCH_CFLAGS"
1056 echo "install $install"
1057 echo "host CPU $cpu"
1058 echo "host big endian $bigendian"
1059 echo "target list $target_list"
1060 echo "gprof enabled $gprof"
1061 echo "sparse enabled $sparse"
1062 echo "profiler $profiler"
1063 echo "static build $static"
1064 echo "-Werror enabled $werror"
1065 if test "$darwin" = "yes" ; then
1066 echo "Cocoa support $cocoa"
1068 echo "SDL support $sdl"
1069 if test "$sdl" != "no" ; then
1070 echo "SDL static link $sdl_static"
1072 echo "curses support $curses"
1073 echo "mingw32 support $mingw32"
1074 echo "Audio drivers $audio_drv_list"
1075 echo "Extra audio cards $audio_card_list"
1076 echo "Mixer emulation $mixemu"
1077 echo "VNC TLS support $vnc_tls"
1078 if test "$vnc_tls" = "yes" ; then
1079 echo " TLS CFLAGS $vnc_tls_cflags"
1080 echo " TLS LIBS $vnc_tls_libs"
1082 if test -n "$sparc_cpu"; then
1083 echo "Target Sparc Arch $sparc_cpu"
1085 echo "kqemu support $kqemu"
1086 echo "brlapi support $brlapi"
1087 echo "Documentation $build_docs"
1088 [ ! -z "$uname_release" ] && \
1089 echo "uname -r $uname_release"
1090 echo "NPTL support $nptl"
1091 echo "vde support $vde"
1092 echo "AIO support $aio"
1093 echo "Install blobs $blobs"
1094 echo "KVM support $kvm"
1096 if test $sdl_too_old = "yes"; then
1097 echo "-> Your SDL version is too old - please upgrade to have SDL support"
1099 if [ -s $TMPSDLLOG ]; then
1100 echo "The error log from compiling the libSDL test is: "
1103 #if test "$sdl_static" = "no"; then
1104 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1106 config_mak="config-host.mak"
1107 config_h="config-host.h"
1109 #echo "Creating $config_mak and $config_h"
1111 test -f $config_h && mv $config_h ${config_h}~
1113 echo "# Automatically generated by configure - do not modify" > $config_mak
1114 echo "# Configured with: $0 $@" >> $config_mak
1115 echo "/* Automatically generated by configure - do not modify */" > $config_h
1117 echo "prefix=$prefix" >> $config_mak
1118 echo "bindir=\${prefix}$binsuffix" >> $config_mak
1119 echo "mandir=\${prefix}$mansuffix" >> $config_mak
1120 echo "datadir=\${prefix}$datasuffix" >> $config_mak
1121 echo "docdir=\${prefix}$docsuffix" >> $config_mak
1122 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1123 echo "MAKE=$make" >> $config_mak
1124 echo "INSTALL=$install" >> $config_mak
1125 echo "CC=$cc" >> $config_mak
1126 echo "HOST_CC=$host_cc" >> $config_mak
1127 echo "AR=$ar" >> $config_mak
1128 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1129 # XXX: only use CFLAGS and LDFLAGS ?
1130 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1131 # compilation of dyngen tool (useful for win32 build on Linux host)
1132 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1133 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1134 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1135 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1136 echo "CFLAGS=$CFLAGS" >> $config_mak
1137 echo "LDFLAGS=$LDFLAGS" >> $config_mak
1138 echo "EXESUF=$EXESUF" >> $config_mak
1139 echo "AIOLIBS=$AIOLIBS" >> $config_mak
1142 echo "ARCH=i386" >> $config_mak
1143 echo "#define HOST_I386 1" >> $config_h
1146 echo "ARCH=x86_64" >> $config_mak
1147 echo "#define HOST_X86_64 1" >> $config_h
1150 echo "ARCH=alpha" >> $config_mak
1151 echo "#define HOST_ALPHA 1" >> $config_h
1154 echo "ARCH=arm" >> $config_mak
1155 echo "#define HOST_ARM 1" >> $config_h
1158 echo "ARCH=arm" >> $config_mak
1159 echo "#define HOST_ARM 1" >> $config_h
1162 echo "ARCH=cris" >> $config_mak
1163 echo "#define HOST_CRIS 1" >> $config_h
1166 echo "ARCH=hppa" >> $config_mak
1167 echo "#define HOST_HPPA 1" >> $config_h
1170 echo "ARCH=ia64" >> $config_mak
1171 echo "#define HOST_IA64 1" >> $config_h
1174 echo "ARCH=m68k" >> $config_mak
1175 echo "#define HOST_M68K 1" >> $config_h
1178 echo "ARCH=mips" >> $config_mak
1179 echo "#define HOST_MIPS 1" >> $config_h
1182 echo "ARCH=mips64" >> $config_mak
1183 echo "#define HOST_MIPS64 1" >> $config_h
1186 if test "$hostlongbits" = "32"; then
1187 echo "ARCH=ppc" >> $config_mak
1188 echo "#define HOST_PPC 1" >> $config_h
1190 echo "ARCH=ppc64" >> $config_mak
1191 echo "#define HOST_PPC64 1" >> $config_h
1195 echo "ARCH=s390" >> $config_mak
1196 echo "#define HOST_S390 1" >> $config_h
1199 echo "ARCH=sparc" >> $config_mak
1200 echo "#define HOST_SPARC 1" >> $config_h
1203 echo "ARCH=sparc64" >> $config_mak
1204 echo "#define HOST_SPARC64 1" >> $config_h
1207 echo "Unsupported CPU = $cpu"
1211 if test "$sparse" = "yes" ; then
1212 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
1213 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
1214 echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
1216 if test "$bigendian" = "yes" ; then
1217 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1218 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1220 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1221 if test "$mingw32" = "yes" ; then
1222 echo "CONFIG_WIN32=yes" >> $config_mak
1223 echo "#define CONFIG_WIN32 1" >> $config_h
1226 #include <byteswap.h>
1227 int main(void) { return bswap_32(0); }
1229 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1230 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1233 #include <sys/endian.h>
1234 #include <sys/types.h>
1235 #include <machine/bswap.h>
1236 int main(void) { return bswap32(0); }
1238 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1239 echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_h
1243 if [ "$openbsd" = "yes" ] ; then
1244 echo "#define ENOTSUP 4096" >> $config_h
1247 if test "$darwin" = "yes" ; then
1248 echo "CONFIG_DARWIN=yes" >> $config_mak
1249 echo "#define CONFIG_DARWIN 1" >> $config_h
1252 if test "$aix" = "yes" ; then
1253 echo "CONFIG_AIX=yes" >> $config_mak
1254 echo "#define CONFIG_AIX 1" >> $config_h
1257 if test "$solaris" = "yes" ; then
1258 echo "CONFIG_SOLARIS=yes" >> $config_mak
1259 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1260 if test "$needs_libsunmath" = "yes" ; then
1261 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1262 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1265 if test -n "$sparc_cpu"; then
1266 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1267 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1269 if test "$gdbstub" = "yes" ; then
1270 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1271 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1273 if test "$gprof" = "yes" ; then
1274 echo "TARGET_GPROF=yes" >> $config_mak
1275 echo "#define HAVE_GPROF 1" >> $config_h
1277 if test "$static" = "yes" ; then
1278 echo "CONFIG_STATIC=yes" >> $config_mak
1279 echo "#define CONFIG_STATIC 1" >> $config_h
1281 if test $profiler = "yes" ; then
1282 echo "#define CONFIG_PROFILER 1" >> $config_h
1284 if test "$slirp" = "yes" ; then
1285 echo "CONFIG_SLIRP=yes" >> $config_mak
1286 echo "#define CONFIG_SLIRP 1" >> $config_h
1288 if test "$vde" = "yes" ; then
1289 echo "CONFIG_VDE=yes" >> $config_mak
1290 echo "#define CONFIG_VDE 1" >> $config_h
1291 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1293 for card in $audio_card_list; do
1294 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1295 echo "$def=yes" >> $config_mak
1296 echo "#define $def 1" >> $config_h
1298 echo "#define AUDIO_DRIVERS \\" >> $config_h
1299 for drv in $audio_drv_list; do
1300 echo " &${drv}_audio_driver, \\" >>$config_h
1301 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1302 echo "$def=yes" >> $config_mak
1303 if test "$drv" = "fmod"; then
1304 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1305 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1306 elif test "$drv" = "oss"; then
1307 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1311 if test "$mixemu" = "yes" ; then
1312 echo "CONFIG_MIXEMU=yes" >> $config_mak
1313 echo "#define CONFIG_MIXEMU 1" >> $config_h
1315 if test "$vnc_tls" = "yes" ; then
1316 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1317 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1318 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1319 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1321 qemu_version=`head $source_path/VERSION`
1322 echo "VERSION=$qemu_version" >>$config_mak
1323 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1325 echo "SRC_PATH=$source_path" >> $config_mak
1326 if [ "$source_path_used" = "yes" ]; then
1327 echo "VPATH=$source_path" >> $config_mak
1329 echo "TARGET_DIRS=$target_list" >> $config_mak
1330 if [ "$build_docs" = "yes" ] ; then
1331 echo "BUILD_DOCS=yes" >> $config_mak
1333 if test "$static" = "yes"; then
1338 if test "$sdl1" = "yes" ; then
1339 echo "#define CONFIG_SDL 1" >> $config_h
1340 echo "CONFIG_SDL=yes" >> $config_mak
1341 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1342 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1344 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1346 if [ "${aa}" = "yes" ] ; then
1347 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1349 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1352 if test "$cocoa" = "yes" ; then
1353 echo "#define CONFIG_COCOA 1" >> $config_h
1354 echo "CONFIG_COCOA=yes" >> $config_mak
1356 if test "$curses" = "yes" ; then
1357 echo "#define CONFIG_CURSES 1" >> $config_h
1358 echo "CONFIG_CURSES=yes" >> $config_mak
1359 echo "CURSES_LIBS=-lcurses" >> $config_mak
1361 if test "$brlapi" = "yes" ; then
1362 echo "CONFIG_BRLAPI=yes" >> $config_mak
1363 echo "#define CONFIG_BRLAPI 1" >> $config_h
1364 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1366 if test "$bluez" = "yes" ; then
1367 echo "CONFIG_BLUEZ=yes" >> $config_mak
1368 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1369 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1370 echo "#define CONFIG_BLUEZ 1" >> $config_h
1372 if test "$aio" = "yes" ; then
1373 echo "#define CONFIG_AIO 1" >> $config_h
1374 echo "CONFIG_AIO=yes" >> $config_mak
1376 if test "$blobs" = "yes" ; then
1377 echo "INSTALL_BLOBS=yes" >> $config_mak
1380 # XXX: suppress that
1381 if [ "$bsd" = "yes" ] ; then
1382 echo "#define O_LARGEFILE 0" >> $config_h
1383 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1384 echo "#define _BSD 1" >> $config_h
1387 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1392 echo "HOST_USB=linux" >> $config_mak
1395 echo "HOST_USB=bsd" >> $config_mak
1398 echo "HOST_USB=stub" >> $config_mak
1403 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1404 tools="qemu-img\$(EXESUF) $tools"
1405 if [ "$linux" = "yes" ] ; then
1406 tools="qemu-nbd\$(EXESUF) $tools"
1409 echo "TOOLS=$tools" >> $config_mak
1411 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1413 for target in $target_list; do
1414 target_dir="$target"
1415 config_mak=$target_dir/config.mak
1416 config_h=$target_dir/config.h
1417 target_cpu=`echo $target | cut -d '-' -f 1`
1418 target_bigendian="no"
1419 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1420 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1421 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1422 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1423 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1424 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1425 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1426 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1427 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1428 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1429 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1430 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1431 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1433 target_user_only="no"
1434 target_linux_user="no"
1435 target_darwin_user="no"
1436 target_bsd_user="no"
1438 ${target_cpu}-softmmu)
1439 target_softmmu="yes"
1441 ${target_cpu}-linux-user)
1442 target_user_only="yes"
1443 target_linux_user="yes"
1445 ${target_cpu}-darwin-user)
1446 target_user_only="yes"
1447 target_darwin_user="yes"
1449 ${target_cpu}-bsd-user)
1450 target_user_only="yes"
1451 target_bsd_user="yes"
1454 echo "ERROR: Target '$target' not recognised"
1459 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1460 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1461 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1462 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1463 echo "Note that this will disable all output from the virtual graphics card"
1464 echo "except through VNC or curses."
1468 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1470 test -f $config_h && mv $config_h ${config_h}~
1472 mkdir -p $target_dir
1473 mkdir -p $target_dir/fpu
1474 mkdir -p $target_dir/tcg
1475 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
1476 mkdir -p $target_dir/nwfpe
1480 # don't use ln -sf as not all "ln -sf" over write the file/link
1482 rm -f $target_dir/Makefile
1483 ln -s $source_path/Makefile.target $target_dir/Makefile
1486 echo "# Automatically generated by configure - do not modify" > $config_mak
1487 echo "/* Automatically generated by configure - do not modify */" > $config_h
1490 echo "include ../config-host.mak" >> $config_mak
1491 echo "#include \"../config-host.h\"" >> $config_h
1496 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1497 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1500 # Make sure the target and host cpus are compatible
1501 if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
1502 \( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
1503 \( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
1506 # Disable KVM for linux-user
1507 if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
1511 case "$target_cpu" in
1513 echo "TARGET_ARCH=i386" >> $config_mak
1514 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1515 echo "#define TARGET_I386 1" >> $config_h
1516 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1518 echo "#define USE_KQEMU 1" >> $config_h
1520 if test "$kvm" = "yes" ; then
1521 echo "CONFIG_KVM=yes" >> $config_mak
1522 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1523 echo "#define CONFIG_KVM 1" >> $config_h
1525 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1526 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1528 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1530 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1534 echo "TARGET_ARCH=x86_64" >> $config_mak
1535 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1536 echo "#define TARGET_I386 1" >> $config_h
1537 echo "#define TARGET_X86_64 1" >> $config_h
1538 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1540 echo "#define USE_KQEMU 1" >> $config_h
1542 if test "$kvm" = "yes" ; then
1543 echo "CONFIG_KVM=yes" >> $config_mak
1544 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1545 echo "#define CONFIG_KVM 1" >> $config_h
1549 echo "TARGET_ARCH=alpha" >> $config_mak
1550 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1551 echo "#define TARGET_ALPHA 1" >> $config_h
1554 echo "TARGET_ARCH=arm" >> $config_mak
1555 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1556 echo "#define TARGET_ARM 1" >> $config_h
1559 gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
1562 echo "TARGET_ARCH=cris" >> $config_mak
1563 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1564 echo "#define TARGET_CRIS 1" >> $config_h
1567 echo "TARGET_ARCH=m68k" >> $config_mak
1568 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1569 echo "#define TARGET_M68K 1" >> $config_h
1571 gdb_xml_files="cf-core.xml cf-fp.xml"
1574 echo "TARGET_ARCH=mips" >> $config_mak
1575 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1576 echo "#define TARGET_MIPS 1" >> $config_h
1577 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1580 echo "TARGET_ARCH=mipsn32" >> $config_mak
1581 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1582 echo "#define TARGET_MIPS 1" >> $config_h
1583 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1586 echo "TARGET_ARCH=mips64" >> $config_mak
1587 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1588 echo "#define TARGET_MIPS 1" >> $config_h
1589 echo "#define TARGET_MIPS64 1" >> $config_h
1590 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1593 echo "TARGET_ARCH=ppc" >> $config_mak
1594 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1595 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1596 echo "#define TARGET_PPC 1" >> $config_h
1597 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1600 echo "TARGET_ARCH=ppcemb" >> $config_mak
1601 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1602 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1603 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1604 echo "#define TARGET_PPC 1" >> $config_h
1605 echo "#define TARGET_PPCEMB 1" >> $config_h
1606 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1609 echo "TARGET_ARCH=ppc64" >> $config_mak
1610 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1611 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1612 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1613 echo "#define TARGET_PPC 1" >> $config_h
1614 echo "#define TARGET_PPC64 1" >> $config_h
1615 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1618 echo "TARGET_ARCH=ppc64" >> $config_mak
1619 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1620 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1621 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1622 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1623 echo "#define TARGET_PPC 1" >> $config_h
1624 echo "#define TARGET_PPC64 1" >> $config_h
1625 echo "#define TARGET_ABI32 1" >> $config_h
1626 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1629 echo "TARGET_ARCH=sh4" >> $config_mak
1630 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1631 echo "#define TARGET_SH4 1" >> $config_h
1636 echo "TARGET_ARCH=sparc" >> $config_mak
1637 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1638 echo "#define TARGET_SPARC 1" >> $config_h
1641 echo "TARGET_ARCH=sparc64" >> $config_mak
1642 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1643 echo "#define TARGET_SPARC 1" >> $config_h
1644 echo "#define TARGET_SPARC64 1" >> $config_h
1648 echo "TARGET_ARCH=sparc64" >> $config_mak
1649 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1650 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1651 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1652 echo "#define TARGET_SPARC 1" >> $config_h
1653 echo "#define TARGET_SPARC64 1" >> $config_h
1654 echo "#define TARGET_ABI32 1" >> $config_h
1657 echo "Unsupported target CPU"
1661 if test "$target_bigendian" = "yes" ; then
1662 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1663 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1665 if test "$target_softmmu" = "yes" ; then
1666 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1667 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1669 if test "$target_user_only" = "yes" ; then
1670 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1671 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1673 if test "$target_linux_user" = "yes" ; then
1674 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1675 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1677 if test "$target_darwin_user" = "yes" ; then
1678 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1679 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1682 if test ! -z "$gdb_xml_files" ; then
1683 for x in $gdb_xml_files; do
1684 list="$list $source_path/gdb-xml/$x"
1687 echo "TARGET_XML_FILES=$list" >> $config_mak
1689 if test "$target_cpu" = "arm" \
1690 -o "$target_cpu" = "armeb" \
1691 -o "$target_cpu" = "m68k" \
1692 -o "$target_cpu" = "mips" \
1693 -o "$target_cpu" = "mipsel" \
1694 -o "$target_cpu" = "mipsn32" \
1695 -o "$target_cpu" = "mipsn32el" \
1696 -o "$target_cpu" = "mips64" \
1697 -o "$target_cpu" = "mips64el" \
1698 -o "$target_cpu" = "sparc" \
1699 -o "$target_cpu" = "sparc64" \
1700 -o "$target_cpu" = "sparc32plus"; then
1701 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1702 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1704 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1705 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1706 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1708 if test "$target_user_only" = "yes" \
1709 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1710 echo "#define USE_NPTL 1" >> $config_h
1712 # 32 bit ELF loader in addition to native 64 bit loader?
1713 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1714 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1715 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1717 if test "$target_bsd_user" = "yes" ; then
1718 echo "CONFIG_BSD_USER=yes" >> $config_mak
1719 echo "#define CONFIG_BSD_USER 1" >> $config_h
1722 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1724 done # for target in $targets
1726 # build tree in object directory if source path is different from current one
1727 if test "$source_path_used" = "yes" ; then
1728 DIRS="tests tests/cris slirp audio"
1729 FILES="Makefile tests/Makefile"
1730 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1731 FILES="$FILES tests/test-mmap.c"
1732 for dir in $DIRS ; do
1735 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1736 for f in $FILES ; do
1738 ln -s $source_path/$f $f