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