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