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