]> git.proxmox.com Git - qemu.git/blame - configure
Make installing bios files optional.
[qemu.git] / configure
CommitLineData
7d13299d
FB
1#!/bin/sh
2#
3ef693a0 3# qemu configure script (c) 2003 Fabrice Bellard
7d13299d
FB
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
3ef693a0
FB
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"
9d56d2dc 18TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
7d13299d
FB
19
20# default parameters
11d9f695 21prefix=""
1e43adfc 22interp_prefix="/usr/gnemul/qemu-%M"
43ce4dfe 23static="no"
7d13299d
FB
24cross_prefix=""
25cc="gcc"
328a4240 26gcc3_search="yes"
fe8f78e4 27gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
0c58ac1c 28audio_drv_list=""
29audio_card_list=""
7d13299d
FB
30host_cc="gcc"
31ar="ar"
32make="make"
6a882643 33install="install"
7d13299d 34strip="strip"
b29fe3ed 35cpu=`test $(uname -s) = AIX && uname -p || uname -m`
5327cf48 36target_list=""
7d13299d
FB
37case "$cpu" in
38 i386|i486|i586|i686|i86pc|BePC)
97a847bc 39 cpu="i386"
7d13299d 40 ;;
aaa5fa14
AJ
41 x86_64|amd64)
42 cpu="x86_64"
43 ;;
44 alpha)
45 cpu="alpha"
46 ;;
ba68055e 47 armv*b)
808c4954
FB
48 cpu="armv4b"
49 ;;
ba68055e 50 armv*l)
7d13299d
FB
51 cpu="armv4l"
52 ;;
aaa5fa14
AJ
53 cris)
54 cpu="cris"
7d13299d 55 ;;
f54b3f92
AJ
56 parisc|parisc64)
57 cpu="hppa"
58 ;;
aaa5fa14
AJ
59 ia64)
60 cpu="ia64"
61 ;;
62 m68k)
63 cpu="m68k"
7d13299d
FB
64 ;;
65 mips)
66 cpu="mips"
67 ;;
fbe4f65b
TS
68 mips64)
69 cpu="mips64"
70 ;;
b29fe3ed 71 "Power Macintosh"|ppc|ppc64|powerpc)
aaa5fa14 72 cpu="powerpc"
e7daa605 73 ;;
0e7b8a9f 74 s390*)
fb3e5849
FB
75 cpu="s390"
76 ;;
3142255c 77 sparc|sun4[cdmuv])
ae228531
FB
78 cpu="sparc"
79 ;;
80 sparc64)
81 cpu="sparc64"
82 ;;
7d13299d
FB
83 *)
84 cpu="unknown"
85 ;;
86esac
87gprof="no"
03b4fe7d 88sparse="no"
7d13299d 89bigendian="no"
67b915a5
FB
90mingw32="no"
91EXESUF=""
92gdbstub="yes"
443f1376 93slirp="yes"
e0e6c8c0 94vde="yes"
102a52e4
FB
95fmod_lib=""
96fmod_inc=""
2f6a1ab0 97oss_lib=""
8d5d2d4c 98vnc_tls="yes"
b1a550a0 99bsd="no"
5327cf48 100linux="no"
d2c7c9b8 101solaris="no"
c9ec1fe4 102kqemu="no"
05c2a3e7 103profiler="no"
5b0753e0 104cocoa="no"
97ccc689 105check_gfx="yes"
1aff381f 106check_gcc="yes"
0a8e90f4 107softmmu="yes"
831b7825
TS
108linux_user="no"
109darwin_user="no"
84778508 110bsd_user="no"
cc8ae6de 111build_docs="no"
c5937220 112uname_release=""
4d3b6f6e 113curses="yes"
414f0dab 114aio="yes"
bd0c5661 115nptl="yes"
8ff9cbf7 116mixemu="no"
fb599c9a 117bluez="yes"
7ba1e619 118kvm="yes"
eac30262 119kerneldir=""
b29fe3ed 120aix="no"
77755340 121blobs="yes"
7d13299d
FB
122
123# OS specific
124targetos=`uname -s`
125case $targetos in
c326e0af
FB
126CYGWIN*)
127mingw32="yes"
6f30fa85 128OS_CFLAGS="-mno-cygwin"
db8d7dd1
TS
129if [ "$cpu" = "i386" ] ; then
130 kqemu="yes"
131fi
c2de5c91 132audio_possible_drivers="sdl"
c326e0af 133;;
67b915a5
FB
134MINGW32*)
135mingw32="yes"
db8d7dd1
TS
136if [ "$cpu" = "i386" ] ; then
137 kqemu="yes"
138fi
c2de5c91 139audio_possible_drivers="dsound sdl fmod"
67b915a5 140;;
5c40d2bd 141GNU/kFreeBSD)
0c58ac1c 142audio_drv_list="oss"
f34af52c 143audio_possible_drivers="oss sdl esd pa"
5c40d2bd
TS
144if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
145 kqemu="yes"
146fi
147;;
7d3505c5
FB
148FreeBSD)
149bsd="yes"
0c58ac1c 150audio_drv_list="oss"
f34af52c 151audio_possible_drivers="oss sdl esd pa"
f4887919 152aio_lib="-lpthread"
e99f9060 153if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
07f4ddbf
FB
154 kqemu="yes"
155fi
7d3505c5
FB
156;;
157NetBSD)
158bsd="yes"
0c58ac1c 159audio_drv_list="oss"
c2de5c91 160audio_possible_drivers="oss sdl esd"
8ef92a88
BS
161oss_lib="-lossaudio"
162aio_lib="-lrt -lpthread"
7d3505c5
FB
163;;
164OpenBSD)
165bsd="yes"
128ab2ff 166openbsd="yes"
0c58ac1c 167audio_drv_list="oss"
c2de5c91 168audio_possible_drivers="oss sdl esd"
2f6a1ab0 169oss_lib="-lossaudio"
8ef92a88 170aio_lib="-lpthread"
7d3505c5 171;;
83fb7adf
FB
172Darwin)
173bsd="yes"
174darwin="yes"
831b7825 175darwin_user="yes"
fd677642 176cocoa="yes"
0c58ac1c 177audio_drv_list="coreaudio"
c2de5c91 178audio_possible_drivers="coreaudio sdl fmod"
6f30fa85 179OS_CFLAGS="-mdynamic-no-pic"
c2c59c3e 180OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
8ef92a88 181aio_lib="-lpthread"
83fb7adf 182;;
ec530c81 183SunOS)
c2b84fab
TS
184 solaris="yes"
185 make="gmake"
186 install="ginstall"
0475a5ca 187 needs_libsunmath="no"
c2b84fab 188 solarisrev=`uname -r | cut -f2 -d.`
ef18c883
TS
189 # have to select again, because `uname -m` returns i86pc
190 # even on an x86_64 box.
191 solariscpu=`isainfo -k`
192 if test "${solariscpu}" = "amd64" ; then
193 cpu="x86_64"
194 fi
c2b84fab 195 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
0475a5ca
TS
196 if test "$solarisrev" -le 9 ; then
197 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
198 needs_libsunmath="yes"
199 else
200 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
201 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
202 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
203 echo "Studio 11 can be downloaded from www.sun.com."
204 exit 1
205 fi
206 fi
207 if test "$solarisrev" -ge 9 ; then
c2b84fab
TS
208 kqemu="yes"
209 fi
86b2bd93 210 fi
6b4d2ba1 211 if test -f /usr/include/sys/soundcard.h ; then
0c58ac1c 212 audio_drv_list="oss"
6b4d2ba1 213 fi
c2de5c91 214 audio_possible_drivers="oss sdl"
86b2bd93 215;;
b29fe3ed 216AIX)
217aix="yes"
218make="gmake"
219;;
1d14ffa9 220*)
0c58ac1c 221audio_drv_list="oss"
b8e59f18 222audio_possible_drivers="oss alsa sdl esd pa"
5327cf48 223linux="yes"
831b7825 224linux_user="yes"
68063649 225usb="linux"
07f4ddbf 226if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
c9ec1fe4 227 kqemu="yes"
c2de5c91 228 audio_possible_drivers="$audio_possible_drivers fmod"
c9ec1fe4 229fi
fb065187 230;;
7d13299d
FB
231esac
232
7d3505c5 233if [ "$bsd" = "yes" ] ; then
b1a550a0 234 if [ "$darwin" != "yes" ] ; then
83fb7adf 235 make="gmake"
68063649 236 usb="bsd"
83fb7adf 237 fi
84778508 238 bsd_user="yes"
7d3505c5
FB
239fi
240
7d13299d 241# find source path
ad064840 242source_path=`dirname "$0"`
59faef3a
AZ
243source_path_used="no"
244workdir=`pwd`
ad064840 245if [ -z "$source_path" ]; then
59faef3a 246 source_path=$workdir
ad064840
PB
247else
248 source_path=`cd "$source_path"; pwd`
7d13299d 249fi
724db118 250[ -f "$workdir/vl.c" ] || source_path_used="yes"
7d13299d 251
85aa5189 252werror="no"
0d1e2394
FB
253# generate compile errors on warnings for development builds
254#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
255#werror="yes";
256#fi
85aa5189 257
7d13299d 258for opt do
a46e4035 259 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
7d13299d 260 case "$opt" in
2efc3265
FB
261 --help|-h) show_help=yes
262 ;;
b1a550a0 263 --prefix=*) prefix="$optarg"
7d13299d 264 ;;
b1a550a0 265 --interp-prefix=*) interp_prefix="$optarg"
32ce6337 266 ;;
b1a550a0 267 --source-path=*) source_path="$optarg"
ad064840 268 source_path_used="yes"
7d13299d 269 ;;
b1a550a0 270 --cross-prefix=*) cross_prefix="$optarg"
7d13299d 271 ;;
b1a550a0 272 --cc=*) cc="$optarg"
328a4240 273 gcc3_search="no"
7d13299d 274 ;;
b1a550a0 275 --host-cc=*) host_cc="$optarg"
83469015 276 ;;
b1a550a0 277 --make=*) make="$optarg"
7d13299d 278 ;;
6a882643
PB
279 --install=*) install="$optarg"
280 ;;
b1a550a0 281 --extra-cflags=*) CFLAGS="$optarg"
7d13299d 282 ;;
b1a550a0 283 --extra-ldflags=*) LDFLAGS="$optarg"
7d13299d 284 ;;
b1a550a0 285 --cpu=*) cpu="$optarg"
7d13299d 286 ;;
b1a550a0 287 --target-list=*) target_list="$optarg"
de83cd02 288 ;;
7d13299d
FB
289 --enable-gprof) gprof="yes"
290 ;;
43ce4dfe
FB
291 --static) static="yes"
292 ;;
97a847bc
FB
293 --disable-sdl) sdl="no"
294 ;;
0c58ac1c 295 --fmod-lib=*) fmod_lib="$optarg"
1d14ffa9 296 ;;
c2de5c91 297 --fmod-inc=*) fmod_inc="$optarg"
298 ;;
2f6a1ab0
BS
299 --oss-lib=*) oss_lib="$optarg"
300 ;;
2fa7d3bf 301 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
102a52e4 302 ;;
0c58ac1c 303 --audio-drv-list=*) audio_drv_list="$optarg"
102a52e4 304 ;;
03b4fe7d
AL
305 --enable-sparse) sparse="yes"
306 ;;
307 --disable-sparse) sparse="no"
308 ;;
8d5d2d4c
TS
309 --disable-vnc-tls) vnc_tls="no"
310 ;;
443f1376 311 --disable-slirp) slirp="no"
1d14ffa9 312 ;;
e0e6c8c0 313 --disable-vde) vde="no"
8a16d273 314 ;;
c9ec1fe4 315 --disable-kqemu) kqemu="no"
1d14ffa9 316 ;;
2e4d9fb1
AJ
317 --disable-brlapi) brlapi="no"
318 ;;
fb599c9a
AZ
319 --disable-bluez) bluez="no"
320 ;;
7ba1e619
AL
321 --disable-kvm) kvm="no"
322 ;;
05c2a3e7
FB
323 --enable-profiler) profiler="yes"
324 ;;
c2de5c91 325 --enable-cocoa)
326 cocoa="yes" ;
327 sdl="no" ;
328 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
1d14ffa9 329 ;;
97ccc689
FB
330 --disable-gfx-check) check_gfx="no"
331 ;;
1aff381f
FB
332 --disable-gcc-check) check_gcc="no"
333 ;;
cad25d69 334 --disable-system) softmmu="no"
0a8e90f4 335 ;;
cad25d69 336 --enable-system) softmmu="yes"
0a8e90f4 337 ;;
831b7825 338 --disable-linux-user) linux_user="no"
0a8e90f4 339 ;;
831b7825
TS
340 --enable-linux-user) linux_user="yes"
341 ;;
342 --disable-darwin-user) darwin_user="no"
343 ;;
344 --enable-darwin-user) darwin_user="yes"
0a8e90f4 345 ;;
84778508
BS
346 --disable-bsd-user) bsd_user="no"
347 ;;
348 --enable-bsd-user) bsd_user="yes"
349 ;;
c5937220
PB
350 --enable-uname-release=*) uname_release="$optarg"
351 ;;
3142255c
BS
352 --sparc_cpu=*)
353 sparc_cpu="$optarg"
354 case $sparc_cpu in
355 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
356 target_cpu="sparc"; cpu="sparc" ;;
357 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
358 target_cpu="sparc"; cpu="sparc" ;;
359 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
360 target_cpu="sparc64"; cpu="sparc64" ;;
361 *) echo "undefined SPARC architecture. Exiting";exit 1;;
362 esac
363 ;;
85aa5189
FB
364 --enable-werror) werror="yes"
365 ;;
366 --disable-werror) werror="no"
367 ;;
4d3b6f6e
AZ
368 --disable-curses) curses="no"
369 ;;
bd0c5661
PB
370 --disable-nptl) nptl="no"
371 ;;
8ff9cbf7 372 --enable-mixemu) mixemu="yes"
373 ;;
414f0dab
BS
374 --disable-aio) aio="no"
375 ;;
77755340
TS
376 --disable-blobs) blobs="no"
377 ;;
eac30262
AL
378 --kerneldir=*) kerneldir="$optarg"
379 ;;
7f1559c6
AZ
380 *) echo "ERROR: unknown option $opt"; show_help="yes"
381 ;;
7d13299d
FB
382 esac
383done
384
6f30fa85 385# default flags for all hosts
ac41a620
BS
386CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
387CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
6f30fa85 388LDFLAGS="$LDFLAGS -g"
85aa5189
FB
389if test "$werror" = "yes" ; then
390CFLAGS="$CFLAGS -Werror"
391fi
6f30fa85 392
d2c7c9b8
BS
393if test "$solaris" = "no" ; then
394 if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
395 LDFLAGS="$LDFLAGS -Wl,--warn-common"
396 fi
49237acd
BS
397fi
398
3142255c
BS
399#
400# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
401# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
402#
40293e58 403case "$cpu" in
3142255c
BS
404 sparc) if test -z "$sparc_cpu" ; then
405 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
406 ARCH_LDFLAGS="-m32"
407 else
408 ARCH_CFLAGS="${SP_CFLAGS}"
409 ARCH_LDFLAGS="${SP_LDFLAGS}"
410 fi
411 ;;
412 sparc64) if test -z "$sparc_cpu" ; then
413 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
414 ARCH_LDFLAGS="-m64"
415 else
416 ARCH_CFLAGS="${SP_CFLAGS}"
417 ARCH_LDFLAGS="${SP_LDFLAGS}"
418 fi
419 ;;
76d83bde
TS
420 s390)
421 ARCH_CFLAGS="-march=z900"
422 ;;
40293e58
FB
423 i386)
424 ARCH_CFLAGS="-m32"
425 ARCH_LDFLAGS="-m32"
426 ;;
427 x86_64)
428 ARCH_CFLAGS="-m64"
429 ARCH_LDFLAGS="-m64"
430 ;;
3142255c
BS
431esac
432
af5db58e
PB
433if test x"$show_help" = x"yes" ; then
434cat << EOF
435
436Usage: configure [options]
437Options: [defaults in brackets after descriptions]
438
439EOF
440echo "Standard options:"
441echo " --help print this message"
442echo " --prefix=PREFIX install in PREFIX [$prefix]"
443echo " --interp-prefix=PREFIX where to find shared libraries, etc."
444echo " use %M for cpu name [$interp_prefix]"
445echo " --target-list=LIST set target list [$target_list]"
446echo ""
447echo "kqemu kernel acceleration support:"
448echo " --disable-kqemu disable kqemu support"
af5db58e
PB
449echo ""
450echo "Advanced options (experts only):"
451echo " --source-path=PATH path of source code [$source_path]"
452echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
453echo " --cc=CC use C compiler CC [$cc]"
454echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
455echo " --make=MAKE use specified make [$make]"
6a882643 456echo " --install=INSTALL use specified install [$install]"
af5db58e 457echo " --static enable static build [$static]"
890b1658
AL
458echo " --enable-sparse enable sparse checker"
459echo " --disable-sparse disable sparse checker (default)"
85aa5189 460echo " --disable-werror disable compilation abort on warning"
fe8f78e4 461echo " --disable-sdl disable SDL"
af5db58e 462echo " --enable-cocoa enable COCOA (Mac OS X only)"
c2de5c91 463echo " --audio-drv-list=LIST set audio drivers list:"
464echo " Available drivers: $audio_possible_drivers"
465echo " --audio-card-list=LIST set list of additional emulated audio cards"
466echo " Available cards: ac97 adlib cs4231a gus"
8ff9cbf7 467echo " --enable-mixemu enable mixer emulation"
2e4d9fb1 468echo " --disable-brlapi disable BrlAPI"
8d5d2d4c 469echo " --disable-vnc-tls disable TLS encryption for VNC server"
af896aaa 470echo " --disable-curses disable curses output"
fb599c9a 471echo " --disable-bluez disable bluez stack connectivity"
7ba1e619 472echo " --disable-kvm disable KVM acceleration support"
bd0c5661 473echo " --disable-nptl disable usermode NPTL support"
af5db58e
PB
474echo " --enable-system enable all system emulation targets"
475echo " --disable-system disable all system emulation targets"
831b7825
TS
476echo " --enable-linux-user enable all linux usermode emulation targets"
477echo " --disable-linux-user disable all linux usermode emulation targets"
478echo " --enable-darwin-user enable all darwin usermode emulation targets"
479echo " --disable-darwin-user disable all darwin usermode emulation targets"
84778508
BS
480echo " --enable-bsd-user enable all BSD usermode emulation targets"
481echo " --disable-bsd-user disable all BSD usermode emulation targets"
af5db58e
PB
482echo " --fmod-lib path to FMOD library"
483echo " --fmod-inc path to FMOD includes"
2f6a1ab0 484echo " --oss-lib path to OSS library"
c5937220 485echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
3142255c 486echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
e0e6c8c0 487echo " --disable-vde disable support for vde network"
414f0dab 488echo " --disable-aio disable AIO support"
77755340 489echo " --disable-blobs disable installing provided firmware blobs"
eac30262 490echo " --kerneldir=PATH look for kernel includes in PATH"
af5db58e 491echo ""
5bf08934 492echo "NOTE: The object files are built at the place where configure is launched"
af5db58e
PB
493exit 1
494fi
495
7d13299d
FB
496cc="${cross_prefix}${cc}"
497ar="${cross_prefix}${ar}"
498strip="${cross_prefix}${strip}"
499
064aae13
PB
500# check that the C compiler works.
501cat > $TMPC <<EOF
502int main(void) {}
503EOF
504
db7287ed 505if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
064aae13
PB
506 : C compiler works ok
507else
508 echo "ERROR: \"$cc\" either does not exist or does not work"
509 exit 1
a7350fa1
FB
510fi
511
cd01b4a3
AL
512# check compiler to see if we're on mingw32
513cat > $TMPC <<EOF
514#include <windows.h>
515#ifndef _WIN32
516#error not windows
517#endif
518int main(void) {}
519EOF
520
521if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
522 mingw32="yes"
523fi
524
67b915a5 525if test "$mingw32" = "yes" ; then
5327cf48 526 linux="no"
67b915a5 527 EXESUF=".exe"
9f059eca 528 oss="no"
cd01b4a3 529 linux_user="no"
84778508 530 bsd_user="no"
cd01b4a3
AL
531fi
532
997306fc 533if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
cd01b4a3 534 AIOLIBS=
997306fc 535elif [ "$bsd" = "yes" ]; then
8ef92a88 536 AIOLIBS="$aio_lib"
cd01b4a3
AL
537else
538 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
539 AIOLIBS="-lrt -lpthread"
67b915a5
FB
540fi
541
5fafdf24 542# Check for gcc4, error if pre-gcc4
328a4240
PB
543if test "$check_gcc" = "yes" ; then
544 cat > $TMPC <<EOF
545#if __GNUC__ < 4
546#error gcc3
547#endif
548int main(){return 0;}
549EOF
db7287ed 550 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
328a4240
PB
551 echo "WARNING: \"$cc\" looks like gcc 4.x"
552 found_compat_cc="no"
553 if test "$gcc3_search" = "yes" ; then
554 echo "Looking for gcc 3.x"
555 for compat_cc in $gcc3_list ; do
d4af3de2 556 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
328a4240 557 echo "Found \"$compat_cc\""
1124426a 558 cc="$cross_prefix$compat_cc"
328a4240
PB
559 found_compat_cc="yes"
560 break
561 fi
562 done
563 if test "$found_compat_cc" = "no" ; then
564 echo "gcc 3.x not found!"
565 fi
566 fi
567 if test "$found_compat_cc" = "no" ; then
568 echo "QEMU is known to have problems when compiled with gcc 4.x"
569 echo "It is recommended that you use gcc 3.x to build QEMU"
570 echo "To use this compiler anyway, configure with --disable-gcc-check"
571 exit 1;
572 fi
573 fi
574fi
575
03b4fe7d
AL
576if test ! -x "$(which cgcc 2>/dev/null)"; then
577 sparse="no"
578fi
579
ec530c81
FB
580#
581# Solaris specific configure tool chain decisions
582#
583if test "$solaris" = "yes" ; then
584 #
585 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
586 # override the check with --disable-gcc-check
5fafdf24 587 #
ec530c81
FB
588 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
589 solgcc=`which $cc`
590 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
591 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
592 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
593 echo "or get the latest patch from SunSolve for gcc"
594 exit 1
595 fi
596 fi
597 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
598 if test -z "$solinst" ; then
599 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
600 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
601 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
602 exit 1
603 fi
604 if test "$solinst" = "/usr/sbin/install" ; then
605 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
606 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
607 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
608 exit 1
609 fi
ec530c81
FB
610 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
611 if test -z "$sol_ar" ; then
612 echo "Error: No path includes ar"
613 if test -f /usr/ccs/bin/ar ; then
614 echo "Add /usr/ccs/bin to your path and rerun configure"
615 fi
616 exit 1
617 fi
5fafdf24 618fi
ec530c81
FB
619
620
5327cf48
FB
621if test -z "$target_list" ; then
622# these targets are portable
0a8e90f4 623 if [ "$softmmu" = "yes" ] ; then
2408a527
AJ
624 target_list="\
625i386-softmmu \
626x86_64-softmmu \
627arm-softmmu \
628cris-softmmu \
629m68k-softmmu \
630mips-softmmu \
631mipsel-softmmu \
632mips64-softmmu \
633mips64el-softmmu \
634ppc-softmmu \
635ppcemb-softmmu \
636ppc64-softmmu \
637sh4-softmmu \
638sh4eb-softmmu \
639sparc-softmmu \
640"
0a8e90f4 641 fi
5327cf48 642# the following are Linux specific
831b7825 643 if [ "$linux_user" = "yes" ] ; then
2408a527
AJ
644 target_list="${target_list}\
645i386-linux-user \
646x86_64-linux-user \
647alpha-linux-user \
648arm-linux-user \
649armeb-linux-user \
650cris-linux-user \
651m68k-linux-user \
652mips-linux-user \
653mipsel-linux-user \
654ppc-linux-user \
655ppc64-linux-user \
656ppc64abi32-linux-user \
657sh4-linux-user \
658sh4eb-linux-user \
659sparc-linux-user \
660sparc64-linux-user \
661sparc32plus-linux-user \
662"
831b7825
TS
663 fi
664# the following are Darwin specific
665 if [ "$darwin_user" = "yes" ] ; then
2408a527 666 target_list="$target_list i386-darwin-user ppc-darwin-user"
5327cf48 667 fi
84778508
BS
668# the following are BSD specific
669 if [ "$bsd_user" = "yes" ] ; then
670 target_list="${target_list}\
671sparc64-bsd-user \
672"
673 fi
6e20a45f 674else
b1a550a0 675 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
5327cf48 676fi
0a8e90f4
PB
677if test -z "$target_list" ; then
678 echo "No targets enabled"
679 exit 1
680fi
5327cf48 681
7d13299d
FB
682if test -z "$cross_prefix" ; then
683
684# ---
685# big/little endian test
686cat > $TMPC << EOF
687#include <inttypes.h>
688int main(int argc, char ** argv){
1d14ffa9
FB
689 volatile uint32_t i=0x01234567;
690 return (*((uint8_t*)(&i))) == 0x67;
7d13299d
FB
691}
692EOF
693
db7287ed 694if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
7d13299d
FB
695$TMPE && bigendian="yes"
696else
697echo big/little test failed
698fi
699
700else
701
702# if cross compiling, cannot launch a program, so make a static guess
0938cda5 703if test "$cpu" = "armv4b" \
f54b3f92 704 -o "$cpu" = "hppa" \
0938cda5
AJ
705 -o "$cpu" = "m68k" \
706 -o "$cpu" = "mips" \
707 -o "$cpu" = "mips64" \
708 -o "$cpu" = "powerpc" \
709 -o "$cpu" = "s390" \
710 -o "$cpu" = "sparc" \
711 -o "$cpu" = "sparc64"; then
7d13299d
FB
712 bigendian="yes"
713fi
714
715fi
716
b6853697
FB
717# host long bits test
718hostlongbits="32"
0938cda5
AJ
719if test "$cpu" = "x86_64" \
720 -o "$cpu" = "alpha" \
721 -o "$cpu" = "ia64" \
722 -o "$cpu" = "sparc64"; then
b6853697
FB
723 hostlongbits="64"
724fi
725
810260a8 726# ppc specific hostlongbits selection
727if test "$cpu" = "powerpc" ; then
9d56d2dc 728 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
729 grep -q __powerpc64__ $TMPI && hostlongbits=64
810260a8 730 else
731 echo hostlongbits test failed
ba69a08a 732 exit 1
810260a8 733 fi
734fi
735
e8cd23de 736# check gcc options support
04369ff2
FB
737cat > $TMPC <<EOF
738int main(void) {
04369ff2
FB
739}
740EOF
741
bd0c5661
PB
742# Check host NPTL support
743cat > $TMPC <<EOF
744#include <sched.h>
30813cea 745#include <linux/futex.h>
bd0c5661
PB
746void foo()
747{
748#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
749#error bork
750#endif
751}
752EOF
753
754if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
755 :
756else
757 nptl="no"
758fi
759
ac62922e
AZ
760##########################################
761# zlib check
762
763cat > $TMPC << EOF
764#include <zlib.h>
765int main(void) { zlibVersion(); return 0; }
766EOF
17e1592d 767if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
ac62922e
AZ
768 :
769else
770 echo
771 echo "Error: zlib check failed"
772 echo "Make sure to have the zlib libs and headers installed."
773 echo
774 exit 1
775fi
776
11d9f695
FB
777##########################################
778# SDL probe
779
780sdl_too_old=no
781
782if test -z "$sdl" ; then
069b0bda
TS
783 sdl_config="sdl-config"
784 sdl=no
785 sdl_static=no
786
11d9f695
FB
787cat > $TMPC << EOF
788#include <SDL.h>
789#undef main /* We don't want SDL to override our main() */
790int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
791EOF
cd01b4a3
AL
792 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
793 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
794 if test "$_sdlversion" -lt 121 ; then
795 sdl_too_old=yes
796 else
797 if test "$cocoa" = "no" ; then
798 sdl=yes
069b0bda 799 fi
cd01b4a3 800 fi
11d9f695 801
cd01b4a3
AL
802 # static link with sdl ?
803 if test "$sdl" = "yes" ; then
804 aa="no"
805 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
806 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
807 if [ "$aa" = "yes" ] ; then
808 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
809 fi
810
811 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
812 sdl_static=yes
813 fi
814 fi # static link
815 fi # sdl compile test
fd677642 816else
069b0bda
TS
817 # Make sure to disable cocoa if sdl was set
818 if test "$sdl" = "yes" ; then
819 cocoa="no"
c2de5c91 820 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
069b0bda 821 fi
a6e022ad 822fi # -z $sdl
11d9f695 823
8d5d2d4c
TS
824##########################################
825# VNC TLS detection
826if test "$vnc_tls" = "yes" ; then
ae6b5e5a
AL
827cat > $TMPC <<EOF
828#include <gnutls/gnutls.h>
829int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
830EOF
831 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
832 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
833 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
834 $vnc_tls_libs 2> /dev/null ; then
835 :
836 else
837 vnc_tls="no"
838 fi
8d5d2d4c
TS
839fi
840
8a16d273
TS
841##########################################
842# vde libraries probe
843if test "$vde" = "yes" ; then
844 cat > $TMPC << EOF
845#include <libvdeplug.h>
4a7f0e06
PB
846int main(void)
847{
848 struct vde_open_args a = {0, 0, 0};
849 vde_open("", "", &a);
850 return 0;
851}
8a16d273 852EOF
4a7f0e06 853 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
8a16d273
TS
854 :
855 else
e0e6c8c0 856 vde="no"
8a16d273
TS
857 fi
858fi
859
8f28f3fb 860##########################################
c2de5c91 861# Sound support libraries probe
8f28f3fb 862
c2de5c91 863audio_drv_probe()
864{
865 drv=$1
866 hdr=$2
867 lib=$3
868 exp=$4
869 cfl=$5
870 cat > $TMPC << EOF
871#include <$hdr>
872int main(void) { $exp }
8f28f3fb 873EOF
c2de5c91 874 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
875 :
876 else
877 echo
878 echo "Error: $drv check failed"
879 echo "Make sure to have the $drv libs and headers installed."
880 echo
881 exit 1
882 fi
883}
884
2fa7d3bf 885audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
c2de5c91 886for drv in $audio_drv_list; do
887 case $drv in
888 alsa)
889 audio_drv_probe $drv alsa/asoundlib.h -lasound \
890 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
891 ;;
892
893 fmod)
894 if test -z $fmod_lib || test -z $fmod_inc; then
895 echo
896 echo "Error: You must specify path to FMOD library and headers"
897 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
898 echo
899 exit 1
900 fi
901 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
902 ;;
903
904 esd)
905 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
906 ;;
b8e59f18 907
908 pa)
909 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
910 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
911 ;;
912
2f6a1ab0
BS
913 oss|sdl|core|wav|dsound)
914 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
915 ;;
916
e4c63a6a 917 *)
1c9b2a52 918 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
e4c63a6a 919 echo
920 echo "Error: Unknown driver '$drv' selected"
921 echo "Possible drivers are: $audio_possible_drivers"
922 echo
923 exit 1
924 }
925 ;;
c2de5c91 926 esac
927done
8f28f3fb 928
2e4d9fb1
AJ
929##########################################
930# BrlAPI probe
931
932if test -z "$brlapi" ; then
933 brlapi=no
934cat > $TMPC << EOF
935#include <brlapi.h>
936int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
937EOF
a40e56d5 938 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
2e4d9fb1
AJ
939 brlapi=yes
940 fi # brlapi compile test
941fi # -z $brlapi
942
4d3b6f6e
AZ
943##########################################
944# curses probe
945
946if test "$curses" = "yes" ; then
947 curses=no
948 cat > $TMPC << EOF
949#include <curses.h>
950int main(void) { return curses_version(); }
951EOF
af896aaa 952 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
4d3b6f6e
AZ
953 curses=yes
954 fi
955fi # test "$curses"
956
fb599c9a
AZ
957##########################################
958# bluez support probe
959if test "$bluez" = "yes" ; then
960 `pkg-config bluez` || bluez="no"
961fi
962if test "$bluez" = "yes" ; then
e820e3f4
AZ
963 cat > $TMPC << EOF
964#include <bluetooth/bluetooth.h>
965int main(void) { return bt_error(0); }
966EOF
fb599c9a
AZ
967 bluez_cflags=`pkg-config --cflags bluez`
968 bluez_libs=`pkg-config --libs bluez`
17e1592d 969 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
e820e3f4
AZ
970 $bluez_libs 2> /dev/null ; then
971 :
972 else
973 bluez="no"
974 fi
fb599c9a
AZ
975fi
976
7ba1e619
AL
977##########################################
978# kvm probe
979if test "$kvm" = "yes" ; then
980 cat > $TMPC <<EOF
981#include <linux/kvm.h>
982#if !defined(KVM_API_VERSION) || \
983 KVM_API_VERSION < 12 || \
984 KVM_API_VERSION > 12 || \
985 !defined(KVM_CAP_USER_MEMORY) || \
986 !defined(KVM_CAP_SET_TSS_ADDR)
987#error Invalid KVM version
988#endif
989int main(void) { return 0; }
990EOF
eac30262
AL
991 if test "$kerneldir" != "" ; then
992 kvm_cflags=-I"$kerneldir"/include
993 else
994 kvm_cflags=""
995 fi
7ba1e619
AL
996 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
997 2>/dev/null ; then
998 :
999 else
1000 kvm="no"
1001 fi
1002fi
1003
414f0dab
BS
1004##########################################
1005# AIO probe
1006if test "$aio" = "yes" ; then
1007 aio=no
1008 cat > $TMPC << EOF
1009#include <aio.h>
1010int main(void) { return aio_write(NULL); }
1011EOF
1012 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
1013 aio=yes
1014 fi
1015fi
1016
cc8ae6de 1017# Check if tools are available to build documentation.
6c591867
TS
1018if [ -x "`which texi2html 2>/dev/null`" ] && \
1019 [ -x "`which pod2man 2>/dev/null`" ]; then
cc8ae6de
PB
1020 build_docs="yes"
1021fi
1022
11d9f695 1023if test "$mingw32" = "yes" ; then
308c3593 1024 if test -z "$prefix" ; then
17e90973 1025 prefix="c:\\\\Program Files\\\\Qemu"
308c3593
PB
1026 fi
1027 mansuffix=""
1028 datasuffix=""
1029 docsuffix=""
1030 binsuffix=""
11d9f695 1031else
308c3593
PB
1032 if test -z "$prefix" ; then
1033 prefix="/usr/local"
1034 fi
1035 mansuffix="/share/man"
1036 datasuffix="/share/qemu"
1037 docsuffix="/share/doc/qemu"
1038 binsuffix="/bin"
11d9f695 1039fi
5a67135a 1040
43ce4dfe 1041echo "Install prefix $prefix"
308c3593
PB
1042echo "BIOS directory $prefix$datasuffix"
1043echo "binary directory $prefix$binsuffix"
11d9f695 1044if test "$mingw32" = "no" ; then
308c3593 1045echo "Manual directory $prefix$mansuffix"
43ce4dfe 1046echo "ELF interp prefix $interp_prefix"
11d9f695 1047fi
5a67135a 1048echo "Source path $source_path"
43ce4dfe 1049echo "C compiler $cc"
83469015 1050echo "Host C compiler $host_cc"
db7287ed 1051echo "ARCH_CFLAGS $ARCH_CFLAGS"
43ce4dfe 1052echo "make $make"
6a882643 1053echo "install $install"
43ce4dfe 1054echo "host CPU $cpu"
de83cd02 1055echo "host big endian $bigendian"
97a847bc 1056echo "target list $target_list"
43ce4dfe 1057echo "gprof enabled $gprof"
03b4fe7d 1058echo "sparse enabled $sparse"
05c2a3e7 1059echo "profiler $profiler"
43ce4dfe 1060echo "static build $static"
85aa5189 1061echo "-Werror enabled $werror"
5b0753e0
FB
1062if test "$darwin" = "yes" ; then
1063 echo "Cocoa support $cocoa"
1064fi
97a847bc 1065echo "SDL support $sdl"
e4afee97
FB
1066if test "$sdl" != "no" ; then
1067 echo "SDL static link $sdl_static"
1068fi
4d3b6f6e 1069echo "curses support $curses"
67b915a5 1070echo "mingw32 support $mingw32"
0c58ac1c 1071echo "Audio drivers $audio_drv_list"
1072echo "Extra audio cards $audio_card_list"
8ff9cbf7 1073echo "Mixer emulation $mixemu"
8d5d2d4c
TS
1074echo "VNC TLS support $vnc_tls"
1075if test "$vnc_tls" = "yes" ; then
1076 echo " TLS CFLAGS $vnc_tls_cflags"
1077 echo " TLS LIBS $vnc_tls_libs"
1078fi
3142255c
BS
1079if test -n "$sparc_cpu"; then
1080 echo "Target Sparc Arch $sparc_cpu"
1081fi
07f4ddbf 1082echo "kqemu support $kqemu"
2e4d9fb1 1083echo "brlapi support $brlapi"
cc8ae6de 1084echo "Documentation $build_docs"
c5937220
PB
1085[ ! -z "$uname_release" ] && \
1086echo "uname -r $uname_release"
bd0c5661 1087echo "NPTL support $nptl"
8a16d273 1088echo "vde support $vde"
414f0dab 1089echo "AIO support $aio"
77755340 1090echo "Install blobs $blobs"
7ba1e619 1091echo "KVM support $kvm"
67b915a5 1092
97a847bc 1093if test $sdl_too_old = "yes"; then
24b55b96 1094echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 1095fi
20b40c6a
TS
1096if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1097 echo "The error log from compiling the libSDL test is: "
1098 cat /tmp/qemu-$$-sdl-config.log
1099fi
1100rm -f /tmp/qemu-$$-sdl-config.log
24b55b96
FB
1101#if test "$sdl_static" = "no"; then
1102# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1103#fi
97a847bc
FB
1104config_mak="config-host.mak"
1105config_h="config-host.h"
7d13299d 1106
7c1f25b4 1107#echo "Creating $config_mak and $config_h"
7d13299d 1108
15d9ca0f
TS
1109test -f $config_h && mv $config_h ${config_h}~
1110
97a847bc 1111echo "# Automatically generated by configure - do not modify" > $config_mak
29517134 1112echo "# Configured with: $0 $@" >> $config_mak
97a847bc 1113echo "/* Automatically generated by configure - do not modify */" > $config_h
7d13299d 1114
97a847bc 1115echo "prefix=$prefix" >> $config_mak
308c3593
PB
1116echo "bindir=\${prefix}$binsuffix" >> $config_mak
1117echo "mandir=\${prefix}$mansuffix" >> $config_mak
1118echo "datadir=\${prefix}$datasuffix" >> $config_mak
4ad5b06d 1119echo "docdir=\${prefix}$docsuffix" >> $config_mak
308c3593 1120echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
97a847bc 1121echo "MAKE=$make" >> $config_mak
6a882643 1122echo "INSTALL=$install" >> $config_mak
97a847bc 1123echo "CC=$cc" >> $config_mak
97a847bc
FB
1124echo "HOST_CC=$host_cc" >> $config_mak
1125echo "AR=$ar" >> $config_mak
1126echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
40293e58
FB
1127# XXX: only use CFLAGS and LDFLAGS ?
1128# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1129# compilation of dyngen tool (useful for win32 build on Linux host)
6f30fa85 1130echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
3142255c
BS
1131echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1132echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1133echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
97a847bc
FB
1134echo "CFLAGS=$CFLAGS" >> $config_mak
1135echo "LDFLAGS=$LDFLAGS" >> $config_mak
67b915a5 1136echo "EXESUF=$EXESUF" >> $config_mak
70956b77 1137echo "AIOLIBS=$AIOLIBS" >> $config_mak
2408a527
AJ
1138case "$cpu" in
1139 i386)
1140 echo "ARCH=i386" >> $config_mak
1141 echo "#define HOST_I386 1" >> $config_h
1142 ;;
1143 x86_64)
1144 echo "ARCH=x86_64" >> $config_mak
1145 echo "#define HOST_X86_64 1" >> $config_h
1146 ;;
1147 alpha)
1148 echo "ARCH=alpha" >> $config_mak
1149 echo "#define HOST_ALPHA 1" >> $config_h
1150 ;;
1151 armv4b)
1152 echo "ARCH=arm" >> $config_mak
1153 echo "#define HOST_ARM 1" >> $config_h
1154 ;;
1155 armv4l)
1156 echo "ARCH=arm" >> $config_mak
1157 echo "#define HOST_ARM 1" >> $config_h
1158 ;;
1159 cris)
1160 echo "ARCH=cris" >> $config_mak
1161 echo "#define HOST_CRIS 1" >> $config_h
1162 ;;
1163 hppa)
1164 echo "ARCH=hppa" >> $config_mak
1165 echo "#define HOST_HPPA 1" >> $config_h
1166 ;;
1167 ia64)
1168 echo "ARCH=ia64" >> $config_mak
1169 echo "#define HOST_IA64 1" >> $config_h
1170 ;;
1171 m68k)
1172 echo "ARCH=m68k" >> $config_mak
1173 echo "#define HOST_M68K 1" >> $config_h
1174 ;;
1175 mips)
1176 echo "ARCH=mips" >> $config_mak
1177 echo "#define HOST_MIPS 1" >> $config_h
1178 ;;
1179 mips64)
1180 echo "ARCH=mips64" >> $config_mak
1181 echo "#define HOST_MIPS64 1" >> $config_h
1182 ;;
1183 powerpc)
810260a8 1184 if test "$hostlongbits" = "32"; then
1185 echo "ARCH=ppc" >> $config_mak
1186 echo "#define HOST_PPC 1" >> $config_h
1187 else
1188 echo "ARCH=ppc64" >> $config_mak
1189 echo "#define HOST_PPC64 1" >> $config_h
1190 fi
2408a527
AJ
1191 ;;
1192 s390)
1193 echo "ARCH=s390" >> $config_mak
1194 echo "#define HOST_S390 1" >> $config_h
1195 ;;
1196 sparc)
1197 echo "ARCH=sparc" >> $config_mak
1198 echo "#define HOST_SPARC 1" >> $config_h
1199 ;;
1200 sparc64)
1201 echo "ARCH=sparc64" >> $config_mak
1202 echo "#define HOST_SPARC64 1" >> $config_h
1203 ;;
1204 *)
1205 echo "Unsupported CPU = $cpu"
1206 exit 1
1207 ;;
1208esac
03b4fe7d
AL
1209if test "$sparse" = "yes" ; then
1210 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
1211 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
1212 echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
1213fi
7d13299d 1214if test "$bigendian" = "yes" ; then
97a847bc
FB
1215 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1216 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1217fi
b6853697 1218echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
67b915a5
FB
1219if test "$mingw32" = "yes" ; then
1220 echo "CONFIG_WIN32=yes" >> $config_mak
11d9f695 1221 echo "#define CONFIG_WIN32 1" >> $config_h
210fa556
PB
1222else
1223 cat > $TMPC << EOF
1224#include <byteswap.h>
1225int main(void) { return bswap_32(0); }
1226EOF
db7287ed 1227 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
210fa556
PB
1228 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1229 fi
67b915a5 1230fi
128ab2ff
BS
1231
1232if [ "$openbsd" = "yes" ] ; then
1233 echo "#define ENOTSUP 4096" >> $config_h
1234fi
1235
83fb7adf
FB
1236if test "$darwin" = "yes" ; then
1237 echo "CONFIG_DARWIN=yes" >> $config_mak
1238 echo "#define CONFIG_DARWIN 1" >> $config_h
1239fi
b29fe3ed 1240
1241if test "$aix" = "yes" ; then
1242 echo "CONFIG_AIX=yes" >> $config_mak
1243 echo "#define CONFIG_AIX 1" >> $config_h
1244fi
1245
ec530c81
FB
1246if test "$solaris" = "yes" ; then
1247 echo "CONFIG_SOLARIS=yes" >> $config_mak
38cfa06c 1248 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
0475a5ca
TS
1249 if test "$needs_libsunmath" = "yes" ; then
1250 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1251 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1252 fi
ec530c81 1253fi
3142255c
BS
1254if test -n "$sparc_cpu"; then
1255 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1256 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1257fi
67b915a5
FB
1258if test "$gdbstub" = "yes" ; then
1259 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1260 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1261fi
97a847bc
FB
1262if test "$gprof" = "yes" ; then
1263 echo "TARGET_GPROF=yes" >> $config_mak
1264 echo "#define HAVE_GPROF 1" >> $config_h
1265fi
1266if test "$static" = "yes" ; then
1267 echo "CONFIG_STATIC=yes" >> $config_mak
50863472 1268 echo "#define CONFIG_STATIC 1" >> $config_h
7d13299d 1269fi
05c2a3e7
FB
1270if test $profiler = "yes" ; then
1271 echo "#define CONFIG_PROFILER 1" >> $config_h
1272fi
c20709aa
FB
1273if test "$slirp" = "yes" ; then
1274 echo "CONFIG_SLIRP=yes" >> $config_mak
1275 echo "#define CONFIG_SLIRP 1" >> $config_h
1276fi
8a16d273
TS
1277if test "$vde" = "yes" ; then
1278 echo "CONFIG_VDE=yes" >> $config_mak
1279 echo "#define CONFIG_VDE 1" >> $config_h
1280 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1281fi
0c58ac1c 1282for card in $audio_card_list; do
f6e5889e 1283 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
0c58ac1c 1284 echo "$def=yes" >> $config_mak
1285 echo "#define $def 1" >> $config_h
1286done
1287echo "#define AUDIO_DRIVERS \\" >> $config_h
1288for drv in $audio_drv_list; do
1289 echo " &${drv}_audio_driver, \\" >>$config_h
f6e5889e 1290 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
0c58ac1c 1291 echo "$def=yes" >> $config_mak
923e4521 1292 if test "$drv" = "fmod"; then
0c58ac1c 1293 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1294 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
2f6a1ab0
BS
1295 elif test "$drv" = "oss"; then
1296 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
0c58ac1c 1297 fi
1298done
1299echo "" >>$config_h
8ff9cbf7 1300if test "$mixemu" = "yes" ; then
1301 echo "CONFIG_MIXEMU=yes" >> $config_mak
1302 echo "#define CONFIG_MIXEMU 1" >> $config_h
1303fi
8d5d2d4c
TS
1304if test "$vnc_tls" = "yes" ; then
1305 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1306 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1307 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1308 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1309fi
b1a550a0
PB
1310qemu_version=`head $source_path/VERSION`
1311echo "VERSION=$qemu_version" >>$config_mak
d4b8f039 1312echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
97a847bc
FB
1313
1314echo "SRC_PATH=$source_path" >> $config_mak
ad064840
PB
1315if [ "$source_path_used" = "yes" ]; then
1316 echo "VPATH=$source_path" >> $config_mak
1317fi
97a847bc 1318echo "TARGET_DIRS=$target_list" >> $config_mak
cc8ae6de
PB
1319if [ "$build_docs" = "yes" ] ; then
1320 echo "BUILD_DOCS=yes" >> $config_mak
1321fi
49ecc3fa
FB
1322if test "$static" = "yes"; then
1323 sdl1=$sdl_static
1324else
1325 sdl1=$sdl
1326fi
1327if test "$sdl1" = "yes" ; then
1328 echo "#define CONFIG_SDL 1" >> $config_h
1329 echo "CONFIG_SDL=yes" >> $config_mak
1330 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1331 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1332 else
1333 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1334 fi
1335 if [ "${aa}" = "yes" ] ; then
1336 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1337 else
1338 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1339 fi
1340fi
1341if test "$cocoa" = "yes" ; then
4d3b6f6e
AZ
1342 echo "#define CONFIG_COCOA 1" >> $config_h
1343 echo "CONFIG_COCOA=yes" >> $config_mak
1344fi
1345if test "$curses" = "yes" ; then
1346 echo "#define CONFIG_CURSES 1" >> $config_h
1347 echo "CONFIG_CURSES=yes" >> $config_mak
1348 echo "CURSES_LIBS=-lcurses" >> $config_mak
49ecc3fa 1349fi
2e4d9fb1
AJ
1350if test "$brlapi" = "yes" ; then
1351 echo "CONFIG_BRLAPI=yes" >> $config_mak
1352 echo "#define CONFIG_BRLAPI 1" >> $config_h
1353 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1354fi
fb599c9a
AZ
1355if test "$bluez" = "yes" ; then
1356 echo "CONFIG_BLUEZ=yes" >> $config_mak
1357 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1358 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1359 echo "#define CONFIG_BLUEZ 1" >> $config_h
1360fi
414f0dab
BS
1361if test "$aio" = "yes" ; then
1362 echo "#define CONFIG_AIO 1" >> $config_h
a3392f9b 1363 echo "CONFIG_AIO=yes" >> $config_mak
414f0dab 1364fi
77755340
TS
1365if test "$blobs" = "yes" ; then
1366 echo "INSTALL_BLOBS=yes" >> $config_mak
1367fi
97a847bc 1368
83fb7adf 1369# XXX: suppress that
7d3505c5 1370if [ "$bsd" = "yes" ] ; then
43003046 1371 echo "#define O_LARGEFILE 0" >> $config_h
43003046 1372 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
1373 echo "#define _BSD 1" >> $config_h
1374fi
1375
c5937220
PB
1376echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1377
68063649
BS
1378# USB host support
1379case "$usb" in
1380linux)
1381 echo "HOST_USB=linux" >> $config_mak
1382;;
1383bsd)
1384 echo "HOST_USB=bsd" >> $config_mak
1385;;
1386*)
1387 echo "HOST_USB=stub" >> $config_mak
1388;;
1389esac
1390
c39e3338
PB
1391tools=
1392if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1393 tools="qemu-img\$(EXESUF) $tools"
7a5ca864
FB
1394 if [ "$linux" = "yes" ] ; then
1395 tools="qemu-nbd\$(EXESUF) $tools"
1396 fi
c39e3338
PB
1397fi
1398echo "TOOLS=$tools" >> $config_mak
1399
15d9ca0f
TS
1400test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1401
1d14ffa9 1402for target in $target_list; do
97a847bc
FB
1403target_dir="$target"
1404config_mak=$target_dir/config.mak
1405config_h=$target_dir/config.h
1406target_cpu=`echo $target | cut -d '-' -f 1`
1407target_bigendian="no"
808c4954 1408[ "$target_cpu" = "armeb" ] && target_bigendian=yes
0938cda5
AJ
1409[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1410[ "$target_cpu" = "mips" ] && target_bigendian=yes
1411[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1412[ "$target_cpu" = "mips64" ] && target_bigendian=yes
67867308 1413[ "$target_cpu" = "ppc" ] && target_bigendian=yes
d4082e95 1414[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
22f8a8b3 1415[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
e85e7c6e 1416[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
908f52b0 1417[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
0938cda5
AJ
1418[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1419[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1420[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
97a847bc 1421target_softmmu="no"
997344f3 1422target_user_only="no"
831b7825 1423target_linux_user="no"
831b7825 1424target_darwin_user="no"
84778508 1425target_bsd_user="no"
9e407a85
PB
1426case "$target" in
1427 ${target_cpu}-softmmu)
1428 target_softmmu="yes"
1429 ;;
1430 ${target_cpu}-linux-user)
1431 target_user_only="yes"
1432 target_linux_user="yes"
1433 ;;
1434 ${target_cpu}-darwin-user)
1435 target_user_only="yes"
1436 target_darwin_user="yes"
1437 ;;
84778508
BS
1438 ${target_cpu}-bsd-user)
1439 target_user_only="yes"
1440 target_bsd_user="yes"
1441 ;;
9e407a85
PB
1442 *)
1443 echo "ERROR: Target '$target' not recognised"
1444 exit 1
1445 ;;
1446esac
831b7825 1447
97ccc689 1448if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 1449 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 1450 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 1451 echo "To build QEMU without graphical output configure with --disable-gfx-check"
4d3b6f6e
AZ
1452 echo "Note that this will disable all output from the virtual graphics card"
1453 echo "except through VNC or curses."
97ccc689
FB
1454 exit 1;
1455fi
1456
7c1f25b4 1457#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc 1458
15d9ca0f
TS
1459test -f $config_h && mv $config_h ${config_h}~
1460
97a847bc 1461mkdir -p $target_dir
158142c2 1462mkdir -p $target_dir/fpu
57fec1fe 1463mkdir -p $target_dir/tcg
84778508 1464if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
69de927c
FB
1465 mkdir -p $target_dir/nwfpe
1466fi
1467
ec530c81
FB
1468#
1469# don't use ln -sf as not all "ln -sf" over write the file/link
1470#
1471rm -f $target_dir/Makefile
1472ln -s $source_path/Makefile.target $target_dir/Makefile
1473
97a847bc
FB
1474
1475echo "# Automatically generated by configure - do not modify" > $config_mak
1476echo "/* Automatically generated by configure - do not modify */" > $config_h
1477
de83cd02 1478
97a847bc
FB
1479echo "include ../config-host.mak" >> $config_mak
1480echo "#include \"../config-host.h\"" >> $config_h
1e43adfc 1481
e5fe0c52 1482bflt="no"
cb33da57 1483elfload32="no"
bd0c5661 1484target_nptl="no"
1e43adfc
FB
1485interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1486echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
56aebc89 1487gdb_xml_files=""
97a847bc 1488
5985ecee
AL
1489# Make sure the target and host cpus are compatible
1490if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
1491 \( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
1492 \( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
7ba1e619
AL
1493 kvm="no"
1494fi
1495# Disable KVM for linux-user
1496if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
1497 kvm="no"
1498fi
1499
2408a527
AJ
1500case "$target_cpu" in
1501 i386)
1502 echo "TARGET_ARCH=i386" >> $config_mak
1503 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1504 echo "#define TARGET_I386 1" >> $config_h
da260249 1505 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
2408a527
AJ
1506 then
1507 echo "#define USE_KQEMU 1" >> $config_h
1508 fi
7ba1e619
AL
1509 if test "$kvm" = "yes" ; then
1510 echo "CONFIG_KVM=yes" >> $config_mak
1511 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
5985ecee 1512 echo "#define CONFIG_KVM 1" >> $config_h
7ba1e619 1513 fi
f2bf094e 1514 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
11d1fdb0 1515 if test -n "$gcc3minver" && test $gcc3minver -gt 3
f2bf094e
AJ
1516 then
1517 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1518 else
1519 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1520 fi
2408a527
AJ
1521 ;;
1522 x86_64)
1523 echo "TARGET_ARCH=x86_64" >> $config_mak
1524 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1525 echo "#define TARGET_I386 1" >> $config_h
1526 echo "#define TARGET_X86_64 1" >> $config_h
1527 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1528 then
1529 echo "#define USE_KQEMU 1" >> $config_h
1530 fi
7ba1e619
AL
1531 if test "$kvm" = "yes" ; then
1532 echo "CONFIG_KVM=yes" >> $config_mak
1533 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1534 echo "#define CONFIG_KVM 1" >> $config_h
1535 fi
2408a527
AJ
1536 ;;
1537 alpha)
1538 echo "TARGET_ARCH=alpha" >> $config_mak
1539 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1540 echo "#define TARGET_ALPHA 1" >> $config_h
1541 ;;
1542 arm|armeb)
1543 echo "TARGET_ARCH=arm" >> $config_mak
2408a527
AJ
1544 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1545 echo "#define TARGET_ARM 1" >> $config_h
2408a527 1546 bflt="yes"
bd0c5661 1547 target_nptl="yes"
56aebc89 1548 gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
2408a527
AJ
1549 ;;
1550 cris)
1551 echo "TARGET_ARCH=cris" >> $config_mak
1552 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1553 echo "#define TARGET_CRIS 1" >> $config_h
2408a527
AJ
1554 ;;
1555 m68k)
1556 echo "TARGET_ARCH=m68k" >> $config_mak
1557 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1558 echo "#define TARGET_M68K 1" >> $config_h
1559 bflt="yes"
56aebc89 1560 gdb_xml_files="cf-core.xml cf-fp.xml"
2408a527
AJ
1561 ;;
1562 mips|mipsel)
1563 echo "TARGET_ARCH=mips" >> $config_mak
1564 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1565 echo "#define TARGET_MIPS 1" >> $config_h
1566 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1567 ;;
1568 mipsn32|mipsn32el)
1569 echo "TARGET_ARCH=mipsn32" >> $config_mak
1570 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1571 echo "#define TARGET_MIPS 1" >> $config_h
1572 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1573 ;;
1574 mips64|mips64el)
1575 echo "TARGET_ARCH=mips64" >> $config_mak
1576 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1577 echo "#define TARGET_MIPS 1" >> $config_h
1578 echo "#define TARGET_MIPS64 1" >> $config_h
1579 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1580 ;;
1581 ppc)
1582 echo "TARGET_ARCH=ppc" >> $config_mak
bf6247fb 1583 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1584 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1585 echo "#define TARGET_PPC 1" >> $config_h
bf6247fb 1586 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1587 ;;
1588 ppcemb)
1589 echo "TARGET_ARCH=ppcemb" >> $config_mak
1590 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bf6247fb 1591 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1592 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1593 echo "#define TARGET_PPC 1" >> $config_h
1594 echo "#define TARGET_PPCEMB 1" >> $config_h
ec5b78cd 1595 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1596 ;;
1597 ppc64)
1598 echo "TARGET_ARCH=ppc64" >> $config_mak
1599 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bf6247fb 1600 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1601 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1602 echo "#define TARGET_PPC 1" >> $config_h
1603 echo "#define TARGET_PPC64 1" >> $config_h
bf6247fb 1604 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1605 ;;
1606 ppc64abi32)
1607 echo "TARGET_ARCH=ppc64" >> $config_mak
1608 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1609 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
bf6247fb 1610 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1611 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1612 echo "#define TARGET_PPC 1" >> $config_h
1613 echo "#define TARGET_PPC64 1" >> $config_h
1614 echo "#define TARGET_ABI32 1" >> $config_h
bf6247fb 1615 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1616 ;;
1617 sh4|sh4eb)
1618 echo "TARGET_ARCH=sh4" >> $config_mak
1619 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1620 echo "#define TARGET_SH4 1" >> $config_h
1621 bflt="yes"
0b6d3ae0 1622 target_nptl="yes"
2408a527
AJ
1623 ;;
1624 sparc)
1625 echo "TARGET_ARCH=sparc" >> $config_mak
1626 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1627 echo "#define TARGET_SPARC 1" >> $config_h
1628 ;;
1629 sparc64)
1630 echo "TARGET_ARCH=sparc64" >> $config_mak
1631 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1632 echo "#define TARGET_SPARC 1" >> $config_h
1633 echo "#define TARGET_SPARC64 1" >> $config_h
1634 elfload32="yes"
1635 ;;
1636 sparc32plus)
1637 echo "TARGET_ARCH=sparc64" >> $config_mak
1638 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1639 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1640 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1641 echo "#define TARGET_SPARC 1" >> $config_h
1642 echo "#define TARGET_SPARC64 1" >> $config_h
1643 echo "#define TARGET_ABI32 1" >> $config_h
1644 ;;
1645 *)
1646 echo "Unsupported target CPU"
1647 exit 1
1648 ;;
1649esac
de83cd02 1650if test "$target_bigendian" = "yes" ; then
97a847bc
FB
1651 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1652 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 1653fi
97a847bc
FB
1654if test "$target_softmmu" = "yes" ; then
1655 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1656 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 1657fi
997344f3
FB
1658if test "$target_user_only" = "yes" ; then
1659 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1660 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1661fi
831b7825
TS
1662if test "$target_linux_user" = "yes" ; then
1663 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1664 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1665fi
1666if test "$target_darwin_user" = "yes" ; then
1667 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1668 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1669fi
56aebc89
PB
1670list=""
1671if test ! -z "$gdb_xml_files" ; then
1672 for x in $gdb_xml_files; do
1673 list="$list $source_path/gdb-xml/$x"
1674 done
1675fi
1676echo "TARGET_XML_FILES=$list" >> $config_mak
97a847bc 1677
0938cda5
AJ
1678if test "$target_cpu" = "arm" \
1679 -o "$target_cpu" = "armeb" \
1680 -o "$target_cpu" = "m68k" \
1681 -o "$target_cpu" = "mips" \
1682 -o "$target_cpu" = "mipsel" \
1683 -o "$target_cpu" = "mipsn32" \
1684 -o "$target_cpu" = "mipsn32el" \
1685 -o "$target_cpu" = "mips64" \
1686 -o "$target_cpu" = "mips64el" \
1687 -o "$target_cpu" = "sparc" \
1688 -o "$target_cpu" = "sparc64" \
1689 -o "$target_cpu" = "sparc32plus"; then
158142c2
FB
1690 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1691 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1692fi
e5fe0c52
PB
1693if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1694 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1695 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1696fi
bd0c5661
PB
1697if test "$target_user_only" = "yes" \
1698 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1699 echo "#define USE_NPTL 1" >> $config_h
1700fi
cb33da57
BS
1701# 32 bit ELF loader in addition to native 64 bit loader?
1702if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1703 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1704 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1705fi
84778508
BS
1706if test "$target_bsd_user" = "yes" ; then
1707 echo "CONFIG_BSD_USER=yes" >> $config_mak
1708 echo "#define CONFIG_BSD_USER 1" >> $config_h
1709fi
5b0753e0 1710
15d9ca0f
TS
1711test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1712
97a847bc 1713done # for target in $targets
7d13299d
FB
1714
1715# build tree in object directory if source path is different from current one
1716if test "$source_path_used" = "yes" ; then
49ecc3fa 1717 DIRS="tests tests/cris slirp audio"
7d13299d 1718 FILES="Makefile tests/Makefile"
e7daa605 1719 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
e1ffb0f1 1720 FILES="$FILES tests/test-mmap.c"
7d13299d
FB
1721 for dir in $DIRS ; do
1722 mkdir -p $dir
1723 done
ec530c81 1724 # remove the link and recreate it, as not all "ln -sf" overwrite the link
7d13299d 1725 for f in $FILES ; do
ec530c81
FB
1726 rm -f $f
1727 ln -s $source_path/$f $f
7d13299d
FB
1728 done
1729fi
7d13299d 1730
9d56d2dc 1731rm -f $TMPO $TMPC $TMPE $TMPS $TMPI