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