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