Gravis Ultrasound GF1 sound card emulation (malc).
[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 VL_OS_LDFLAGS="-mno-cygwin"
119 if [ "$cpu" = "i386" ] ; then
120     kqemu="yes"
121 fi
122 ;;
123 MINGW32*)
124 mingw32="yes"
125 if [ "$cpu" = "i386" ] ; then
126     kqemu="yes"
127 fi
128 ;;
129 GNU/kFreeBSD)
130 oss="yes"
131 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
132     kqemu="yes"
133 fi
134 ;;
135 FreeBSD)
136 bsd="yes"
137 oss="yes"
138 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
139     kqemu="yes"
140 fi
141 ;;
142 NetBSD)
143 bsd="yes"
144 oss="yes"
145 ;;
146 OpenBSD)
147 bsd="yes"
148 oss="yes"
149 ;;
150 Darwin)
151 bsd="yes"
152 darwin="yes"
153 darwin_user="yes"
154 cocoa="yes"
155 coreaudio="yes"
156 OS_CFLAGS="-mdynamic-no-pic"
157 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
158 ;;
159 SunOS)
160     solaris="yes"
161     make="gmake"
162     install="ginstall"
163     needs_libsunmath="no"
164     solarisrev=`uname -r | cut -f2 -d.`
165     # have to select again, because `uname -m` returns i86pc
166     # even on an x86_64 box.
167     solariscpu=`isainfo -k`
168     if test "${solariscpu}" = "amd64" ; then
169         cpu="x86_64"
170     fi
171     if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
172         if test "$solarisrev" -le 9 ; then
173             if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
174                 needs_libsunmath="yes"
175             else
176                 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
177                 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
178                 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
179                 echo "Studio 11 can be downloaded from www.sun.com."
180                 exit 1
181             fi
182         fi
183         if test "$solarisrev" -ge 9 ; then
184             kqemu="yes"
185         fi
186     fi
187     if test -f /usr/include/sys/soundcard.h ; then
188         oss=yes
189     fi
190 ;;
191 *)
192 oss="yes"
193 linux="yes"
194 linux_user="yes"
195 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
196     kqemu="yes"
197 fi
198 ;;
199 esac
200
201 if [ "$bsd" = "yes" ] ; then
202   if [ "$darwin" != "yes" ] ; then
203     make="gmake"
204   fi
205 fi
206
207 # find source path
208 source_path=`dirname "$0"`
209 if [ -z "$source_path" ]; then
210     source_path=`pwd`
211 else
212     source_path=`cd "$source_path"; pwd`
213 fi
214 if test "$source_path" = `pwd` ; then
215     source_path_used="no"
216 else
217     source_path_used="yes"
218 fi
219
220 werror="no"
221 # generate compile errors on warnings for development builds
222 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
223 #werror="yes";
224 #fi
225
226 for opt do
227   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
228   case "$opt" in
229   --help|-h) show_help=yes
230   ;;
231   --prefix=*) prefix="$optarg"
232   ;;
233   --interp-prefix=*) interp_prefix="$optarg"
234   ;;
235   --source-path=*) source_path="$optarg"
236   source_path_used="yes"
237   ;;
238   --cross-prefix=*) cross_prefix="$optarg"
239   ;;
240   --cc=*) cc="$optarg"
241   gcc3_search="no"
242   ;;
243   --host-cc=*) host_cc="$optarg"
244   ;;
245   --make=*) make="$optarg"
246   ;;
247   --install=*) install="$optarg"
248   ;;
249   --extra-cflags=*) CFLAGS="$optarg"
250   ;;
251   --extra-ldflags=*) LDFLAGS="$optarg"
252   ;;
253   --cpu=*) cpu="$optarg"
254   ;;
255   --target-list=*) target_list="$optarg"
256   ;;
257   --enable-gprof) gprof="yes"
258   ;;
259   --static) static="yes"
260   ;;
261   --disable-sdl) sdl="no"
262   ;;
263   --enable-coreaudio) coreaudio="yes"
264   ;;
265   --enable-alsa) alsa="yes"
266   ;;
267   --enable-esd) esd="yes"
268   ;;
269   --enable-dsound) dsound="yes"
270   ;;
271   --enable-fmod) fmod="yes"
272   ;;
273   --fmod-lib=*) fmod_lib="$optarg"
274   ;;
275   --fmod-inc=*) fmod_inc="$optarg"
276   ;;
277   --disable-vnc-tls) vnc_tls="no"
278   ;;
279   --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
280   ;;
281   --disable-slirp) slirp="no"
282   ;;
283   --enable-adlib) adlib="yes"
284   ;;
285   --enable-ac97) ac97="yes"
286   ;;
287   --enable-gus) gus="yes"
288   ;;
289   --disable-kqemu) kqemu="no"
290   ;;
291   --enable-profiler) profiler="yes"
292   ;;
293   --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
294   ;;
295   --disable-gfx-check) check_gfx="no"
296   ;;
297   --disable-gcc-check) check_gcc="no"
298   ;;
299   --disable-system) softmmu="no"
300   ;;
301   --enable-system) softmmu="yes"
302   ;;
303   --disable-linux-user) linux_user="no"
304   ;;
305   --enable-linux-user) linux_user="yes"
306   ;;
307   --disable-darwin-user) darwin_user="no"
308   ;;
309   --enable-darwin-user) darwin_user="yes"
310   ;;
311   --enable-uname-release=*) uname_release="$optarg"
312   ;;
313   --sparc_cpu=*)
314       sparc_cpu="$optarg"
315       case $sparc_cpu in
316         v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
317                  target_cpu="sparc"; cpu="sparc" ;;
318         v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
319                  target_cpu="sparc"; cpu="sparc" ;;
320         v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
321                  target_cpu="sparc64"; cpu="sparc64" ;;
322         *)     echo "undefined SPARC architecture. Exiting";exit 1;;
323       esac
324   ;;
325   --enable-werror) werror="yes"
326   ;;
327   --disable-werror) werror="no"
328   ;;
329   *) echo "ERROR: unknown option $opt"; show_help="yes"
330   ;;
331   esac
332 done
333
334 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
335     AIOLIBS=
336 else
337     # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
338     AIOLIBS="-lrt -lpthread"
339 fi
340
341 # default flags for all hosts
342 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
343 LDFLAGS="$LDFLAGS -g"
344 if test "$werror" = "yes" ; then
345 CFLAGS="$CFLAGS -Werror"
346 fi
347
348 #
349 # If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
350 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
351 #
352 case $cpu in
353     sparc) if test -z "$sparc_cpu" ; then
354                ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
355                ARCH_LDFLAGS="-m32"
356            else
357                ARCH_CFLAGS="${SP_CFLAGS}"
358                ARCH_LDFLAGS="${SP_LDFLAGS}"
359            fi
360            ;;
361     sparc64) if test -z "$sparc_cpu" ; then
362                ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
363                ARCH_LDFLAGS="-m64"
364            else
365                ARCH_CFLAGS="${SP_CFLAGS}"
366                ARCH_LDFLAGS="${SP_LDFLAGS}"
367            fi
368            ;;
369     s390)
370            ARCH_CFLAGS="-march=z900"
371            ;;
372 esac
373
374 if [ "$solaris" = "yes" -a  "$cpu" = "x86_64" ] ; then
375     CFLAGS="${CFLAGS} -m64"
376     OS_CFLAGS="${OS_CFLAGS} -m64"
377     OS_LDFLAGS="${OS_LDFLAGS} -m64"
378 fi
379
380 if [ "$solaris" = "yes" -a  "$cpu" = "i386" ] ; then
381     CFLAGS="${CFLAGS} -m32"
382     OS_CFLAGS="${OS_CFLAGS} -m32"
383 fi
384
385 if test x"$show_help" = x"yes" ; then
386 cat << EOF
387
388 Usage: configure [options]
389 Options: [defaults in brackets after descriptions]
390
391 EOF
392 echo "Standard options:"
393 echo "  --help                   print this message"
394 echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
395 echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
396 echo "                           use %M for cpu name [$interp_prefix]"
397 echo "  --target-list=LIST       set target list [$target_list]"
398 echo ""
399 echo "kqemu kernel acceleration support:"
400 echo "  --disable-kqemu          disable kqemu support"
401 echo ""
402 echo "Advanced options (experts only):"
403 echo "  --source-path=PATH       path of source code [$source_path]"
404 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
405 echo "  --cc=CC                  use C compiler CC [$cc]"
406 echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
407 echo "  --make=MAKE              use specified make [$make]"
408 echo "  --install=INSTALL        use specified install [$install]"
409 echo "  --static                 enable static build [$static]"
410 echo "  --disable-werror         disable compilation abort on warning"
411 echo "  --disable-sdl            disable SDL"
412 echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
413 echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
414 echo "  --enable-adlib           enable Adlib emulation"
415 echo "  --enable-ac97            enable AC97 emulation"
416 echo "  --enable-gus             enable Gravis Ultrasound emulation"
417 echo "  --enable-coreaudio       enable Coreaudio audio driver"
418 echo "  --enable-alsa            enable ALSA audio driver"
419 echo "  --enable-esd             enable EsoundD audio driver"
420 echo "  --enable-fmod            enable FMOD audio driver"
421 echo "  --enable-dsound          enable DirectSound audio driver"
422 echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
423 echo "  --enable-system          enable all system emulation targets"
424 echo "  --disable-system         disable all system emulation targets"
425 echo "  --enable-linux-user      enable all linux usermode emulation targets"
426 echo "  --disable-linux-user     disable all linux usermode emulation targets"
427 echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
428 echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
429 echo "  --fmod-lib               path to FMOD library"
430 echo "  --fmod-inc               path to FMOD includes"
431 echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
432 echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
433 echo ""
434 echo "NOTE: The object files are built at the place where configure is launched"
435 exit 1
436 fi
437
438 cc="${cross_prefix}${cc}"
439 ar="${cross_prefix}${ar}"
440 strip="${cross_prefix}${strip}"
441
442 # check that the C compiler works.
443 cat > $TMPC <<EOF
444 int main(void) {}
445 EOF
446
447 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
448   : C compiler works ok
449 else
450     echo "ERROR: \"$cc\" either does not exist or does not work"
451     exit 1
452 fi
453
454 if test "$mingw32" = "yes" ; then
455     linux="no"
456     EXESUF=".exe"
457     oss="no"
458 fi
459
460 # Check for gcc4, error if pre-gcc4
461 if test "$check_gcc" = "yes" ; then
462     cat > $TMPC <<EOF
463 #if __GNUC__ < 4
464 #error gcc3
465 #endif
466 int main(){return 0;}
467 EOF
468     if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
469         echo "WARNING: \"$cc\" looks like gcc 4.x"
470         found_compat_cc="no"
471         if test "$gcc3_search" = "yes" ; then
472             echo "Looking for gcc 3.x"
473             for compat_cc in $gcc3_list ; do
474                 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
475                     echo "Found \"$compat_cc\""
476                     cc="$cross_prefix$compat_cc"
477                     found_compat_cc="yes"
478                     break
479                 fi
480             done
481             if test "$found_compat_cc" = "no" ; then
482                 echo "gcc 3.x not found!"
483             fi
484         fi
485         if test "$found_compat_cc" = "no" ; then
486             echo "QEMU is known to have problems when compiled with gcc 4.x"
487             echo "It is recommended that you use gcc 3.x to build QEMU"
488             echo "To use this compiler anyway, configure with --disable-gcc-check"
489             exit 1;
490         fi
491     fi
492 fi
493
494 #
495 # Solaris specific configure tool chain decisions
496 #
497 if test "$solaris" = "yes" ; then
498   #
499   # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
500   # override the check with --disable-gcc-check
501   #
502   if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
503     solgcc=`which $cc`
504     if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
505       echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
506       echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
507       echo "or get the latest patch from SunSolve for gcc"
508       exit 1
509     fi
510   fi
511   solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
512   if test -z "$solinst" ; then
513     echo "Solaris install program not found. Use --install=/usr/ucb/install or"
514     echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
515     echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
516     exit 1
517   fi
518   if test "$solinst" = "/usr/sbin/install" ; then
519     echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
520     echo "try ginstall from the GNU fileutils available from www.blastwave.org"
521     echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
522     exit 1
523   fi
524   sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
525   if test -z "$sol_ar" ; then
526     echo "Error: No path includes ar"
527     if test -f /usr/ccs/bin/ar ; then
528       echo "Add /usr/ccs/bin to your path and rerun configure"
529     fi
530     exit 1
531   fi
532 fi
533
534
535 if test -z "$target_list" ; then
536 # these targets are portable
537     if [ "$softmmu" = "yes" ] ; then
538         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"
539     fi
540 # the following are Linux specific
541     if [ "$linux_user" = "yes" ] ; then
542         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"
543     fi
544 # the following are Darwin specific
545     if [ "$darwin_user" = "yes" ] ; then
546         target_list="i386-darwin-user ppc-darwin-user $target_list"
547     fi
548 else
549     target_list=`echo "$target_list" | sed -e 's/,/ /g'`
550 fi
551 if test -z "$target_list" ; then
552     echo "No targets enabled"
553     exit 1
554 fi
555
556 if test -z "$cross_prefix" ; then
557
558 # ---
559 # big/little endian test
560 cat > $TMPC << EOF
561 #include <inttypes.h>
562 int main(int argc, char ** argv){
563         volatile uint32_t i=0x01234567;
564         return (*((uint8_t*)(&i))) == 0x67;
565 }
566 EOF
567
568 if $cc -o $TMPE $TMPC 2> /dev/null ; then
569 $TMPE && bigendian="yes"
570 else
571 echo big/little test failed
572 fi
573
574 else
575
576 # if cross compiling, cannot launch a program, so make a static guess
577 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
578     bigendian="yes"
579 fi
580
581 fi
582
583 # host long bits test
584 hostlongbits="32"
585 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
586     hostlongbits="64"
587 fi
588
589 # check gcc options support
590 cat > $TMPC <<EOF
591 int main(void) {
592 }
593 EOF
594
595 ##########################################
596 # SDL probe
597
598 sdl_too_old=no
599
600 if test -z "$sdl" ; then
601     sdl_config="sdl-config"
602     sdl=no
603     sdl_static=no
604
605     if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
606     # win32 cross compilation case
607         sdl_config="i386-mingw32msvc-sdl-config"
608         sdl=yes
609     else
610         # normal SDL probe
611 cat > $TMPC << EOF
612 #include <SDL.h>
613 #undef main /* We don't want SDL to override our main() */
614 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
615 EOF
616         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
617             _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
618             if test "$_sdlversion" -lt 121 ; then
619                 sdl_too_old=yes
620             else
621                 if test "$cocoa" = "no" ; then
622                     sdl=yes
623                 fi
624             fi
625
626             # static link with sdl ?
627             if test "$sdl" = "yes" ; then
628                 aa="no"
629                 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
630                 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
631                 if [ "$aa" = "yes" ] ; then
632                     sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
633                 fi
634
635                 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
636                     sdl_static=yes
637                 fi
638             fi # static link
639         fi # sdl compile test
640     fi # cross compilation
641 else
642     # Make sure to disable cocoa if sdl was set
643     if test "$sdl" = "yes" ; then
644        cocoa="no"
645        coreaudio="no"
646     fi
647 fi # -z $sdl
648
649 ##########################################
650 # VNC TLS detection
651 if test "$vnc_tls" = "yes" ; then
652   `pkg-config gnutls` || vnc_tls="no"
653 fi
654 if test "$vnc_tls" = "yes" ; then
655   vnc_tls_cflags=`pkg-config --cflags gnutls`
656   vnc_tls_libs=`pkg-config --libs gnutls`
657 fi
658
659 ##########################################
660 # alsa sound support libraries
661
662 if test "$alsa" = "yes" ; then
663   cat > $TMPC << EOF
664 #include <alsa/asoundlib.h>
665 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
666 EOF
667   if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
668     :
669   else
670     echo
671     echo "Error: Could not find alsa"
672     echo "Make sure to have the alsa libs and headers installed."
673     echo
674     exit 1
675   fi
676 fi
677
678 # Check if tools are available to build documentation.
679 if [ -x "`which texi2html 2>/dev/null`" ] && \
680    [ -x "`which pod2man 2>/dev/null`" ]; then
681   build_docs="yes"
682 fi
683
684 if test "$mingw32" = "yes" ; then
685   if test -z "$prefix" ; then
686       prefix="/c/Program Files/Qemu"
687   fi
688   mansuffix=""
689   datasuffix=""
690   docsuffix=""
691   binsuffix=""
692 else
693   if test -z "$prefix" ; then
694       prefix="/usr/local"
695   fi
696   mansuffix="/share/man"
697   datasuffix="/share/qemu"
698   docsuffix="/share/doc/qemu"
699   binsuffix="/bin"
700 fi
701
702 echo "Install prefix    $prefix"
703 echo "BIOS directory    $prefix$datasuffix"
704 echo "binary directory  $prefix$binsuffix"
705 if test "$mingw32" = "no" ; then
706 echo "Manual directory  $prefix$mansuffix"
707 echo "ELF interp prefix $interp_prefix"
708 fi
709 echo "Source path       $source_path"
710 echo "C compiler        $cc"
711 echo "Host C compiler   $host_cc"
712 echo "make              $make"
713 echo "install           $install"
714 echo "host CPU          $cpu"
715 echo "host big endian   $bigendian"
716 echo "target list       $target_list"
717 echo "gprof enabled     $gprof"
718 echo "profiler          $profiler"
719 echo "static build      $static"
720 echo "-Werror enabled   $werror"
721 if test "$darwin" = "yes" ; then
722     echo "Cocoa support     $cocoa"
723 fi
724 echo "SDL support       $sdl"
725 if test "$sdl" != "no" ; then
726     echo "SDL static link   $sdl_static"
727 fi
728 echo "mingw32 support   $mingw32"
729 echo "Adlib support     $adlib"
730 echo "AC97 support      $ac97"
731 echo "GUS support       $gus"
732 echo "CoreAudio support $coreaudio"
733 echo "ALSA support      $alsa"
734 echo "EsounD support    $esd"
735 echo "DSound support    $dsound"
736 if test "$fmod" = "yes"; then
737     if test -z $fmod_lib || test -z $fmod_inc; then
738         echo
739         echo "Error: You must specify path to FMOD library and headers"
740         echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
741         echo
742         exit 1
743     fi
744     fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
745 else
746     fmod_support=""
747 fi
748 echo "FMOD support      $fmod $fmod_support"
749 echo "OSS support       $oss"
750 echo "VNC TLS support   $vnc_tls"
751 if test "$vnc_tls" = "yes" ; then
752     echo "    TLS CFLAGS    $vnc_tls_cflags"
753     echo "    TLS LIBS      $vnc_tls_libs"
754 fi
755 if test -n "$sparc_cpu"; then
756     echo "Target Sparc Arch $sparc_cpu"
757 fi
758 echo "kqemu support     $kqemu"
759 echo "Documentation     $build_docs"
760 [ ! -z "$uname_release" ] && \
761 echo "uname -r          $uname_release"
762
763 if test $sdl_too_old = "yes"; then
764 echo "-> Your SDL version is too old - please upgrade to have SDL support"
765 fi
766 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
767   echo "The error log from compiling the libSDL test is: "
768   cat /tmp/qemu-$$-sdl-config.log
769 fi
770 rm -f /tmp/qemu-$$-sdl-config.log
771 #if test "$sdl_static" = "no"; then
772 #  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
773 #fi
774 config_mak="config-host.mak"
775 config_h="config-host.h"
776
777 #echo "Creating $config_mak and $config_h"
778
779 test -f $config_h && mv $config_h ${config_h}~
780
781 echo "# Automatically generated by configure - do not modify" > $config_mak
782 echo "# Configured with: $0 $@" >> $config_mak
783 echo "/* Automatically generated by configure - do not modify */" > $config_h
784
785 echo "prefix=$prefix" >> $config_mak
786 echo "bindir=\${prefix}$binsuffix" >> $config_mak
787 echo "mandir=\${prefix}$mansuffix" >> $config_mak
788 echo "datadir=\${prefix}$datasuffix" >> $config_mak
789 echo "docdir=\${prefix}$docsuffix" >> $config_mak
790 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
791 echo "MAKE=$make" >> $config_mak
792 echo "INSTALL=$install" >> $config_mak
793 echo "CC=$cc" >> $config_mak
794 echo "HOST_CC=$host_cc" >> $config_mak
795 echo "AR=$ar" >> $config_mak
796 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
797 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
798 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
799 echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
800 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
801 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
802 echo "CFLAGS=$CFLAGS" >> $config_mak
803 echo "LDFLAGS=$LDFLAGS" >> $config_mak
804 echo "EXESUF=$EXESUF" >> $config_mak
805 echo "AIOLIBS=$AIOLIBS" >> $config_mak
806 if test "$cpu" = "i386" ; then
807   echo "ARCH=i386" >> $config_mak
808   echo "#define HOST_I386 1" >> $config_h
809 elif test "$cpu" = "x86_64" ; then
810   echo "ARCH=x86_64" >> $config_mak
811   echo "#define HOST_X86_64 1" >> $config_h
812 elif test "$cpu" = "armv4b" ; then
813   echo "ARCH=arm" >> $config_mak
814   echo "#define HOST_ARM 1" >> $config_h
815 elif test "$cpu" = "armv4l" ; then
816   echo "ARCH=arm" >> $config_mak
817   echo "#define HOST_ARM 1" >> $config_h
818 elif test "$cpu" = "powerpc" ; then
819   echo "ARCH=ppc" >> $config_mak
820   echo "#define HOST_PPC 1" >> $config_h
821 elif test "$cpu" = "mips" ; then
822   echo "ARCH=mips" >> $config_mak
823   echo "#define HOST_MIPS 1" >> $config_h
824 elif test "$cpu" = "mips64" ; then
825   echo "ARCH=mips64" >> $config_mak
826   echo "#define HOST_MIPS64 1" >> $config_h
827 elif test "$cpu" = "cris" ; then
828   echo "ARCH=cris" >> $config_mak
829   echo "#define HOST_CRIS 1" >> $config_h
830 elif test "$cpu" = "s390" ; then
831   echo "ARCH=s390" >> $config_mak
832   echo "#define HOST_S390 1" >> $config_h
833 elif test "$cpu" = "alpha" ; then
834   echo "ARCH=alpha" >> $config_mak
835   echo "#define HOST_ALPHA 1" >> $config_h
836 elif test "$cpu" = "sparc" ; then
837   echo "ARCH=sparc" >> $config_mak
838   echo "#define HOST_SPARC 1" >> $config_h
839 elif test "$cpu" = "sparc64" ; then
840   echo "ARCH=sparc64" >> $config_mak
841   echo "#define HOST_SPARC64 1" >> $config_h
842 elif test "$cpu" = "ia64" ; then
843   echo "ARCH=ia64" >> $config_mak
844   echo "#define HOST_IA64 1" >> $config_h
845 elif test "$cpu" = "m68k" ; then
846   echo "ARCH=m68k" >> $config_mak
847   echo "#define HOST_M68K 1" >> $config_h
848 else
849   echo "Unsupported CPU = $cpu"
850   exit 1
851 fi
852 if test "$bigendian" = "yes" ; then
853   echo "WORDS_BIGENDIAN=yes" >> $config_mak
854   echo "#define WORDS_BIGENDIAN 1" >> $config_h
855 fi
856 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
857 if test "$mingw32" = "yes" ; then
858   echo "CONFIG_WIN32=yes" >> $config_mak
859   echo "#define CONFIG_WIN32 1" >> $config_h
860 else
861   cat > $TMPC << EOF
862 #include <byteswap.h>
863 int main(void) { return bswap_32(0); }
864 EOF
865   if $cc -o $TMPE $TMPC 2> /dev/null ; then
866     echo "#define HAVE_BYTESWAP_H 1" >> $config_h
867   fi
868 fi
869 if test "$darwin" = "yes" ; then
870   echo "CONFIG_DARWIN=yes" >> $config_mak
871   echo "#define CONFIG_DARWIN 1" >> $config_h
872 fi
873 if test "$solaris" = "yes" ; then
874   echo "CONFIG_SOLARIS=yes" >> $config_mak
875   echo "#define HOST_SOLARIS $solarisrev" >> $config_h
876   if test "$needs_libsunmath" = "yes" ; then
877     echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
878     echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
879   fi
880 fi
881 if test -n "$sparc_cpu"; then
882   echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
883   echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
884 fi
885 if test "$gdbstub" = "yes" ; then
886   echo "CONFIG_GDBSTUB=yes" >> $config_mak
887   echo "#define CONFIG_GDBSTUB 1" >> $config_h
888 fi
889 if test "$gprof" = "yes" ; then
890   echo "TARGET_GPROF=yes" >> $config_mak
891   echo "#define HAVE_GPROF 1" >> $config_h
892 fi
893 if test "$static" = "yes" ; then
894   echo "CONFIG_STATIC=yes" >> $config_mak
895   echo "#define CONFIG_STATIC 1" >> $config_h
896 fi
897 if test $profiler = "yes" ; then
898   echo "#define CONFIG_PROFILER 1" >> $config_h
899 fi
900 if test "$slirp" = "yes" ; then
901   echo "CONFIG_SLIRP=yes" >> $config_mak
902   echo "#define CONFIG_SLIRP 1" >> $config_h
903 fi
904 if test "$adlib" = "yes" ; then
905   echo "CONFIG_ADLIB=yes" >> $config_mak
906   echo "#define CONFIG_ADLIB 1" >> $config_h
907 fi
908 if test "$ac97" = "yes" ; then
909   echo "CONFIG_AC97=yes" >> $config_mak
910   echo "#define CONFIG_AC97 1" >> $config_h
911 fi
912 if test "$gus" = "yes" ; then
913   echo "CONFIG_GUS=yes" >> $config_mak
914   echo "#define CONFIG_GUS 1" >> $config_h
915 fi
916 if test "$oss" = "yes" ; then
917   echo "CONFIG_OSS=yes" >> $config_mak
918   echo "#define CONFIG_OSS 1" >> $config_h
919 fi
920 if test "$coreaudio" = "yes" ; then
921   echo "CONFIG_COREAUDIO=yes" >> $config_mak
922   echo "#define CONFIG_COREAUDIO 1" >> $config_h
923 fi
924 if test "$alsa" = "yes" ; then
925   echo "CONFIG_ALSA=yes" >> $config_mak
926   echo "#define CONFIG_ALSA 1" >> $config_h
927 fi
928 if test "$esd" = "yes" ; then
929   echo "CONFIG_ESD=yes" >> $config_mak
930   echo "#define CONFIG_ESD 1" >> $config_h
931 fi
932 if test "$dsound" = "yes" ; then
933   echo "CONFIG_DSOUND=yes" >> $config_mak
934   echo "#define CONFIG_DSOUND 1" >> $config_h
935 fi
936 if test "$fmod" = "yes" ; then
937   echo "CONFIG_FMOD=yes" >> $config_mak
938   echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
939   echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
940   echo "#define CONFIG_FMOD 1" >> $config_h
941 fi
942 if test "$vnc_tls" = "yes" ; then
943   echo "CONFIG_VNC_TLS=yes" >> $config_mak
944   echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
945   echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
946   echo "#define CONFIG_VNC_TLS 1" >> $config_h
947 fi
948 qemu_version=`head $source_path/VERSION`
949 echo "VERSION=$qemu_version" >>$config_mak
950 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
951
952 echo "SRC_PATH=$source_path" >> $config_mak
953 if [ "$source_path_used" = "yes" ]; then
954   echo "VPATH=$source_path" >> $config_mak
955 fi
956 echo "TARGET_DIRS=$target_list" >> $config_mak
957 if [ "$build_docs" = "yes" ] ; then
958   echo "BUILD_DOCS=yes" >> $config_mak
959 fi
960 if test "$static" = "yes"; then
961   sdl1=$sdl_static
962 else
963   sdl1=$sdl
964 fi
965 if test "$sdl1" = "yes" ; then
966   echo "#define CONFIG_SDL 1" >> $config_h
967   echo "CONFIG_SDL=yes" >> $config_mak
968   if test "$target_softmmu" = "no" -o "$static" = "yes"; then
969     echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
970   else
971     echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
972   fi
973   if [ "${aa}" = "yes" ] ; then
974     echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
975   else
976     echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
977   fi
978 fi
979 if test "$cocoa" = "yes" ; then
980     echo "#define CONFIG_COCOA 1" >> $config_h
981     echo "CONFIG_COCOA=yes" >> $config_mak
982 fi
983
984 # XXX: suppress that
985 if [ "$bsd" = "yes" ] ; then
986   echo "#define O_LARGEFILE 0" >> $config_h
987   echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
988   echo "#define _BSD 1" >> $config_h
989 fi
990
991 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
992
993 tools=
994 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
995   tools="qemu-img\$(EXESUF) $tools"
996 fi
997 echo "TOOLS=$tools" >> $config_mak
998
999 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1000
1001 for target in $target_list; do
1002 target_dir="$target"
1003 config_mak=$target_dir/config.mak
1004 config_h=$target_dir/config.h
1005 target_cpu=`echo $target | cut -d '-' -f 1`
1006 target_bigendian="no"
1007 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1008 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1009 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1010 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1011 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1012 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1013 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1014 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1015 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1016 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1017 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1018 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1019 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1020 target_softmmu="no"
1021 target_user_only="no"
1022 target_linux_user="no"
1023 target_darwin_user="no"
1024 case "$target" in
1025   ${target_cpu}-softmmu)
1026     target_softmmu="yes"
1027     ;;
1028   ${target_cpu}-linux-user)
1029     target_user_only="yes"
1030     target_linux_user="yes"
1031     ;;
1032   ${target_cpu}-darwin-user)
1033     target_user_only="yes"
1034     target_darwin_user="yes"
1035     ;;
1036   *)
1037     echo "ERROR: Target '$target' not recognised"
1038     exit 1
1039     ;;
1040 esac
1041
1042 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1043         -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1044     echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1045     echo "To build QEMU without graphical output configure with --disable-gfx-check"
1046     echo "Note that this will disable all output from the virtual graphics card."
1047     exit 1;
1048 fi
1049
1050 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1051
1052 test -f $config_h && mv $config_h ${config_h}~
1053
1054 mkdir -p $target_dir
1055 mkdir -p $target_dir/fpu
1056 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1057   mkdir -p $target_dir/nwfpe
1058 fi
1059
1060 #
1061 # don't use ln -sf as not all "ln -sf" over write the file/link
1062 #
1063 rm -f $target_dir/Makefile
1064 ln -s $source_path/Makefile.target $target_dir/Makefile
1065
1066
1067 echo "# Automatically generated by configure - do not modify" > $config_mak
1068 echo "/* Automatically generated by configure - do not modify */" > $config_h
1069
1070
1071 echo "include ../config-host.mak" >> $config_mak
1072 echo "#include \"../config-host.h\"" >> $config_h
1073
1074 bflt="no"
1075 elfload32="no"
1076 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1077 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1078
1079 if test "$target_cpu" = "i386" ; then
1080   echo "TARGET_ARCH=i386" >> $config_mak
1081   echo "#define TARGET_ARCH \"i386\"" >> $config_h
1082   echo "#define TARGET_I386 1" >> $config_h
1083   if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1084     echo "#define USE_KQEMU 1" >> $config_h
1085   fi
1086 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1087   echo "TARGET_ARCH=arm" >> $config_mak
1088   echo "#define TARGET_ARCH \"arm\"" >> $config_h
1089   echo "#define TARGET_ARM 1" >> $config_h
1090   bflt="yes"
1091 elif test "$target_cpu" = "sparc" ; then
1092   echo "TARGET_ARCH=sparc" >> $config_mak
1093   echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1094   echo "#define TARGET_SPARC 1" >> $config_h
1095 elif test "$target_cpu" = "sparc64" ; then
1096   echo "TARGET_ARCH=sparc64" >> $config_mak
1097   echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1098   echo "#define TARGET_SPARC 1" >> $config_h
1099   echo "#define TARGET_SPARC64 1" >> $config_h
1100   elfload32="yes"
1101 elif test "$target_cpu" = "sparc32plus" ; then
1102   echo "TARGET_ARCH=sparc64" >> $config_mak
1103   echo "TARGET_ABI_DIR=sparc" >> $config_mak
1104   echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1105   echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1106   echo "#define TARGET_SPARC 1" >> $config_h
1107   echo "#define TARGET_SPARC64 1" >> $config_h
1108   echo "#define TARGET_ABI32 1" >> $config_h
1109 elif test "$target_cpu" = "ppc" ; then
1110   echo "TARGET_ARCH=ppc" >> $config_mak
1111   echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1112   echo "#define TARGET_PPC 1" >> $config_h
1113 elif test "$target_cpu" = "ppcemb" ; then
1114   echo "TARGET_ARCH=ppcemb" >> $config_mak
1115   echo "TARGET_ABI_DIR=ppc" >> $config_mak
1116   echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1117   echo "#define TARGET_PPC 1" >> $config_h
1118   echo "#define TARGET_PPCEMB 1" >> $config_h
1119 elif test "$target_cpu" = "ppc64" ; then
1120   echo "TARGET_ARCH=ppc64" >> $config_mak
1121   echo "TARGET_ABI_DIR=ppc" >> $config_mak
1122   echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1123   echo "#define TARGET_PPC 1" >> $config_h
1124   echo "#define TARGET_PPC64 1" >> $config_h
1125 elif test "$target_cpu" = "ppc64abi32" ; then
1126   echo "TARGET_ARCH=ppc64" >> $config_mak
1127   echo "TARGET_ABI_DIR=ppc" >> $config_mak
1128   echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1129   echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1130   echo "#define TARGET_PPC 1" >> $config_h
1131   echo "#define TARGET_PPC64 1" >> $config_h
1132   echo "#define TARGET_ABI32 1" >> $config_h
1133 elif test "$target_cpu" = "x86_64" ; then
1134   echo "TARGET_ARCH=x86_64" >> $config_mak
1135   echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1136   echo "#define TARGET_I386 1" >> $config_h
1137   echo "#define TARGET_X86_64 1" >> $config_h
1138   if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
1139     echo "#define USE_KQEMU 1" >> $config_h
1140   fi
1141 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1142   echo "TARGET_ARCH=mips" >> $config_mak
1143   echo "#define TARGET_ARCH \"mips\"" >> $config_h
1144   echo "#define TARGET_MIPS 1" >> $config_h
1145   echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1146 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1147   echo "TARGET_ARCH=mipsn32" >> $config_mak
1148   echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1149   echo "#define TARGET_MIPS 1" >> $config_h
1150   echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1151 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1152   echo "TARGET_ARCH=mips64" >> $config_mak
1153   echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1154   echo "#define TARGET_MIPS 1" >> $config_h
1155   echo "#define TARGET_MIPS64 1" >> $config_h
1156   echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1157 elif test "$target_cpu" = "cris" ; then
1158   echo "TARGET_ARCH=cris" >> $config_mak
1159   echo "#define TARGET_ARCH \"cris\"" >> $config_h
1160   echo "#define TARGET_CRIS 1" >> $config_h
1161   echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1162   echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1163 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1164   echo "TARGET_ARCH=sh4" >> $config_mak
1165   echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1166   echo "#define TARGET_SH4 1" >> $config_h
1167   bflt="yes"
1168 elif test "$target_cpu" = "m68k" ; then
1169   echo "TARGET_ARCH=m68k" >> $config_mak
1170   echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1171   echo "#define TARGET_M68K 1" >> $config_h
1172   bflt="yes"
1173 elif test "$target_cpu" = "alpha" ; then
1174   echo "TARGET_ARCH=alpha" >> $config_mak
1175   echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1176   echo "#define TARGET_ALPHA 1" >> $config_h
1177 else
1178   echo "Unsupported target CPU"
1179   exit 1
1180 fi
1181 if test "$target_bigendian" = "yes" ; then
1182   echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1183   echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1184 fi
1185 if test "$target_softmmu" = "yes" ; then
1186   echo "CONFIG_SOFTMMU=yes" >> $config_mak
1187   echo "#define CONFIG_SOFTMMU 1" >> $config_h
1188 fi
1189 if test "$target_user_only" = "yes" ; then
1190   echo "CONFIG_USER_ONLY=yes" >> $config_mak
1191   echo "#define CONFIG_USER_ONLY 1" >> $config_h
1192 fi
1193 if test "$target_linux_user" = "yes" ; then
1194   echo "CONFIG_LINUX_USER=yes" >> $config_mak
1195   echo "#define CONFIG_LINUX_USER 1" >> $config_h
1196 fi
1197 if test "$target_darwin_user" = "yes" ; then
1198   echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1199   echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1200 fi
1201
1202 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
1203   echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1204   echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1205 fi
1206 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1207   echo "TARGET_HAS_BFLT=yes" >> $config_mak
1208   echo "#define TARGET_HAS_BFLT 1" >> $config_h
1209 fi
1210 # 32 bit ELF loader in addition to native 64 bit loader?
1211 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1212   echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1213   echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1214 fi
1215
1216 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1217
1218 done # for target in $targets
1219
1220 # build tree in object directory if source path is different from current one
1221 if test "$source_path_used" = "yes" ; then
1222     DIRS="tests tests/cris slirp audio"
1223     FILES="Makefile tests/Makefile"
1224     FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1225     for dir in $DIRS ; do
1226             mkdir -p $dir
1227     done
1228     # remove the link and recreate it, as not all "ln -sf" overwrite the link
1229     for f in $FILES ; do
1230         rm -f $f
1231         ln -s $source_path/$f $f
1232     done
1233 fi
1234
1235 rm -f $TMPO $TMPC $TMPE $TMPS