Remove >= asserts on unsigned inputs
[qemu-kvm/fedora.git] / configure
blob51be6e7ff4adaa8f81b957539a22a2f1313661c2
1 #!/bin/sh
3 # qemu configure script (c) 2003 Fabrice Bellard
5 # set temporary file name
6 if test ! -z "$TMPDIR" ; then
7 TMPDIR1="${TMPDIR}"
8 elif test ! -z "$TEMPDIR" ; then
9 TMPDIR1="${TEMPDIR}"
10 else
11 TMPDIR1="/tmp"
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"
19 # default parameters
20 prefix=""
21 interp_prefix="/usr/gnemul/qemu-%M"
22 static="no"
23 cross_prefix=""
24 cc="gcc"
25 gcc3_search="yes"
26 gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
27 audio_drv_list=""
28 audio_card_list=""
29 host_cc="gcc"
30 ar="ar"
31 make="make"
32 install="install"
33 strip="strip"
34 cpu=`uname -m`
35 target_list=""
36 case "$cpu" in
37 i386|i486|i586|i686|i86pc|BePC)
38 cpu="i386"
40 x86_64|amd64)
41 cpu="x86_64"
43 alpha)
44 cpu="alpha"
46 armv*b)
47 cpu="armv4b"
49 armv*l)
50 cpu="armv4l"
52 cris)
53 cpu="cris"
55 parisc|parisc64)
56 cpu="hppa"
58 ia64)
59 cpu="ia64"
61 m68k)
62 cpu="m68k"
64 mips)
65 cpu="mips"
67 mips64)
68 cpu="mips64"
70 "Power Macintosh"|ppc|ppc64)
71 cpu="powerpc"
73 s390*)
74 cpu="s390"
76 sparc|sun4[cdmuv])
77 cpu="sparc"
79 sparc64)
80 cpu="sparc64"
83 cpu="unknown"
85 esac
86 gprof="no"
87 bigendian="no"
88 mingw32="no"
89 EXESUF=""
90 gdbstub="yes"
91 slirp="yes"
92 fmod_lib=""
93 fmod_inc=""
94 vnc_tls="yes"
95 bsd="no"
96 linux="no"
97 kqemu="no"
98 profiler="no"
99 cocoa="no"
100 check_gfx="yes"
101 check_gcc="yes"
102 softmmu="yes"
103 linux_user="no"
104 darwin_user="no"
105 build_docs="no"
106 uname_release=""
107 curses="yes"
108 nptl="yes"
109 mixemu="no"
111 # OS specific
112 targetos=`uname -s`
113 case $targetos in
114 CYGWIN*)
115 mingw32="yes"
116 OS_CFLAGS="-mno-cygwin"
117 if [ "$cpu" = "i386" ] ; then
118 kqemu="yes"
120 audio_possible_drivers="sdl"
122 MINGW32*)
123 mingw32="yes"
124 if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
127 audio_possible_drivers="dsound sdl fmod"
129 GNU/kFreeBSD)
130 audio_drv_list="oss"
131 audio_possible_drivers="oss sdl esd"
132 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
133 kqemu="yes"
136 FreeBSD)
137 bsd="yes"
138 audio_drv_list="oss"
139 audio_possible_drivers="oss sdl esd"
140 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
141 kqemu="yes"
144 NetBSD)
145 bsd="yes"
146 audio_drv_list="oss"
147 audio_possible_drivers="oss sdl esd"
149 OpenBSD)
150 bsd="yes"
151 audio_drv_list="oss"
152 audio_possible_drivers="oss sdl esd"
154 Darwin)
155 bsd="yes"
156 darwin="yes"
157 darwin_user="yes"
158 cocoa="yes"
159 audio_drv_list="coreaudio"
160 audio_possible_drivers="coreaudio sdl fmod"
161 OS_CFLAGS="-mdynamic-no-pic"
162 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
164 SunOS)
165 solaris="yes"
166 make="gmake"
167 install="ginstall"
168 needs_libsunmath="no"
169 solarisrev=`uname -r | cut -f2 -d.`
170 # have to select again, because `uname -m` returns i86pc
171 # even on an x86_64 box.
172 solariscpu=`isainfo -k`
173 if test "${solariscpu}" = "amd64" ; then
174 cpu="x86_64"
176 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
177 if test "$solarisrev" -le 9 ; then
178 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
179 needs_libsunmath="yes"
180 else
181 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
182 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
183 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
184 echo "Studio 11 can be downloaded from www.sun.com."
185 exit 1
188 if test "$solarisrev" -ge 9 ; then
189 kqemu="yes"
192 if test -f /usr/include/sys/soundcard.h ; then
193 audio_drv_list="oss"
195 audio_possible_drivers="oss sdl"
198 audio_drv_list="oss"
199 audio_possible_drivers="oss alsa sdl esd pa"
200 linux="yes"
201 linux_user="yes"
202 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
203 kqemu="yes"
204 audio_possible_drivers="$audio_possible_drivers fmod"
207 esac
209 if [ "$bsd" = "yes" ] ; then
210 if [ "$darwin" != "yes" ] ; then
211 make="gmake"
215 # find source path
216 source_path=`dirname "$0"`
217 source_path_used="no"
218 workdir=`pwd`
219 if [ -z "$source_path" ]; then
220 source_path=$workdir
221 else
222 source_path=`cd "$source_path"; pwd`
224 [ -f "$workdir/vl.c" ] || source_path_used="yes"
226 werror="no"
227 # generate compile errors on warnings for development builds
228 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
229 #werror="yes";
232 for opt do
233 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
234 case "$opt" in
235 --help|-h) show_help=yes
237 --prefix=*) prefix="$optarg"
239 --interp-prefix=*) interp_prefix="$optarg"
241 --source-path=*) source_path="$optarg"
242 source_path_used="yes"
244 --cross-prefix=*) cross_prefix="$optarg"
246 --cc=*) cc="$optarg"
247 gcc3_search="no"
249 --host-cc=*) host_cc="$optarg"
251 --make=*) make="$optarg"
253 --install=*) install="$optarg"
255 --extra-cflags=*) CFLAGS="$optarg"
257 --extra-ldflags=*) LDFLAGS="$optarg"
259 --cpu=*) cpu="$optarg"
261 --target-list=*) target_list="$optarg"
263 --enable-gprof) gprof="yes"
265 --static) static="yes"
267 --disable-sdl) sdl="no"
269 --fmod-lib=*) fmod_lib="$optarg"
271 --fmod-inc=*) fmod_inc="$optarg"
273 --audio-card-list=*) audio_card_list="$optarg"
275 --audio-drv-list=*) audio_drv_list="$optarg"
277 --disable-vnc-tls) vnc_tls="no"
279 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
281 --disable-slirp) slirp="no"
283 --disable-kqemu) kqemu="no"
285 --disable-brlapi) brlapi="no"
287 --enable-profiler) profiler="yes"
289 --enable-cocoa)
290 cocoa="yes" ;
291 sdl="no" ;
292 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
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"
312 --sparc_cpu=*)
313 sparc_cpu="$optarg"
314 case $sparc_cpu in
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;;
322 esac
324 --enable-werror) werror="yes"
326 --disable-werror) werror="no"
328 --disable-curses) curses="no"
330 --disable-nptl) nptl="no"
332 --enable-mixemu) mixemu="yes"
334 *) echo "ERROR: unknown option $opt"; show_help="yes"
336 esac
337 done
339 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
340 AIOLIBS=
341 else
342 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
343 AIOLIBS="-lrt -lpthread"
346 # default flags for all hosts
347 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
348 LDFLAGS="$LDFLAGS -g"
349 if test "$werror" = "yes" ; then
350 CFLAGS="$CFLAGS -Werror"
354 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
355 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
357 case "$cpu" in
358 sparc) if test -z "$sparc_cpu" ; then
359 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
360 ARCH_LDFLAGS="-m32"
361 else
362 ARCH_CFLAGS="${SP_CFLAGS}"
363 ARCH_LDFLAGS="${SP_LDFLAGS}"
366 sparc64) if test -z "$sparc_cpu" ; then
367 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
368 ARCH_LDFLAGS="-m64"
369 else
370 ARCH_CFLAGS="${SP_CFLAGS}"
371 ARCH_LDFLAGS="${SP_LDFLAGS}"
374 s390)
375 ARCH_CFLAGS="-march=z900"
377 i386)
378 ARCH_CFLAGS="-m32"
379 ARCH_LDFLAGS="-m32"
381 x86_64)
382 ARCH_CFLAGS="-m64"
383 ARCH_LDFLAGS="-m64"
385 esac
387 if test x"$show_help" = x"yes" ; then
388 cat << EOF
390 Usage: configure [options]
391 Options: [defaults in brackets after descriptions]
394 echo "Standard options:"
395 echo " --help print this message"
396 echo " --prefix=PREFIX install in PREFIX [$prefix]"
397 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
398 echo " use %M for cpu name [$interp_prefix]"
399 echo " --target-list=LIST set target list [$target_list]"
400 echo ""
401 echo "kqemu kernel acceleration support:"
402 echo " --disable-kqemu disable kqemu support"
403 echo ""
404 echo "Advanced options (experts only):"
405 echo " --source-path=PATH path of source code [$source_path]"
406 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
407 echo " --cc=CC use C compiler CC [$cc]"
408 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
409 echo " --make=MAKE use specified make [$make]"
410 echo " --install=INSTALL use specified install [$install]"
411 echo " --static enable static build [$static]"
412 echo " --disable-werror disable compilation abort on warning"
413 echo " --disable-sdl disable SDL"
414 echo " --enable-cocoa enable COCOA (Mac OS X only)"
415 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
416 echo " --audio-drv-list=LIST set audio drivers list:"
417 echo " Available drivers: $audio_possible_drivers"
418 echo " --audio-card-list=LIST set list of additional emulated audio cards"
419 echo " Available cards: ac97 adlib cs4231a gus"
420 echo " --enable-mixemu enable mixer emulation"
421 echo " --disable-brlapi disable BrlAPI"
422 echo " --disable-vnc-tls disable TLS encryption for VNC server"
423 echo " --disable-curses disable curses output"
424 echo " --disable-nptl disable usermode NPTL support"
425 echo " --enable-system enable all system emulation targets"
426 echo " --disable-system disable all system emulation targets"
427 echo " --enable-linux-user enable all linux usermode emulation targets"
428 echo " --disable-linux-user disable all linux usermode emulation targets"
429 echo " --enable-darwin-user enable all darwin usermode emulation targets"
430 echo " --disable-darwin-user disable all darwin usermode emulation targets"
431 echo " --fmod-lib path to FMOD library"
432 echo " --fmod-inc path to FMOD includes"
433 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
434 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
435 echo ""
436 echo "NOTE: The object files are built at the place where configure is launched"
437 exit 1
440 cc="${cross_prefix}${cc}"
441 ar="${cross_prefix}${ar}"
442 strip="${cross_prefix}${strip}"
444 # check that the C compiler works.
445 cat > $TMPC <<EOF
446 int main(void) {}
449 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
450 : C compiler works ok
451 else
452 echo "ERROR: \"$cc\" either does not exist or does not work"
453 exit 1
456 if test "$mingw32" = "yes" ; then
457 linux="no"
458 EXESUF=".exe"
459 oss="no"
462 # Check for gcc4, error if pre-gcc4
463 if test "$check_gcc" = "yes" ; then
464 cat > $TMPC <<EOF
465 #if __GNUC__ < 4
466 #error gcc3
467 #endif
468 int main(){return 0;}
470 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
471 echo "WARNING: \"$cc\" looks like gcc 4.x"
472 found_compat_cc="no"
473 if test "$gcc3_search" = "yes" ; then
474 echo "Looking for gcc 3.x"
475 for compat_cc in $gcc3_list ; do
476 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
477 echo "Found \"$compat_cc\""
478 cc="$cross_prefix$compat_cc"
479 found_compat_cc="yes"
480 break
482 done
483 if test "$found_compat_cc" = "no" ; then
484 echo "gcc 3.x not found!"
487 if test "$found_compat_cc" = "no" ; then
488 echo "QEMU is known to have problems when compiled with gcc 4.x"
489 echo "It is recommended that you use gcc 3.x to build QEMU"
490 echo "To use this compiler anyway, configure with --disable-gcc-check"
491 exit 1;
497 # Solaris specific configure tool chain decisions
499 if test "$solaris" = "yes" ; then
501 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
502 # override the check with --disable-gcc-check
504 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
505 solgcc=`which $cc`
506 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
507 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
508 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
509 echo "or get the latest patch from SunSolve for gcc"
510 exit 1
513 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
514 if test -z "$solinst" ; then
515 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
516 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
517 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
518 exit 1
520 if test "$solinst" = "/usr/sbin/install" ; then
521 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
522 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
523 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
524 exit 1
526 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
527 if test -z "$sol_ar" ; then
528 echo "Error: No path includes ar"
529 if test -f /usr/ccs/bin/ar ; then
530 echo "Add /usr/ccs/bin to your path and rerun configure"
532 exit 1
537 if test -z "$target_list" ; then
538 # these targets are portable
539 if [ "$softmmu" = "yes" ] ; then
540 target_list="\
541 i386-softmmu \
542 x86_64-softmmu \
543 arm-softmmu \
544 cris-softmmu \
545 m68k-softmmu \
546 mips-softmmu \
547 mipsel-softmmu \
548 mips64-softmmu \
549 mips64el-softmmu \
550 ppc-softmmu \
551 ppcemb-softmmu \
552 ppc64-softmmu \
553 sh4-softmmu \
554 sh4eb-softmmu \
555 sparc-softmmu \
558 # the following are Linux specific
559 if [ "$linux_user" = "yes" ] ; then
560 target_list="${target_list}\
561 i386-linux-user \
562 x86_64-linux-user \
563 alpha-linux-user \
564 arm-linux-user \
565 armeb-linux-user \
566 cris-linux-user \
567 m68k-linux-user \
568 mips-linux-user \
569 mipsel-linux-user \
570 ppc-linux-user \
571 ppc64-linux-user \
572 ppc64abi32-linux-user \
573 sh4-linux-user \
574 sh4eb-linux-user \
575 sparc-linux-user \
576 sparc64-linux-user \
577 sparc32plus-linux-user \
580 # the following are Darwin specific
581 if [ "$darwin_user" = "yes" ] ; then
582 target_list="$target_list i386-darwin-user ppc-darwin-user"
584 else
585 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
587 if test -z "$target_list" ; then
588 echo "No targets enabled"
589 exit 1
592 if test -z "$cross_prefix" ; then
594 # ---
595 # big/little endian test
596 cat > $TMPC << EOF
597 #include <inttypes.h>
598 int main(int argc, char ** argv){
599 volatile uint32_t i=0x01234567;
600 return (*((uint8_t*)(&i))) == 0x67;
604 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
605 $TMPE && bigendian="yes"
606 else
607 echo big/little test failed
610 else
612 # if cross compiling, cannot launch a program, so make a static guess
613 if test "$cpu" = "armv4b" \
614 -o "$cpu" = "hppa" \
615 -o "$cpu" = "m68k" \
616 -o "$cpu" = "mips" \
617 -o "$cpu" = "mips64" \
618 -o "$cpu" = "powerpc" \
619 -o "$cpu" = "s390" \
620 -o "$cpu" = "sparc" \
621 -o "$cpu" = "sparc64"; then
622 bigendian="yes"
627 # host long bits test
628 hostlongbits="32"
629 if test "$cpu" = "x86_64" \
630 -o "$cpu" = "alpha" \
631 -o "$cpu" = "ia64" \
632 -o "$cpu" = "sparc64"; then
633 hostlongbits="64"
636 # check gcc options support
637 cat > $TMPC <<EOF
638 int main(void) {
642 # Check host NPTL support
643 cat > $TMPC <<EOF
644 #include <sched.h>
645 #include <linux/futex.h>
646 void foo()
648 #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
649 #error bork
650 #endif
654 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
656 else
657 nptl="no"
660 ##########################################
661 # SDL probe
663 sdl_too_old=no
665 if test -z "$sdl" ; then
666 sdl_config="sdl-config"
667 sdl=no
668 sdl_static=no
670 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
671 # win32 cross compilation case
672 sdl_config="i386-mingw32msvc-sdl-config"
673 sdl=yes
674 else
675 # normal SDL probe
676 cat > $TMPC << EOF
677 #include <SDL.h>
678 #undef main /* We don't want SDL to override our main() */
679 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
681 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
682 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
683 if test "$_sdlversion" -lt 121 ; then
684 sdl_too_old=yes
685 else
686 if test "$cocoa" = "no" ; then
687 sdl=yes
691 # static link with sdl ?
692 if test "$sdl" = "yes" ; then
693 aa="no"
694 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
695 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
696 if [ "$aa" = "yes" ] ; then
697 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
700 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
701 sdl_static=yes
703 fi # static link
704 fi # sdl compile test
705 fi # cross compilation
706 else
707 # Make sure to disable cocoa if sdl was set
708 if test "$sdl" = "yes" ; then
709 cocoa="no"
710 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
712 fi # -z $sdl
714 ##########################################
715 # VNC TLS detection
716 if test "$vnc_tls" = "yes" ; then
717 `pkg-config gnutls` || vnc_tls="no"
719 if test "$vnc_tls" = "yes" ; then
720 vnc_tls_cflags=`pkg-config --cflags gnutls`
721 vnc_tls_libs=`pkg-config --libs gnutls`
724 ##########################################
725 # Sound support libraries probe
727 audio_drv_probe()
729 drv=$1
730 hdr=$2
731 lib=$3
732 exp=$4
733 cfl=$5
734 cat > $TMPC << EOF
735 #include <$hdr>
736 int main(void) { $exp }
738 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
740 else
741 echo
742 echo "Error: $drv check failed"
743 echo "Make sure to have the $drv libs and headers installed."
744 echo
745 exit 1
749 for drv in $audio_drv_list; do
750 case $drv in
751 alsa)
752 audio_drv_probe $drv alsa/asoundlib.h -lasound \
753 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
756 fmod)
757 if test -z $fmod_lib || test -z $fmod_inc; then
758 echo
759 echo "Error: You must specify path to FMOD library and headers"
760 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
761 echo
762 exit 1
764 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
767 esd)
768 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
772 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
773 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
776 esac
777 done
779 ##########################################
780 # BrlAPI probe
782 if test -z "$brlapi" ; then
783 brlapi=no
784 cat > $TMPC << EOF
785 #include <brlapi.h>
786 int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
788 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
789 brlapi=yes
790 fi # brlapi compile test
791 fi # -z $brlapi
793 ##########################################
794 # curses probe
796 if test "$curses" = "yes" ; then
797 curses=no
798 cat > $TMPC << EOF
799 #include <curses.h>
800 int main(void) { return curses_version(); }
802 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
803 curses=yes
805 fi # test "$curses"
807 # Check if tools are available to build documentation.
808 if [ -x "`which texi2html 2>/dev/null`" ] && \
809 [ -x "`which pod2man 2>/dev/null`" ]; then
810 build_docs="yes"
813 if test "$mingw32" = "yes" ; then
814 if test -z "$prefix" ; then
815 prefix="/c/Program Files/Qemu"
817 mansuffix=""
818 datasuffix=""
819 docsuffix=""
820 binsuffix=""
821 else
822 if test -z "$prefix" ; then
823 prefix="/usr/local"
825 mansuffix="/share/man"
826 datasuffix="/share/qemu"
827 docsuffix="/share/doc/qemu"
828 binsuffix="/bin"
831 echo "Install prefix $prefix"
832 echo "BIOS directory $prefix$datasuffix"
833 echo "binary directory $prefix$binsuffix"
834 if test "$mingw32" = "no" ; then
835 echo "Manual directory $prefix$mansuffix"
836 echo "ELF interp prefix $interp_prefix"
838 echo "Source path $source_path"
839 echo "C compiler $cc"
840 echo "Host C compiler $host_cc"
841 echo "ARCH_CFLAGS $ARCH_CFLAGS"
842 echo "make $make"
843 echo "install $install"
844 echo "host CPU $cpu"
845 echo "host big endian $bigendian"
846 echo "target list $target_list"
847 echo "gprof enabled $gprof"
848 echo "profiler $profiler"
849 echo "static build $static"
850 echo "-Werror enabled $werror"
851 if test "$darwin" = "yes" ; then
852 echo "Cocoa support $cocoa"
854 echo "SDL support $sdl"
855 if test "$sdl" != "no" ; then
856 echo "SDL static link $sdl_static"
858 echo "curses support $curses"
859 echo "mingw32 support $mingw32"
860 echo "Audio drivers $audio_drv_list"
861 echo "Extra audio cards $audio_card_list"
862 echo "Mixer emulation $mixemu"
863 echo "VNC TLS support $vnc_tls"
864 if test "$vnc_tls" = "yes" ; then
865 echo " TLS CFLAGS $vnc_tls_cflags"
866 echo " TLS LIBS $vnc_tls_libs"
868 if test -n "$sparc_cpu"; then
869 echo "Target Sparc Arch $sparc_cpu"
871 echo "kqemu support $kqemu"
872 echo "brlapi support $brlapi"
873 echo "Documentation $build_docs"
874 [ ! -z "$uname_release" ] && \
875 echo "uname -r $uname_release"
876 echo "NPTL support $nptl"
878 if test $sdl_too_old = "yes"; then
879 echo "-> Your SDL version is too old - please upgrade to have SDL support"
881 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
882 echo "The error log from compiling the libSDL test is: "
883 cat /tmp/qemu-$$-sdl-config.log
885 rm -f /tmp/qemu-$$-sdl-config.log
886 #if test "$sdl_static" = "no"; then
887 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
889 config_mak="config-host.mak"
890 config_h="config-host.h"
892 #echo "Creating $config_mak and $config_h"
894 test -f $config_h && mv $config_h ${config_h}~
896 echo "# Automatically generated by configure - do not modify" > $config_mak
897 echo "# Configured with: $0 $@" >> $config_mak
898 echo "/* Automatically generated by configure - do not modify */" > $config_h
900 echo "prefix=$prefix" >> $config_mak
901 echo "bindir=\${prefix}$binsuffix" >> $config_mak
902 echo "mandir=\${prefix}$mansuffix" >> $config_mak
903 echo "datadir=\${prefix}$datasuffix" >> $config_mak
904 echo "docdir=\${prefix}$docsuffix" >> $config_mak
905 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
906 echo "MAKE=$make" >> $config_mak
907 echo "INSTALL=$install" >> $config_mak
908 echo "CC=$cc" >> $config_mak
909 echo "HOST_CC=$host_cc" >> $config_mak
910 echo "AR=$ar" >> $config_mak
911 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
912 # XXX: only use CFLAGS and LDFLAGS ?
913 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
914 # compilation of dyngen tool (useful for win32 build on Linux host)
915 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
916 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
917 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
918 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
919 echo "CFLAGS=$CFLAGS" >> $config_mak
920 echo "LDFLAGS=$LDFLAGS" >> $config_mak
921 echo "EXESUF=$EXESUF" >> $config_mak
922 echo "AIOLIBS=$AIOLIBS" >> $config_mak
923 case "$cpu" in
924 i386)
925 echo "ARCH=i386" >> $config_mak
926 echo "#define HOST_I386 1" >> $config_h
928 x86_64)
929 echo "ARCH=x86_64" >> $config_mak
930 echo "#define HOST_X86_64 1" >> $config_h
932 alpha)
933 echo "ARCH=alpha" >> $config_mak
934 echo "#define HOST_ALPHA 1" >> $config_h
936 armv4b)
937 echo "ARCH=arm" >> $config_mak
938 echo "#define HOST_ARM 1" >> $config_h
940 armv4l)
941 echo "ARCH=arm" >> $config_mak
942 echo "#define HOST_ARM 1" >> $config_h
944 cris)
945 echo "ARCH=cris" >> $config_mak
946 echo "#define HOST_CRIS 1" >> $config_h
948 hppa)
949 echo "ARCH=hppa" >> $config_mak
950 echo "#define HOST_HPPA 1" >> $config_h
952 ia64)
953 echo "ARCH=ia64" >> $config_mak
954 echo "#define HOST_IA64 1" >> $config_h
956 m68k)
957 echo "ARCH=m68k" >> $config_mak
958 echo "#define HOST_M68K 1" >> $config_h
960 mips)
961 echo "ARCH=mips" >> $config_mak
962 echo "#define HOST_MIPS 1" >> $config_h
964 mips64)
965 echo "ARCH=mips64" >> $config_mak
966 echo "#define HOST_MIPS64 1" >> $config_h
968 powerpc)
969 echo "ARCH=ppc" >> $config_mak
970 echo "#define HOST_PPC 1" >> $config_h
972 s390)
973 echo "ARCH=s390" >> $config_mak
974 echo "#define HOST_S390 1" >> $config_h
976 sparc)
977 echo "ARCH=sparc" >> $config_mak
978 echo "#define HOST_SPARC 1" >> $config_h
980 sparc64)
981 echo "ARCH=sparc64" >> $config_mak
982 echo "#define HOST_SPARC64 1" >> $config_h
985 echo "Unsupported CPU = $cpu"
986 exit 1
988 esac
989 if test "$bigendian" = "yes" ; then
990 echo "WORDS_BIGENDIAN=yes" >> $config_mak
991 echo "#define WORDS_BIGENDIAN 1" >> $config_h
993 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
994 if test "$mingw32" = "yes" ; then
995 echo "CONFIG_WIN32=yes" >> $config_mak
996 echo "#define CONFIG_WIN32 1" >> $config_h
997 else
998 cat > $TMPC << EOF
999 #include <byteswap.h>
1000 int main(void) { return bswap_32(0); }
1002 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1003 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1006 if test "$darwin" = "yes" ; then
1007 echo "CONFIG_DARWIN=yes" >> $config_mak
1008 echo "#define CONFIG_DARWIN 1" >> $config_h
1010 if test "$solaris" = "yes" ; then
1011 echo "CONFIG_SOLARIS=yes" >> $config_mak
1012 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1013 if test "$needs_libsunmath" = "yes" ; then
1014 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1015 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1018 if test -n "$sparc_cpu"; then
1019 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1020 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1022 if test "$gdbstub" = "yes" ; then
1023 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1024 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1026 if test "$gprof" = "yes" ; then
1027 echo "TARGET_GPROF=yes" >> $config_mak
1028 echo "#define HAVE_GPROF 1" >> $config_h
1030 if test "$static" = "yes" ; then
1031 echo "CONFIG_STATIC=yes" >> $config_mak
1032 echo "#define CONFIG_STATIC 1" >> $config_h
1034 if test $profiler = "yes" ; then
1035 echo "#define CONFIG_PROFILER 1" >> $config_h
1037 if test "$slirp" = "yes" ; then
1038 echo "CONFIG_SLIRP=yes" >> $config_mak
1039 echo "#define CONFIG_SLIRP 1" >> $config_h
1041 for card in $audio_card_list; do
1042 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1043 echo "$def=yes" >> $config_mak
1044 echo "#define $def 1" >> $config_h
1045 done
1046 echo "#define AUDIO_DRIVERS \\" >> $config_h
1047 for drv in $audio_drv_list; do
1048 echo " &${drv}_audio_driver, \\" >>$config_h
1049 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1050 echo "$def=yes" >> $config_mak
1051 if test "$drv" = "fmod"; then
1052 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1053 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1055 done
1056 echo "" >>$config_h
1057 if test "$mixemu" = "yes" ; then
1058 echo "CONFIG_MIXEMU=yes" >> $config_mak
1059 echo "#define CONFIG_MIXEMU 1" >> $config_h
1061 if test "$vnc_tls" = "yes" ; then
1062 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1063 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1064 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1065 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1067 qemu_version=`head $source_path/VERSION`
1068 echo "VERSION=$qemu_version" >>$config_mak
1069 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1071 echo "SRC_PATH=$source_path" >> $config_mak
1072 if [ "$source_path_used" = "yes" ]; then
1073 echo "VPATH=$source_path" >> $config_mak
1075 echo "TARGET_DIRS=$target_list" >> $config_mak
1076 if [ "$build_docs" = "yes" ] ; then
1077 echo "BUILD_DOCS=yes" >> $config_mak
1079 if test "$static" = "yes"; then
1080 sdl1=$sdl_static
1081 else
1082 sdl1=$sdl
1084 if test "$sdl1" = "yes" ; then
1085 echo "#define CONFIG_SDL 1" >> $config_h
1086 echo "CONFIG_SDL=yes" >> $config_mak
1087 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1088 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1089 else
1090 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1092 if [ "${aa}" = "yes" ] ; then
1093 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1094 else
1095 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1098 if test "$cocoa" = "yes" ; then
1099 echo "#define CONFIG_COCOA 1" >> $config_h
1100 echo "CONFIG_COCOA=yes" >> $config_mak
1102 if test "$curses" = "yes" ; then
1103 echo "#define CONFIG_CURSES 1" >> $config_h
1104 echo "CONFIG_CURSES=yes" >> $config_mak
1105 echo "CURSES_LIBS=-lcurses" >> $config_mak
1107 if test "$brlapi" = "yes" ; then
1108 echo "CONFIG_BRLAPI=yes" >> $config_mak
1109 echo "#define CONFIG_BRLAPI 1" >> $config_h
1110 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1113 # XXX: suppress that
1114 if [ "$bsd" = "yes" ] ; then
1115 echo "#define O_LARGEFILE 0" >> $config_h
1116 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1117 echo "#define _BSD 1" >> $config_h
1120 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1122 tools=
1123 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1124 tools="qemu-img\$(EXESUF) $tools"
1125 if [ "$linux" = "yes" ] ; then
1126 tools="qemu-nbd\$(EXESUF) $tools"
1129 echo "TOOLS=$tools" >> $config_mak
1131 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1133 for target in $target_list; do
1134 target_dir="$target"
1135 config_mak=$target_dir/config.mak
1136 config_h=$target_dir/config.h
1137 target_cpu=`echo $target | cut -d '-' -f 1`
1138 target_bigendian="no"
1139 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1140 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1141 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1142 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1143 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1144 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1145 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1146 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1147 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1148 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1149 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1150 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1151 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1152 target_softmmu="no"
1153 target_user_only="no"
1154 target_linux_user="no"
1155 target_darwin_user="no"
1156 case "$target" in
1157 ${target_cpu}-softmmu)
1158 target_softmmu="yes"
1160 ${target_cpu}-linux-user)
1161 target_user_only="yes"
1162 target_linux_user="yes"
1164 ${target_cpu}-darwin-user)
1165 target_user_only="yes"
1166 target_darwin_user="yes"
1169 echo "ERROR: Target '$target' not recognised"
1170 exit 1
1172 esac
1174 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1175 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1176 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1177 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1178 echo "Note that this will disable all output from the virtual graphics card"
1179 echo "except through VNC or curses."
1180 exit 1;
1183 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1185 test -f $config_h && mv $config_h ${config_h}~
1187 mkdir -p $target_dir
1188 mkdir -p $target_dir/fpu
1189 mkdir -p $target_dir/tcg
1190 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1191 mkdir -p $target_dir/nwfpe
1195 # don't use ln -sf as not all "ln -sf" over write the file/link
1197 rm -f $target_dir/Makefile
1198 ln -s $source_path/Makefile.target $target_dir/Makefile
1201 echo "# Automatically generated by configure - do not modify" > $config_mak
1202 echo "/* Automatically generated by configure - do not modify */" > $config_h
1205 echo "include ../config-host.mak" >> $config_mak
1206 echo "#include \"../config-host.h\"" >> $config_h
1208 bflt="no"
1209 elfload32="no"
1210 target_nptl="no"
1211 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1212 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1214 case "$target_cpu" in
1215 i386)
1216 echo "TARGET_ARCH=i386" >> $config_mak
1217 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1218 echo "#define TARGET_I386 1" >> $config_h
1219 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1220 then
1221 echo "#define USE_KQEMU 1" >> $config_h
1223 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1224 if test -n "$gcc3minver" && test $gcc3minver -gt 3
1225 then
1226 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1227 else
1228 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1231 x86_64)
1232 echo "TARGET_ARCH=x86_64" >> $config_mak
1233 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1234 echo "#define TARGET_I386 1" >> $config_h
1235 echo "#define TARGET_X86_64 1" >> $config_h
1236 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1237 then
1238 echo "#define USE_KQEMU 1" >> $config_h
1241 alpha)
1242 echo "TARGET_ARCH=alpha" >> $config_mak
1243 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1244 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1245 echo "#define TARGET_ALPHA 1" >> $config_h
1246 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1248 arm|armeb)
1249 echo "TARGET_ARCH=arm" >> $config_mak
1250 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1251 echo "#define TARGET_ARM 1" >> $config_h
1252 bflt="yes"
1253 target_nptl="yes"
1255 cris)
1256 echo "TARGET_ARCH=cris" >> $config_mak
1257 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1258 echo "#define TARGET_CRIS 1" >> $config_h
1260 m68k)
1261 echo "TARGET_ARCH=m68k" >> $config_mak
1262 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1263 echo "#define TARGET_M68K 1" >> $config_h
1264 bflt="yes"
1266 mips|mipsel)
1267 echo "TARGET_ARCH=mips" >> $config_mak
1268 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1269 echo "#define TARGET_MIPS 1" >> $config_h
1270 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1272 mipsn32|mipsn32el)
1273 echo "TARGET_ARCH=mipsn32" >> $config_mak
1274 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1275 echo "#define TARGET_MIPS 1" >> $config_h
1276 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1278 mips64|mips64el)
1279 echo "TARGET_ARCH=mips64" >> $config_mak
1280 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1281 echo "#define TARGET_MIPS 1" >> $config_h
1282 echo "#define TARGET_MIPS64 1" >> $config_h
1283 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1285 ppc)
1286 echo "TARGET_ARCH=ppc" >> $config_mak
1287 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1288 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1289 echo "#define TARGET_PPC 1" >> $config_h
1290 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1292 ppcemb)
1293 echo "TARGET_ARCH=ppcemb" >> $config_mak
1294 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1295 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1296 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1297 echo "#define TARGET_PPC 1" >> $config_h
1298 echo "#define TARGET_PPCEMB 1" >> $config_h
1299 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1301 ppc64)
1302 echo "TARGET_ARCH=ppc64" >> $config_mak
1303 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1304 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1305 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1306 echo "#define TARGET_PPC 1" >> $config_h
1307 echo "#define TARGET_PPC64 1" >> $config_h
1308 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1310 ppc64abi32)
1311 echo "TARGET_ARCH=ppc64" >> $config_mak
1312 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1313 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1314 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1315 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1316 echo "#define TARGET_PPC 1" >> $config_h
1317 echo "#define TARGET_PPC64 1" >> $config_h
1318 echo "#define TARGET_ABI32 1" >> $config_h
1319 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1321 sh4|sh4eb)
1322 echo "TARGET_ARCH=sh4" >> $config_mak
1323 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1324 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1325 echo "#define TARGET_SH4 1" >> $config_h
1326 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1327 bflt="yes"
1329 sparc)
1330 echo "TARGET_ARCH=sparc" >> $config_mak
1331 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1332 echo "#define TARGET_SPARC 1" >> $config_h
1334 sparc64)
1335 echo "TARGET_ARCH=sparc64" >> $config_mak
1336 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1337 echo "#define TARGET_SPARC 1" >> $config_h
1338 echo "#define TARGET_SPARC64 1" >> $config_h
1339 elfload32="yes"
1341 sparc32plus)
1342 echo "TARGET_ARCH=sparc64" >> $config_mak
1343 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1344 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1345 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1346 echo "#define TARGET_SPARC 1" >> $config_h
1347 echo "#define TARGET_SPARC64 1" >> $config_h
1348 echo "#define TARGET_ABI32 1" >> $config_h
1351 echo "Unsupported target CPU"
1352 exit 1
1354 esac
1355 if test "$target_bigendian" = "yes" ; then
1356 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1357 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1359 if test "$target_softmmu" = "yes" ; then
1360 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1361 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1363 if test "$target_user_only" = "yes" ; then
1364 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1365 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1367 if test "$target_linux_user" = "yes" ; then
1368 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1369 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1371 if test "$target_darwin_user" = "yes" ; then
1372 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1373 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1376 if test "$target_cpu" = "arm" \
1377 -o "$target_cpu" = "armeb" \
1378 -o "$target_cpu" = "m68k" \
1379 -o "$target_cpu" = "mips" \
1380 -o "$target_cpu" = "mipsel" \
1381 -o "$target_cpu" = "mipsn32" \
1382 -o "$target_cpu" = "mipsn32el" \
1383 -o "$target_cpu" = "mips64" \
1384 -o "$target_cpu" = "mips64el" \
1385 -o "$target_cpu" = "sparc" \
1386 -o "$target_cpu" = "sparc64" \
1387 -o "$target_cpu" = "sparc32plus"; then
1388 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1389 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1391 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1392 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1393 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1395 if test "$target_user_only" = "yes" \
1396 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1397 echo "#define USE_NPTL 1" >> $config_h
1399 # 32 bit ELF loader in addition to native 64 bit loader?
1400 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1401 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1402 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1405 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1407 done # for target in $targets
1409 # build tree in object directory if source path is different from current one
1410 if test "$source_path_used" = "yes" ; then
1411 DIRS="tests tests/cris slirp audio"
1412 FILES="Makefile tests/Makefile"
1413 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1414 FILES="$FILES tests/test-mmap.c"
1415 for dir in $DIRS ; do
1416 mkdir -p $dir
1417 done
1418 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1419 for f in $FILES ; do
1420 rm -f $f
1421 ln -s $source_path/$f $f
1422 done
1425 rm -f $TMPO $TMPC $TMPE $TMPS