use the TCG code generator
[qemu] / configure
1 #!/bin/sh
2 #
3 # qemu configure script (c) 2003 Fabrice Bellard
4 #
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"
12 fi
13
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
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 host_cc="gcc"
28 ar="ar"
29 make="make"
30 install="install"
31 strip="strip"
32 cpu=`uname -m`
33 target_list=""
34 case "$cpu" in
35   i386|i486|i586|i686|i86pc|BePC)
36     cpu="i386"
37   ;;
38   armv*b)
39     cpu="armv4b"
40   ;;
41   armv*l)
42     cpu="armv4l"
43   ;;
44   alpha)
45     cpu="alpha"
46   ;;
47   "Power Macintosh"|ppc|ppc64)
48     cpu="powerpc"
49   ;;
50   mips)
51     cpu="mips"
52   ;;
53   mips64)
54     cpu="mips64"
55   ;;
56   cris)
57     cpu="cris"
58   ;;
59   s390*)
60     cpu="s390"
61   ;;
62   sparc|sun4[cdmuv])
63     cpu="sparc"
64   ;;
65   sparc64)
66     cpu="sparc64"
67   ;;
68   ia64)
69     cpu="ia64"
70   ;;
71   m68k)
72     cpu="m68k"
73   ;;
74   x86_64|amd64)
75     cpu="x86_64"
76   ;;
77   *)
78     cpu="unknown"
79   ;;
80 esac
81 gprof="no"
82 bigendian="no"
83 mingw32="no"
84 EXESUF=""
85 gdbstub="yes"
86 slirp="yes"
87 adlib="no"
88 ac97="no"
89 gus="no"
90 oss="no"
91 dsound="no"
92 coreaudio="no"
93 alsa="no"
94 esd="no"
95 fmod="no"
96 fmod_lib=""
97 fmod_inc=""
98 vnc_tls="yes"
99 bsd="no"
100 linux="no"
101 kqemu="no"
102 profiler="no"
103 cocoa="no"
104 check_gfx="yes"
105 check_gcc="yes"
106 softmmu="yes"
107 linux_user="no"
108 darwin_user="no"
109 build_docs="no"
110 uname_release=""
111
112 # OS specific
113 targetos=`uname -s`
114 case $targetos in
115 CYGWIN*)
116 mingw32="yes"
117 OS_CFLAGS="-mno-cygwin"
118 if [ "$cpu" = "i386" ] ; then
119     kqemu="yes"
120 fi
121 ;;
122 MINGW32*)
123 mingw32="yes"
124 if [ "$cpu" = "i386" ] ; then
125     kqemu="yes"
126 fi
127 ;;
128 GNU/kFreeBSD)
129 oss="yes"
130 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
131     kqemu="yes"
132 fi
133 ;;
134 FreeBSD)
135 bsd="yes"
136 oss="yes"
137 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
138     kqemu="yes"
139 fi
140 ;;
141 NetBSD)
142 bsd="yes"
143 oss="yes"
144 ;;
145 OpenBSD)
146 bsd="yes"
147 oss="yes"
148 ;;
149 Darwin)
150 bsd="yes"
151 darwin="yes"
152 darwin_user="yes"
153 cocoa="yes"
154 coreaudio="yes"
155 OS_CFLAGS="-mdynamic-no-pic"
156 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
157 ;;
158 SunOS)
159     solaris="yes"
160     make="gmake"
161     install="ginstall"
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
168         cpu="x86_64"
169     fi
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"
174             else
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."
179                 exit 1
180             fi
181         fi
182         if test "$solarisrev" -ge 9 ; then
183             kqemu="yes"
184         fi
185     fi
186     if test -f /usr/include/sys/soundcard.h ; then
187         oss=yes
188     fi
189 ;;
190 *)
191 oss="yes"
192 linux="yes"
193 linux_user="yes"
194 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
195     kqemu="yes"
196 fi
197 ;;
198 esac
199
200 if [ "$bsd" = "yes" ] ; then
201   if [ "$darwin" != "yes" ] ; then
202     make="gmake"
203   fi
204 fi
205
206 # find source path
207 source_path=`dirname "$0"`
208 if [ -z "$source_path" ]; then
209     source_path=`pwd`
210 else
211     source_path=`cd "$source_path"; pwd`
212 fi
213 if test "$source_path" = `pwd` ; then
214     source_path_used="no"
215 else
216     source_path_used="yes"
217 fi
218
219 werror="no"
220 # generate compile errors on warnings for development builds
221 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
222 #werror="yes";
223 #fi
224
225 for opt do
226   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
227   case "$opt" in
228   --help|-h) show_help=yes
229   ;;
230   --prefix=*) prefix="$optarg"
231   ;;
232   --interp-prefix=*) interp_prefix="$optarg"
233   ;;
234   --source-path=*) source_path="$optarg"
235   source_path_used="yes"
236   ;;
237   --cross-prefix=*) cross_prefix="$optarg"
238   ;;
239   --cc=*) cc="$optarg"
240   gcc3_search="no"
241   ;;
242   --host-cc=*) host_cc="$optarg"
243   ;;
244   --make=*) make="$optarg"
245   ;;
246   --install=*) install="$optarg"
247   ;;
248   --extra-cflags=*) CFLAGS="$optarg"
249   ;;
250   --extra-ldflags=*) LDFLAGS="$optarg"
251   ;;
252   --cpu=*) cpu="$optarg"
253   ;;
254   --target-list=*) target_list="$optarg"
255   ;;
256   --enable-gprof) gprof="yes"
257   ;;
258   --static) static="yes"
259   ;;
260   --disable-sdl) sdl="no"
261   ;;
262   --enable-coreaudio) coreaudio="yes"
263   ;;
264   --enable-alsa) alsa="yes"
265   ;;
266   --enable-esd) esd="yes"
267   ;;
268   --enable-dsound) dsound="yes"
269   ;;
270   --enable-fmod) fmod="yes"
271   ;;
272   --fmod-lib=*) fmod_lib="$optarg"
273   ;;
274   --fmod-inc=*) fmod_inc="$optarg"
275   ;;
276   --disable-vnc-tls) vnc_tls="no"
277   ;;
278   --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
279   ;;
280   --disable-slirp) slirp="no"
281   ;;
282   --enable-adlib) adlib="yes"
283   ;;
284   --enable-ac97) ac97="yes"
285   ;;
286   --enable-gus) gus="yes"
287   ;;
288   --disable-kqemu) kqemu="no"
289   ;;
290   --enable-profiler) profiler="yes"
291   ;;
292   --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
293   ;;
294   --disable-gfx-check) check_gfx="no"
295   ;;
296   --disable-gcc-check) check_gcc="no"
297   ;;
298   --disable-system) softmmu="no"
299   ;;
300   --enable-system) softmmu="yes"
301   ;;
302   --disable-linux-user) linux_user="no"
303   ;;
304   --enable-linux-user) linux_user="yes"
305   ;;
306   --disable-darwin-user) darwin_user="no"
307   ;;
308   --enable-darwin-user) darwin_user="yes"
309   ;;
310   --enable-uname-release=*) uname_release="$optarg"
311   ;;
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
323   ;;
324   --enable-werror) werror="yes"
325   ;;
326   --disable-werror) werror="no"
327   ;;
328   *) echo "ERROR: unknown option $opt"; show_help="yes"
329   ;;
330   esac
331 done
332
333 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
334     AIOLIBS=
335 else
336     # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
337     AIOLIBS="-lrt -lpthread"
338 fi
339
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"
345 fi
346
347 #
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)
350 #
351 case "$cpu" in
352     sparc) if test -z "$sparc_cpu" ; then
353                ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
354                ARCH_LDFLAGS="-m32"
355            else
356                ARCH_CFLAGS="${SP_CFLAGS}"
357                ARCH_LDFLAGS="${SP_LDFLAGS}"
358            fi
359            ;;
360     sparc64) if test -z "$sparc_cpu" ; then
361                ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
362                ARCH_LDFLAGS="-m64"
363            else
364                ARCH_CFLAGS="${SP_CFLAGS}"
365                ARCH_LDFLAGS="${SP_LDFLAGS}"
366            fi
367            ;;
368     s390)
369            ARCH_CFLAGS="-march=z900"
370            ;;
371     i386)
372            ARCH_CFLAGS="-m32"
373            ARCH_LDFLAGS="-m32"
374            ;;
375     x86_64)
376            ARCH_CFLAGS="-m64"
377            ARCH_LDFLAGS="-m64"
378            ;;
379 esac
380
381 if test x"$show_help" = x"yes" ; then
382 cat << EOF
383
384 Usage: configure [options]
385 Options: [defaults in brackets after descriptions]
386
387 EOF
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]"
394 echo ""
395 echo "kqemu kernel acceleration support:"
396 echo "  --disable-kqemu          disable kqemu support"
397 echo ""
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"
429 echo ""
430 echo "NOTE: The object files are built at the place where configure is launched"
431 exit 1
432 fi
433
434 cc="${cross_prefix}${cc}"
435 ar="${cross_prefix}${ar}"
436 strip="${cross_prefix}${strip}"
437
438 # check that the C compiler works.
439 cat > $TMPC <<EOF
440 int main(void) {}
441 EOF
442
443 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
444   : C compiler works ok
445 else
446     echo "ERROR: \"$cc\" either does not exist or does not work"
447     exit 1
448 fi
449
450 if test "$mingw32" = "yes" ; then
451     linux="no"
452     EXESUF=".exe"
453     oss="no"
454 fi
455
456 # Check for gcc4, error if pre-gcc4
457 if test "$check_gcc" = "yes" ; then
458     cat > $TMPC <<EOF
459 #if __GNUC__ < 4
460 #error gcc3
461 #endif
462 int main(){return 0;}
463 EOF
464     if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
465         echo "WARNING: \"$cc\" looks like gcc 4.x"
466         found_compat_cc="no"
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"
474                     break
475                 fi
476             done
477             if test "$found_compat_cc" = "no" ; then
478                 echo "gcc 3.x not found!"
479             fi
480         fi
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"
485             exit 1;
486         fi
487     fi
488 fi
489
490 #
491 # Solaris specific configure tool chain decisions
492 #
493 if test "$solaris" = "yes" ; then
494   #
495   # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
496   # override the check with --disable-gcc-check
497   #
498   if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
499     solgcc=`which $cc`
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"
504       exit 1
505     fi
506   fi
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)"
512     exit 1
513   fi
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"
518     exit 1
519   fi
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"
525     fi
526     exit 1
527   fi
528 fi
529
530
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"
535     fi
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"
539     fi
540 # the following are Darwin specific
541     if [ "$darwin_user" = "yes" ] ; then
542         target_list="i386-darwin-user ppc-darwin-user $target_list"
543     fi
544 else
545     target_list=`echo "$target_list" | sed -e 's/,/ /g'`
546 fi
547 if test -z "$target_list" ; then
548     echo "No targets enabled"
549     exit 1
550 fi
551
552 if test -z "$cross_prefix" ; then
553
554 # ---
555 # big/little endian test
556 cat > $TMPC << EOF
557 #include <inttypes.h>
558 int main(int argc, char ** argv){
559         volatile uint32_t i=0x01234567;
560         return (*((uint8_t*)(&i))) == 0x67;
561 }
562 EOF
563
564 if $cc -o $TMPE $TMPC 2> /dev/null ; then
565 $TMPE && bigendian="yes"
566 else
567 echo big/little test failed
568 fi
569
570 else
571
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
574     bigendian="yes"
575 fi
576
577 fi
578
579 # host long bits test
580 hostlongbits="32"
581 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
582     hostlongbits="64"
583 fi
584
585 # check gcc options support
586 cat > $TMPC <<EOF
587 int main(void) {
588 }
589 EOF
590
591 ##########################################
592 # SDL probe
593
594 sdl_too_old=no
595
596 if test -z "$sdl" ; then
597     sdl_config="sdl-config"
598     sdl=no
599     sdl_static=no
600
601     if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
602     # win32 cross compilation case
603         sdl_config="i386-mingw32msvc-sdl-config"
604         sdl=yes
605     else
606         # normal SDL probe
607 cat > $TMPC << EOF
608 #include <SDL.h>
609 #undef main /* We don't want SDL to override our main() */
610 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
611 EOF
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
615                 sdl_too_old=yes
616             else
617                 if test "$cocoa" = "no" ; then
618                     sdl=yes
619                 fi
620             fi
621
622             # static link with sdl ?
623             if test "$sdl" = "yes" ; then
624                 aa="no"
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`"
629                 fi
630
631                 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
632                     sdl_static=yes
633                 fi
634             fi # static link
635         fi # sdl compile test
636     fi # cross compilation
637 else
638     # Make sure to disable cocoa if sdl was set
639     if test "$sdl" = "yes" ; then
640        cocoa="no"
641        coreaudio="no"
642     fi
643 fi # -z $sdl
644
645 ##########################################
646 # VNC TLS detection
647 if test "$vnc_tls" = "yes" ; then
648   `pkg-config gnutls` || vnc_tls="no"
649 fi
650 if test "$vnc_tls" = "yes" ; then
651   vnc_tls_cflags=`pkg-config --cflags gnutls`
652   vnc_tls_libs=`pkg-config --libs gnutls`
653 fi
654
655 ##########################################
656 # alsa sound support libraries
657
658 if test "$alsa" = "yes" ; then
659   cat > $TMPC << EOF
660 #include <alsa/asoundlib.h>
661 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
662 EOF
663   if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
664     :
665   else
666     echo
667     echo "Error: Could not find alsa"
668     echo "Make sure to have the alsa libs and headers installed."
669     echo
670     exit 1
671   fi
672 fi
673
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
677   build_docs="yes"
678 fi
679
680 if test "$mingw32" = "yes" ; then
681   if test -z "$prefix" ; then
682       prefix="/c/Program Files/Qemu"
683   fi
684   mansuffix=""
685   datasuffix=""
686   docsuffix=""
687   binsuffix=""
688 else
689   if test -z "$prefix" ; then
690       prefix="/usr/local"
691   fi
692   mansuffix="/share/man"
693   datasuffix="/share/qemu"
694   docsuffix="/share/doc/qemu"
695   binsuffix="/bin"
696 fi
697
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"
704 fi
705 echo "Source path       $source_path"
706 echo "C compiler        $cc"
707 echo "Host C compiler   $host_cc"
708 echo "make              $make"
709 echo "install           $install"
710 echo "host CPU          $cpu"
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"
719 fi
720 echo "SDL support       $sdl"
721 if test "$sdl" != "no" ; then
722     echo "SDL static link   $sdl_static"
723 fi
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
734         echo
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"
737         echo
738         exit 1
739     fi
740     fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
741 else
742     fmod_support=""
743 fi
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"
750 fi
751 if test -n "$sparc_cpu"; then
752     echo "Target Sparc Arch $sparc_cpu"
753 fi
754 echo "kqemu support     $kqemu"
755 echo "Documentation     $build_docs"
756 [ ! -z "$uname_release" ] && \
757 echo "uname -r          $uname_release"
758
759 if test $sdl_too_old = "yes"; then
760 echo "-> Your SDL version is too old - please upgrade to have SDL support"
761 fi
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
765 fi
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"
769 #fi
770 config_mak="config-host.mak"
771 config_h="config-host.h"
772
773 #echo "Creating $config_mak and $config_h"
774
775 test -f $config_h && mv $config_h ${config_h}~
776
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
780
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
846 else
847   echo "Unsupported CPU = $cpu"
848   exit 1
849 fi
850 if test "$bigendian" = "yes" ; then
851   echo "WORDS_BIGENDIAN=yes" >> $config_mak
852   echo "#define WORDS_BIGENDIAN 1" >> $config_h
853 fi
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
858 else
859   cat > $TMPC << EOF
860 #include <byteswap.h>
861 int main(void) { return bswap_32(0); }
862 EOF
863   if $cc -o $TMPE $TMPC 2> /dev/null ; then
864     echo "#define HAVE_BYTESWAP_H 1" >> $config_h
865   fi
866 fi
867 if test "$darwin" = "yes" ; then
868   echo "CONFIG_DARWIN=yes" >> $config_mak
869   echo "#define CONFIG_DARWIN 1" >> $config_h
870 fi
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
877   fi
878 fi
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
882 fi
883 if test "$gdbstub" = "yes" ; then
884   echo "CONFIG_GDBSTUB=yes" >> $config_mak
885   echo "#define CONFIG_GDBSTUB 1" >> $config_h
886 fi
887 if test "$gprof" = "yes" ; then
888   echo "TARGET_GPROF=yes" >> $config_mak
889   echo "#define HAVE_GPROF 1" >> $config_h
890 fi
891 if test "$static" = "yes" ; then
892   echo "CONFIG_STATIC=yes" >> $config_mak
893   echo "#define CONFIG_STATIC 1" >> $config_h
894 fi
895 if test $profiler = "yes" ; then
896   echo "#define CONFIG_PROFILER 1" >> $config_h
897 fi
898 if test "$slirp" = "yes" ; then
899   echo "CONFIG_SLIRP=yes" >> $config_mak
900   echo "#define CONFIG_SLIRP 1" >> $config_h
901 fi
902 if test "$adlib" = "yes" ; then
903   echo "CONFIG_ADLIB=yes" >> $config_mak
904   echo "#define CONFIG_ADLIB 1" >> $config_h
905 fi
906 if test "$ac97" = "yes" ; then
907   echo "CONFIG_AC97=yes" >> $config_mak
908   echo "#define CONFIG_AC97 1" >> $config_h
909 fi
910 if test "$gus" = "yes" ; then
911   echo "CONFIG_GUS=yes" >> $config_mak
912   echo "#define CONFIG_GUS 1" >> $config_h
913 fi
914 if test "$oss" = "yes" ; then
915   echo "CONFIG_OSS=yes" >> $config_mak
916   echo "#define CONFIG_OSS 1" >> $config_h
917 fi
918 if test "$coreaudio" = "yes" ; then
919   echo "CONFIG_COREAUDIO=yes" >> $config_mak
920   echo "#define CONFIG_COREAUDIO 1" >> $config_h
921 fi
922 if test "$alsa" = "yes" ; then
923   echo "CONFIG_ALSA=yes" >> $config_mak
924   echo "#define CONFIG_ALSA 1" >> $config_h
925 fi
926 if test "$esd" = "yes" ; then
927   echo "CONFIG_ESD=yes" >> $config_mak
928   echo "#define CONFIG_ESD 1" >> $config_h
929 fi
930 if test "$dsound" = "yes" ; then
931   echo "CONFIG_DSOUND=yes" >> $config_mak
932   echo "#define CONFIG_DSOUND 1" >> $config_h
933 fi
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
939 fi
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
945 fi
946 qemu_version=`head $source_path/VERSION`
947 echo "VERSION=$qemu_version" >>$config_mak
948 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
949
950 echo "SRC_PATH=$source_path" >> $config_mak
951 if [ "$source_path_used" = "yes" ]; then
952   echo "VPATH=$source_path" >> $config_mak
953 fi
954 echo "TARGET_DIRS=$target_list" >> $config_mak
955 if [ "$build_docs" = "yes" ] ; then
956   echo "BUILD_DOCS=yes" >> $config_mak
957 fi
958 if test "$static" = "yes"; then
959   sdl1=$sdl_static
960 else
961   sdl1=$sdl
962 fi
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
968   else
969     echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
970   fi
971   if [ "${aa}" = "yes" ] ; then
972     echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
973   else
974     echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
975   fi
976 fi
977 if test "$cocoa" = "yes" ; then
978     echo "#define CONFIG_COCOA 1" >> $config_h
979     echo "CONFIG_COCOA=yes" >> $config_mak
980 fi
981
982 # XXX: suppress that
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
987 fi
988
989 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
990
991 tools=
992 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
993   tools="qemu-img\$(EXESUF) $tools"
994 fi
995 echo "TOOLS=$tools" >> $config_mak
996
997 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
998
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
1018 target_softmmu="no"
1019 target_user_only="no"
1020 target_linux_user="no"
1021 target_darwin_user="no"
1022 case "$target" in
1023   ${target_cpu}-softmmu)
1024     target_softmmu="yes"
1025     ;;
1026   ${target_cpu}-linux-user)
1027     target_user_only="yes"
1028     target_linux_user="yes"
1029     ;;
1030   ${target_cpu}-darwin-user)
1031     target_user_only="yes"
1032     target_darwin_user="yes"
1033     ;;
1034   *)
1035     echo "ERROR: Target '$target' not recognised"
1036     exit 1
1037     ;;
1038 esac
1039
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."
1045     exit 1;
1046 fi
1047
1048 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1049
1050 test -f $config_h && mv $config_h ${config_h}~
1051
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
1057 fi
1058
1059 #
1060 # don't use ln -sf as not all "ln -sf" over write the file/link
1061 #
1062 rm -f $target_dir/Makefile
1063 ln -s $source_path/Makefile.target $target_dir/Makefile
1064
1065
1066 echo "# Automatically generated by configure - do not modify" > $config_mak
1067 echo "/* Automatically generated by configure - do not modify */" > $config_h
1068
1069
1070 echo "include ../config-host.mak" >> $config_mak
1071 echo "#include \"../config-host.h\"" >> $config_h
1072
1073 bflt="no"
1074 elfload32="no"
1075 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1076 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1077
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
1084   fi
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
1089   bflt="yes"
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
1099   elfload32="yes"
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
1139   fi
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
1166   bflt="yes"
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
1171   bflt="yes"
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
1176 else
1177   echo "Unsupported target CPU"
1178   exit 1
1179 fi
1180 if test "$target_bigendian" = "yes" ; then
1181   echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1182   echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1183 fi
1184 if test "$target_softmmu" = "yes" ; then
1185   echo "CONFIG_SOFTMMU=yes" >> $config_mak
1186   echo "#define CONFIG_SOFTMMU 1" >> $config_h
1187 fi
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
1191 fi
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
1195 fi
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
1199 fi
1200
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
1204 fi
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
1208 fi
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
1213 fi
1214
1215 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1216
1217 done # for target in $targets
1218
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
1225             mkdir -p $dir
1226     done
1227     # remove the link and recreate it, as not all "ln -sf" overwrite the link
1228     for f in $FILES ; do
1229         rm -f $f
1230         ln -s $source_path/$f $f
1231     done
1232 fi
1233
1234 rm -f $TMPO $TMPC $TMPE $TMPS