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