Fix building under paths with symlinks (patch from Richard Purdie).
[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 source_path_used="no"
209 workdir=`pwd`
210 workdir=`readlink -f $workdir`
211 if [ -z "$source_path" ]; then
212     source_path=$workdir
213 else
214     source_path=`cd "$source_path"; pwd`
215     source_path=`readlink -f $source_path`
216     if test "$source_path" != "$workdir" ; then
217         source_path_used="yes"
218     fi
219 fi
220
221 werror="no"
222 # generate compile errors on warnings for development builds
223 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
224 #werror="yes";
225 #fi
226
227 for opt do
228   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
229   case "$opt" in
230   --help|-h) show_help=yes
231   ;;
232   --prefix=*) prefix="$optarg"
233   ;;
234   --interp-prefix=*) interp_prefix="$optarg"
235   ;;
236   --source-path=*) source_path="$optarg"
237   source_path_used="yes"
238   ;;
239   --cross-prefix=*) cross_prefix="$optarg"
240   ;;
241   --cc=*) cc="$optarg"
242   gcc3_search="no"
243   ;;
244   --host-cc=*) host_cc="$optarg"
245   ;;
246   --make=*) make="$optarg"
247   ;;
248   --install=*) install="$optarg"
249   ;;
250   --extra-cflags=*) CFLAGS="$optarg"
251   ;;
252   --extra-ldflags=*) LDFLAGS="$optarg"
253   ;;
254   --cpu=*) cpu="$optarg"
255   ;;
256   --target-list=*) target_list="$optarg"
257   ;;
258   --enable-gprof) gprof="yes"
259   ;;
260   --static) static="yes"
261   ;;
262   --disable-sdl) sdl="no"
263   ;;
264   --enable-coreaudio) coreaudio="yes"
265   ;;
266   --enable-alsa) alsa="yes"
267   ;;
268   --enable-esd) esd="yes"
269   ;;
270   --enable-dsound) dsound="yes"
271   ;;
272   --enable-fmod) fmod="yes"
273   ;;
274   --fmod-lib=*) fmod_lib="$optarg"
275   ;;
276   --fmod-inc=*) fmod_inc="$optarg"
277   ;;
278   --disable-vnc-tls) vnc_tls="no"
279   ;;
280   --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
281   ;;
282   --disable-slirp) slirp="no"
283   ;;
284   --enable-adlib) adlib="yes"
285   ;;
286   --enable-ac97) ac97="yes"
287   ;;
288   --enable-gus) gus="yes"
289   ;;
290   --disable-kqemu) kqemu="no"
291   ;;
292   --enable-profiler) profiler="yes"
293   ;;
294   --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
295   ;;
296   --disable-gfx-check) check_gfx="no"
297   ;;
298   --disable-gcc-check) check_gcc="no"
299   ;;
300   --disable-system) softmmu="no"
301   ;;
302   --enable-system) softmmu="yes"
303   ;;
304   --disable-linux-user) linux_user="no"
305   ;;
306   --enable-linux-user) linux_user="yes"
307   ;;
308   --disable-darwin-user) darwin_user="no"
309   ;;
310   --enable-darwin-user) darwin_user="yes"
311   ;;
312   --enable-uname-release=*) uname_release="$optarg"
313   ;;
314   --sparc_cpu=*)
315       sparc_cpu="$optarg"
316       case $sparc_cpu in
317         v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
318                  target_cpu="sparc"; cpu="sparc" ;;
319         v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
320                  target_cpu="sparc"; cpu="sparc" ;;
321         v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
322                  target_cpu="sparc64"; cpu="sparc64" ;;
323         *)     echo "undefined SPARC architecture. Exiting";exit 1;;
324       esac
325   ;;
326   --enable-werror) werror="yes"
327   ;;
328   --disable-werror) werror="no"
329   ;;
330   *) echo "ERROR: unknown option $opt"; show_help="yes"
331   ;;
332   esac
333 done
334
335 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
336     AIOLIBS=
337 else
338     # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
339     AIOLIBS="-lrt -lpthread"
340 fi
341
342 # default flags for all hosts
343 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
344 LDFLAGS="$LDFLAGS -g"
345 if test "$werror" = "yes" ; then
346 CFLAGS="$CFLAGS -Werror"
347 fi
348
349 #
350 # If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
351 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
352 #
353 case "$cpu" in
354     sparc) if test -z "$sparc_cpu" ; then
355                ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
356                ARCH_LDFLAGS="-m32"
357            else
358                ARCH_CFLAGS="${SP_CFLAGS}"
359                ARCH_LDFLAGS="${SP_LDFLAGS}"
360            fi
361            ;;
362     sparc64) if test -z "$sparc_cpu" ; then
363                ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
364                ARCH_LDFLAGS="-m64"
365            else
366                ARCH_CFLAGS="${SP_CFLAGS}"
367                ARCH_LDFLAGS="${SP_LDFLAGS}"
368            fi
369            ;;
370     s390)
371            ARCH_CFLAGS="-march=z900"
372            ;;
373     i386)
374            ARCH_CFLAGS="-m32"
375            ARCH_LDFLAGS="-m32"
376            ;;
377     x86_64)
378            ARCH_CFLAGS="-m64"
379            ARCH_LDFLAGS="-m64"
380            ;;
381 esac
382
383 if test x"$show_help" = x"yes" ; then
384 cat << EOF
385
386 Usage: configure [options]
387 Options: [defaults in brackets after descriptions]
388
389 EOF
390 echo "Standard options:"
391 echo "  --help                   print this message"
392 echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
393 echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
394 echo "                           use %M for cpu name [$interp_prefix]"
395 echo "  --target-list=LIST       set target list [$target_list]"
396 echo ""
397 echo "kqemu kernel acceleration support:"
398 echo "  --disable-kqemu          disable kqemu support"
399 echo ""
400 echo "Advanced options (experts only):"
401 echo "  --source-path=PATH       path of source code [$source_path]"
402 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
403 echo "  --cc=CC                  use C compiler CC [$cc]"
404 echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
405 echo "  --make=MAKE              use specified make [$make]"
406 echo "  --install=INSTALL        use specified install [$install]"
407 echo "  --static                 enable static build [$static]"
408 echo "  --disable-werror         disable compilation abort on warning"
409 echo "  --disable-sdl            disable SDL"
410 echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
411 echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
412 echo "  --enable-adlib           enable Adlib emulation"
413 echo "  --enable-ac97            enable AC97 emulation"
414 echo "  --enable-gus             enable Gravis Ultrasound emulation"
415 echo "  --enable-coreaudio       enable Coreaudio audio driver"
416 echo "  --enable-alsa            enable ALSA audio driver"
417 echo "  --enable-esd             enable EsoundD audio driver"
418 echo "  --enable-fmod            enable FMOD audio driver"
419 echo "  --enable-dsound          enable DirectSound audio driver"
420 echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
421 echo "  --enable-system          enable all system emulation targets"
422 echo "  --disable-system         disable all system emulation targets"
423 echo "  --enable-linux-user      enable all linux usermode emulation targets"
424 echo "  --disable-linux-user     disable all linux usermode emulation targets"
425 echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
426 echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
427 echo "  --fmod-lib               path to FMOD library"
428 echo "  --fmod-inc               path to FMOD includes"
429 echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
430 echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
431 echo ""
432 echo "NOTE: The object files are built at the place where configure is launched"
433 exit 1
434 fi
435
436 cc="${cross_prefix}${cc}"
437 ar="${cross_prefix}${ar}"
438 strip="${cross_prefix}${strip}"
439
440 # check that the C compiler works.
441 cat > $TMPC <<EOF
442 int main(void) {}
443 EOF
444
445 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
446   : C compiler works ok
447 else
448     echo "ERROR: \"$cc\" either does not exist or does not work"
449     exit 1
450 fi
451
452 if test "$mingw32" = "yes" ; then
453     linux="no"
454     EXESUF=".exe"
455     oss="no"
456 fi
457
458 # Check for gcc4, error if pre-gcc4
459 if test "$check_gcc" = "yes" ; then
460     cat > $TMPC <<EOF
461 #if __GNUC__ < 4
462 #error gcc3
463 #endif
464 int main(){return 0;}
465 EOF
466     if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
467         echo "WARNING: \"$cc\" looks like gcc 4.x"
468         found_compat_cc="no"
469         if test "$gcc3_search" = "yes" ; then
470             echo "Looking for gcc 3.x"
471             for compat_cc in $gcc3_list ; do
472                 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
473                     echo "Found \"$compat_cc\""
474                     cc="$cross_prefix$compat_cc"
475                     found_compat_cc="yes"
476                     break
477                 fi
478             done
479             if test "$found_compat_cc" = "no" ; then
480                 echo "gcc 3.x not found!"
481             fi
482         fi
483         if test "$found_compat_cc" = "no" ; then
484             echo "QEMU is known to have problems when compiled with gcc 4.x"
485             echo "It is recommended that you use gcc 3.x to build QEMU"
486             echo "To use this compiler anyway, configure with --disable-gcc-check"
487             exit 1;
488         fi
489     fi
490 fi
491
492 #
493 # Solaris specific configure tool chain decisions
494 #
495 if test "$solaris" = "yes" ; then
496   #
497   # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
498   # override the check with --disable-gcc-check
499   #
500   if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
501     solgcc=`which $cc`
502     if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
503       echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
504       echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
505       echo "or get the latest patch from SunSolve for gcc"
506       exit 1
507     fi
508   fi
509   solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
510   if test -z "$solinst" ; then
511     echo "Solaris install program not found. Use --install=/usr/ucb/install or"
512     echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
513     echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
514     exit 1
515   fi
516   if test "$solinst" = "/usr/sbin/install" ; then
517     echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
518     echo "try ginstall from the GNU fileutils available from www.blastwave.org"
519     echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
520     exit 1
521   fi
522   sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
523   if test -z "$sol_ar" ; then
524     echo "Error: No path includes ar"
525     if test -f /usr/ccs/bin/ar ; then
526       echo "Add /usr/ccs/bin to your path and rerun configure"
527     fi
528     exit 1
529   fi
530 fi
531
532
533 if test -z "$target_list" ; then
534 # these targets are portable
535     if [ "$softmmu" = "yes" ] ; then
536         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"
537     fi
538 # the following are Linux specific
539     if [ "$linux_user" = "yes" ] ; then
540         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"
541     fi
542 # the following are Darwin specific
543     if [ "$darwin_user" = "yes" ] ; then
544         target_list="i386-darwin-user ppc-darwin-user $target_list"
545     fi
546 else
547     target_list=`echo "$target_list" | sed -e 's/,/ /g'`
548 fi
549 if test -z "$target_list" ; then
550     echo "No targets enabled"
551     exit 1
552 fi
553
554 if test -z "$cross_prefix" ; then
555
556 # ---
557 # big/little endian test
558 cat > $TMPC << EOF
559 #include <inttypes.h>
560 int main(int argc, char ** argv){
561         volatile uint32_t i=0x01234567;
562         return (*((uint8_t*)(&i))) == 0x67;
563 }
564 EOF
565
566 if $cc -o $TMPE $TMPC 2> /dev/null ; then
567 $TMPE && bigendian="yes"
568 else
569 echo big/little test failed
570 fi
571
572 else
573
574 # if cross compiling, cannot launch a program, so make a static guess
575 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
576     bigendian="yes"
577 fi
578
579 fi
580
581 # host long bits test
582 hostlongbits="32"
583 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
584     hostlongbits="64"
585 fi
586
587 # check gcc options support
588 cat > $TMPC <<EOF
589 int main(void) {
590 }
591 EOF
592
593 ##########################################
594 # SDL probe
595
596 sdl_too_old=no
597
598 if test -z "$sdl" ; then
599     sdl_config="sdl-config"
600     sdl=no
601     sdl_static=no
602
603     if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
604     # win32 cross compilation case
605         sdl_config="i386-mingw32msvc-sdl-config"
606         sdl=yes
607     else
608         # normal SDL probe
609 cat > $TMPC << EOF
610 #include <SDL.h>
611 #undef main /* We don't want SDL to override our main() */
612 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
613 EOF
614         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
615             _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
616             if test "$_sdlversion" -lt 121 ; then
617                 sdl_too_old=yes
618             else
619                 if test "$cocoa" = "no" ; then
620                     sdl=yes
621                 fi
622             fi
623
624             # static link with sdl ?
625             if test "$sdl" = "yes" ; then
626                 aa="no"
627                 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
628                 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
629                 if [ "$aa" = "yes" ] ; then
630                     sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
631                 fi
632
633                 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
634                     sdl_static=yes
635                 fi
636             fi # static link
637         fi # sdl compile test
638     fi # cross compilation
639 else
640     # Make sure to disable cocoa if sdl was set
641     if test "$sdl" = "yes" ; then
642        cocoa="no"
643        coreaudio="no"
644     fi
645 fi # -z $sdl
646
647 ##########################################
648 # VNC TLS detection
649 if test "$vnc_tls" = "yes" ; then
650   `pkg-config gnutls` || vnc_tls="no"
651 fi
652 if test "$vnc_tls" = "yes" ; then
653   vnc_tls_cflags=`pkg-config --cflags gnutls`
654   vnc_tls_libs=`pkg-config --libs gnutls`
655 fi
656
657 ##########################################
658 # alsa sound support libraries
659
660 if test "$alsa" = "yes" ; then
661   cat > $TMPC << EOF
662 #include <alsa/asoundlib.h>
663 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
664 EOF
665   if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
666     :
667   else
668     echo
669     echo "Error: Could not find alsa"
670     echo "Make sure to have the alsa libs and headers installed."
671     echo
672     exit 1
673   fi
674 fi
675
676 # Check if tools are available to build documentation.
677 if [ -x "`which texi2html 2>/dev/null`" ] && \
678    [ -x "`which pod2man 2>/dev/null`" ]; then
679   build_docs="yes"
680 fi
681
682 if test "$mingw32" = "yes" ; then
683   if test -z "$prefix" ; then
684       prefix="/c/Program Files/Qemu"
685   fi
686   mansuffix=""
687   datasuffix=""
688   docsuffix=""
689   binsuffix=""
690 else
691   if test -z "$prefix" ; then
692       prefix="/usr/local"
693   fi
694   mansuffix="/share/man"
695   datasuffix="/share/qemu"
696   docsuffix="/share/doc/qemu"
697   binsuffix="/bin"
698 fi
699
700 echo "Install prefix    $prefix"
701 echo "BIOS directory    $prefix$datasuffix"
702 echo "binary directory  $prefix$binsuffix"
703 if test "$mingw32" = "no" ; then
704 echo "Manual directory  $prefix$mansuffix"
705 echo "ELF interp prefix $interp_prefix"
706 fi
707 echo "Source path       $source_path"
708 echo "C compiler        $cc"
709 echo "Host C compiler   $host_cc"
710 echo "make              $make"
711 echo "install           $install"
712 echo "host CPU          $cpu"
713 echo "host big endian   $bigendian"
714 echo "target list       $target_list"
715 echo "gprof enabled     $gprof"
716 echo "profiler          $profiler"
717 echo "static build      $static"
718 echo "-Werror enabled   $werror"
719 if test "$darwin" = "yes" ; then
720     echo "Cocoa support     $cocoa"
721 fi
722 echo "SDL support       $sdl"
723 if test "$sdl" != "no" ; then
724     echo "SDL static link   $sdl_static"
725 fi
726 echo "mingw32 support   $mingw32"
727 echo "Adlib support     $adlib"
728 echo "AC97 support      $ac97"
729 echo "GUS support       $gus"
730 echo "CoreAudio support $coreaudio"
731 echo "ALSA support      $alsa"
732 echo "EsounD support    $esd"
733 echo "DSound support    $dsound"
734 if test "$fmod" = "yes"; then
735     if test -z $fmod_lib || test -z $fmod_inc; then
736         echo
737         echo "Error: You must specify path to FMOD library and headers"
738         echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
739         echo
740         exit 1
741     fi
742     fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
743 else
744     fmod_support=""
745 fi
746 echo "FMOD support      $fmod $fmod_support"
747 echo "OSS support       $oss"
748 echo "VNC TLS support   $vnc_tls"
749 if test "$vnc_tls" = "yes" ; then
750     echo "    TLS CFLAGS    $vnc_tls_cflags"
751     echo "    TLS LIBS      $vnc_tls_libs"
752 fi
753 if test -n "$sparc_cpu"; then
754     echo "Target Sparc Arch $sparc_cpu"
755 fi
756 echo "kqemu support     $kqemu"
757 echo "Documentation     $build_docs"
758 [ ! -z "$uname_release" ] && \
759 echo "uname -r          $uname_release"
760
761 if test $sdl_too_old = "yes"; then
762 echo "-> Your SDL version is too old - please upgrade to have SDL support"
763 fi
764 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
765   echo "The error log from compiling the libSDL test is: "
766   cat /tmp/qemu-$$-sdl-config.log
767 fi
768 rm -f /tmp/qemu-$$-sdl-config.log
769 #if test "$sdl_static" = "no"; then
770 #  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
771 #fi
772 config_mak="config-host.mak"
773 config_h="config-host.h"
774
775 #echo "Creating $config_mak and $config_h"
776
777 test -f $config_h && mv $config_h ${config_h}~
778
779 echo "# Automatically generated by configure - do not modify" > $config_mak
780 echo "# Configured with: $0 $@" >> $config_mak
781 echo "/* Automatically generated by configure - do not modify */" > $config_h
782
783 echo "prefix=$prefix" >> $config_mak
784 echo "bindir=\${prefix}$binsuffix" >> $config_mak
785 echo "mandir=\${prefix}$mansuffix" >> $config_mak
786 echo "datadir=\${prefix}$datasuffix" >> $config_mak
787 echo "docdir=\${prefix}$docsuffix" >> $config_mak
788 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
789 echo "MAKE=$make" >> $config_mak
790 echo "INSTALL=$install" >> $config_mak
791 echo "CC=$cc" >> $config_mak
792 echo "HOST_CC=$host_cc" >> $config_mak
793 echo "AR=$ar" >> $config_mak
794 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
795 # XXX: only use CFLAGS and LDFLAGS ?  
796 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
797 # compilation of dyngen tool (useful for win32 build on Linux host)
798 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
799 echo "OS_LDFLAGS=$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 mkdir -p $target_dir/tcg
1057 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1058   mkdir -p $target_dir/nwfpe
1059 fi
1060
1061 #
1062 # don't use ln -sf as not all "ln -sf" over write the file/link
1063 #
1064 rm -f $target_dir/Makefile
1065 ln -s $source_path/Makefile.target $target_dir/Makefile
1066
1067
1068 echo "# Automatically generated by configure - do not modify" > $config_mak
1069 echo "/* Automatically generated by configure - do not modify */" > $config_h
1070
1071
1072 echo "include ../config-host.mak" >> $config_mak
1073 echo "#include \"../config-host.h\"" >> $config_h
1074
1075 bflt="no"
1076 elfload32="no"
1077 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1078 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1079
1080 if test "$target_cpu" = "i386" ; then
1081   echo "TARGET_ARCH=i386" >> $config_mak
1082   echo "#define TARGET_ARCH \"i386\"" >> $config_h
1083   echo "#define TARGET_I386 1" >> $config_h
1084   if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1085     echo "#define USE_KQEMU 1" >> $config_h
1086   fi
1087 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1088   echo "TARGET_ARCH=arm" >> $config_mak
1089   echo "#define TARGET_ARCH \"arm\"" >> $config_h
1090   echo "#define TARGET_ARM 1" >> $config_h
1091   bflt="yes"
1092 elif test "$target_cpu" = "sparc" ; then
1093   echo "TARGET_ARCH=sparc" >> $config_mak
1094   echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1095   echo "#define TARGET_SPARC 1" >> $config_h
1096 elif test "$target_cpu" = "sparc64" ; then
1097   echo "TARGET_ARCH=sparc64" >> $config_mak
1098   echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1099   echo "#define TARGET_SPARC 1" >> $config_h
1100   echo "#define TARGET_SPARC64 1" >> $config_h
1101   elfload32="yes"
1102 elif test "$target_cpu" = "sparc32plus" ; then
1103   echo "TARGET_ARCH=sparc64" >> $config_mak
1104   echo "TARGET_ABI_DIR=sparc" >> $config_mak
1105   echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1106   echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1107   echo "#define TARGET_SPARC 1" >> $config_h
1108   echo "#define TARGET_SPARC64 1" >> $config_h
1109   echo "#define TARGET_ABI32 1" >> $config_h
1110 elif test "$target_cpu" = "ppc" ; then
1111   echo "TARGET_ARCH=ppc" >> $config_mak
1112   echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1113   echo "#define TARGET_PPC 1" >> $config_h
1114 elif test "$target_cpu" = "ppcemb" ; then
1115   echo "TARGET_ARCH=ppcemb" >> $config_mak
1116   echo "TARGET_ABI_DIR=ppc" >> $config_mak
1117   echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1118   echo "#define TARGET_PPC 1" >> $config_h
1119   echo "#define TARGET_PPCEMB 1" >> $config_h
1120 elif test "$target_cpu" = "ppc64" ; then
1121   echo "TARGET_ARCH=ppc64" >> $config_mak
1122   echo "TARGET_ABI_DIR=ppc" >> $config_mak
1123   echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1124   echo "#define TARGET_PPC 1" >> $config_h
1125   echo "#define TARGET_PPC64 1" >> $config_h
1126 elif test "$target_cpu" = "ppc64abi32" ; then
1127   echo "TARGET_ARCH=ppc64" >> $config_mak
1128   echo "TARGET_ABI_DIR=ppc" >> $config_mak
1129   echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1130   echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1131   echo "#define TARGET_PPC 1" >> $config_h
1132   echo "#define TARGET_PPC64 1" >> $config_h
1133   echo "#define TARGET_ABI32 1" >> $config_h
1134 elif test "$target_cpu" = "x86_64" ; then
1135   echo "TARGET_ARCH=x86_64" >> $config_mak
1136   echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1137   echo "#define TARGET_I386 1" >> $config_h
1138   echo "#define TARGET_X86_64 1" >> $config_h
1139   if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
1140     echo "#define USE_KQEMU 1" >> $config_h
1141   fi
1142 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1143   echo "TARGET_ARCH=mips" >> $config_mak
1144   echo "#define TARGET_ARCH \"mips\"" >> $config_h
1145   echo "#define TARGET_MIPS 1" >> $config_h
1146   echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1147 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1148   echo "TARGET_ARCH=mipsn32" >> $config_mak
1149   echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1150   echo "#define TARGET_MIPS 1" >> $config_h
1151   echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1152 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1153   echo "TARGET_ARCH=mips64" >> $config_mak
1154   echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1155   echo "#define TARGET_MIPS 1" >> $config_h
1156   echo "#define TARGET_MIPS64 1" >> $config_h
1157   echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1158 elif test "$target_cpu" = "cris" ; then
1159   echo "TARGET_ARCH=cris" >> $config_mak
1160   echo "#define TARGET_ARCH \"cris\"" >> $config_h
1161   echo "#define TARGET_CRIS 1" >> $config_h
1162   echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1163   echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1164 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1165   echo "TARGET_ARCH=sh4" >> $config_mak
1166   echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1167   echo "#define TARGET_SH4 1" >> $config_h
1168   bflt="yes"
1169 elif test "$target_cpu" = "m68k" ; then
1170   echo "TARGET_ARCH=m68k" >> $config_mak
1171   echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1172   echo "#define TARGET_M68K 1" >> $config_h
1173   bflt="yes"
1174 elif test "$target_cpu" = "alpha" ; then
1175   echo "TARGET_ARCH=alpha" >> $config_mak
1176   echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1177   echo "#define TARGET_ALPHA 1" >> $config_h
1178 else
1179   echo "Unsupported target CPU"
1180   exit 1
1181 fi
1182 if test "$target_bigendian" = "yes" ; then
1183   echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1184   echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1185 fi
1186 if test "$target_softmmu" = "yes" ; then
1187   echo "CONFIG_SOFTMMU=yes" >> $config_mak
1188   echo "#define CONFIG_SOFTMMU 1" >> $config_h
1189 fi
1190 if test "$target_user_only" = "yes" ; then
1191   echo "CONFIG_USER_ONLY=yes" >> $config_mak
1192   echo "#define CONFIG_USER_ONLY 1" >> $config_h
1193 fi
1194 if test "$target_linux_user" = "yes" ; then
1195   echo "CONFIG_LINUX_USER=yes" >> $config_mak
1196   echo "#define CONFIG_LINUX_USER 1" >> $config_h
1197 fi
1198 if test "$target_darwin_user" = "yes" ; then
1199   echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1200   echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1201 fi
1202
1203 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
1204   echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1205   echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1206 fi
1207 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1208   echo "TARGET_HAS_BFLT=yes" >> $config_mak
1209   echo "#define TARGET_HAS_BFLT 1" >> $config_h
1210 fi
1211 # 32 bit ELF loader in addition to native 64 bit loader?
1212 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1213   echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1214   echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1215 fi
1216
1217 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1218
1219 done # for target in $targets
1220
1221 # build tree in object directory if source path is different from current one
1222 if test "$source_path_used" = "yes" ; then
1223     DIRS="tests tests/cris slirp audio"
1224     FILES="Makefile tests/Makefile"
1225     FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1226     for dir in $DIRS ; do
1227             mkdir -p $dir
1228     done
1229     # remove the link and recreate it, as not all "ln -sf" overwrite the link
1230     for f in $FILES ; do
1231         rm -f $f
1232         ln -s $source_path/$f $f
1233     done
1234 fi
1235
1236 rm -f $TMPO $TMPC $TMPE $TMPS