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