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