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