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