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