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