]> git.proxmox.com Git - mirror_qemu.git/blame - configure
sys-queue.h defines _SYS_QUEUE_H_ which is also defined by
[mirror_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"
d4742de8 19TMPSDLLOG="${TMPDIR1}/qemu-conf-sdl-$$-${RANDOM}.log"
7d13299d 20
d4742de8 21trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG; exit" 0 2 3 15
9ac81bbb 22
7d13299d 23# default parameters
11d9f695 24prefix=""
1e43adfc 25interp_prefix="/usr/gnemul/qemu-%M"
43ce4dfe 26static="no"
7d13299d
FB
27cross_prefix=""
28cc="gcc"
328a4240 29gcc3_search="yes"
fe8f78e4 30gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
0c58ac1c 31audio_drv_list=""
32audio_card_list=""
7d13299d
FB
33host_cc="gcc"
34ar="ar"
35make="make"
6a882643 36install="install"
7d13299d 37strip="strip"
b29fe3ed 38cpu=`test $(uname -s) = AIX && uname -p || uname -m`
5327cf48 39target_list=""
7d13299d
FB
40case "$cpu" in
41 i386|i486|i586|i686|i86pc|BePC)
97a847bc 42 cpu="i386"
7d13299d 43 ;;
aaa5fa14
AJ
44 x86_64|amd64)
45 cpu="x86_64"
46 ;;
47 alpha)
48 cpu="alpha"
49 ;;
ba68055e 50 armv*b)
808c4954
FB
51 cpu="armv4b"
52 ;;
ba68055e 53 armv*l)
7d13299d
FB
54 cpu="armv4l"
55 ;;
aaa5fa14
AJ
56 cris)
57 cpu="cris"
7d13299d 58 ;;
f54b3f92
AJ
59 parisc|parisc64)
60 cpu="hppa"
61 ;;
aaa5fa14
AJ
62 ia64)
63 cpu="ia64"
64 ;;
65 m68k)
66 cpu="m68k"
7d13299d
FB
67 ;;
68 mips)
69 cpu="mips"
70 ;;
fbe4f65b
TS
71 mips64)
72 cpu="mips64"
73 ;;
b29fe3ed 74 "Power Macintosh"|ppc|ppc64|powerpc)
aaa5fa14 75 cpu="powerpc"
e7daa605 76 ;;
0e7b8a9f 77 s390*)
fb3e5849
FB
78 cpu="s390"
79 ;;
3142255c 80 sparc|sun4[cdmuv])
ae228531
FB
81 cpu="sparc"
82 ;;
83 sparc64)
84 cpu="sparc64"
85 ;;
7d13299d
FB
86 *)
87 cpu="unknown"
88 ;;
89esac
90gprof="no"
03b4fe7d 91sparse="no"
7d13299d 92bigendian="no"
67b915a5
FB
93mingw32="no"
94EXESUF=""
95gdbstub="yes"
443f1376 96slirp="yes"
e0e6c8c0 97vde="yes"
102a52e4
FB
98fmod_lib=""
99fmod_inc=""
2f6a1ab0 100oss_lib=""
8d5d2d4c 101vnc_tls="yes"
b1a550a0 102bsd="no"
5327cf48 103linux="no"
d2c7c9b8 104solaris="no"
c9ec1fe4 105kqemu="no"
05c2a3e7 106profiler="no"
5b0753e0 107cocoa="no"
97ccc689 108check_gfx="yes"
1aff381f 109check_gcc="yes"
0a8e90f4 110softmmu="yes"
831b7825
TS
111linux_user="no"
112darwin_user="no"
84778508 113bsd_user="no"
cc8ae6de 114build_docs="no"
c5937220 115uname_release=""
4d3b6f6e 116curses="yes"
414f0dab 117aio="yes"
bd0c5661 118nptl="yes"
8ff9cbf7 119mixemu="no"
fb599c9a 120bluez="yes"
7ba1e619 121kvm="yes"
eac30262 122kerneldir=""
b29fe3ed 123aix="no"
77755340 124blobs="yes"
7d13299d
FB
125
126# OS specific
127targetos=`uname -s`
128case $targetos in
c326e0af
FB
129CYGWIN*)
130mingw32="yes"
6f30fa85 131OS_CFLAGS="-mno-cygwin"
db8d7dd1
TS
132if [ "$cpu" = "i386" ] ; then
133 kqemu="yes"
134fi
c2de5c91 135audio_possible_drivers="sdl"
c326e0af 136;;
67b915a5
FB
137MINGW32*)
138mingw32="yes"
db8d7dd1
TS
139if [ "$cpu" = "i386" ] ; then
140 kqemu="yes"
141fi
c2de5c91 142audio_possible_drivers="dsound sdl fmod"
67b915a5 143;;
5c40d2bd 144GNU/kFreeBSD)
0c58ac1c 145audio_drv_list="oss"
f34af52c 146audio_possible_drivers="oss sdl esd pa"
5c40d2bd
TS
147if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
148 kqemu="yes"
149fi
150;;
7d3505c5
FB
151FreeBSD)
152bsd="yes"
0c58ac1c 153audio_drv_list="oss"
f34af52c 154audio_possible_drivers="oss sdl esd pa"
f4887919 155aio_lib="-lpthread"
e99f9060 156if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
07f4ddbf
FB
157 kqemu="yes"
158fi
7d3505c5
FB
159;;
160NetBSD)
161bsd="yes"
0c58ac1c 162audio_drv_list="oss"
c2de5c91 163audio_possible_drivers="oss sdl esd"
8ef92a88
BS
164oss_lib="-lossaudio"
165aio_lib="-lrt -lpthread"
7d3505c5
FB
166;;
167OpenBSD)
168bsd="yes"
128ab2ff 169openbsd="yes"
0c58ac1c 170audio_drv_list="oss"
c2de5c91 171audio_possible_drivers="oss sdl esd"
2f6a1ab0 172oss_lib="-lossaudio"
8ef92a88 173aio_lib="-lpthread"
7d3505c5 174;;
83fb7adf
FB
175Darwin)
176bsd="yes"
177darwin="yes"
831b7825 178darwin_user="yes"
fd677642 179cocoa="yes"
0c58ac1c 180audio_drv_list="coreaudio"
c2de5c91 181audio_possible_drivers="coreaudio sdl fmod"
6f30fa85 182OS_CFLAGS="-mdynamic-no-pic"
c2c59c3e 183OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
8ef92a88 184aio_lib="-lpthread"
83fb7adf 185;;
ec530c81 186SunOS)
c2b84fab
TS
187 solaris="yes"
188 make="gmake"
189 install="ginstall"
0475a5ca 190 needs_libsunmath="no"
c2b84fab 191 solarisrev=`uname -r | cut -f2 -d.`
ef18c883
TS
192 # have to select again, because `uname -m` returns i86pc
193 # even on an x86_64 box.
194 solariscpu=`isainfo -k`
195 if test "${solariscpu}" = "amd64" ; then
196 cpu="x86_64"
197 fi
c2b84fab 198 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
0475a5ca
TS
199 if test "$solarisrev" -le 9 ; then
200 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
201 needs_libsunmath="yes"
202 else
203 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
204 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
205 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
206 echo "Studio 11 can be downloaded from www.sun.com."
207 exit 1
208 fi
209 fi
210 if test "$solarisrev" -ge 9 ; then
c2b84fab
TS
211 kqemu="yes"
212 fi
86b2bd93 213 fi
6b4d2ba1 214 if test -f /usr/include/sys/soundcard.h ; then
0c58ac1c 215 audio_drv_list="oss"
6b4d2ba1 216 fi
c2de5c91 217 audio_possible_drivers="oss sdl"
86b2bd93 218;;
b29fe3ed 219AIX)
220aix="yes"
221make="gmake"
222;;
1d14ffa9 223*)
0c58ac1c 224audio_drv_list="oss"
b8e59f18 225audio_possible_drivers="oss alsa sdl esd pa"
5327cf48 226linux="yes"
831b7825 227linux_user="yes"
68063649 228usb="linux"
07f4ddbf 229if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
c9ec1fe4 230 kqemu="yes"
c2de5c91 231 audio_possible_drivers="$audio_possible_drivers fmod"
c9ec1fe4 232fi
fb065187 233;;
7d13299d
FB
234esac
235
7d3505c5 236if [ "$bsd" = "yes" ] ; then
b1a550a0 237 if [ "$darwin" != "yes" ] ; then
83fb7adf 238 make="gmake"
68063649 239 usb="bsd"
83fb7adf 240 fi
84778508 241 bsd_user="yes"
7d3505c5
FB
242fi
243
7d13299d 244# find source path
ad064840 245source_path=`dirname "$0"`
59faef3a
AZ
246source_path_used="no"
247workdir=`pwd`
ad064840 248if [ -z "$source_path" ]; then
59faef3a 249 source_path=$workdir
ad064840
PB
250else
251 source_path=`cd "$source_path"; pwd`
7d13299d 252fi
724db118 253[ -f "$workdir/vl.c" ] || source_path_used="yes"
7d13299d 254
85aa5189 255werror="no"
0d1e2394
FB
256# generate compile errors on warnings for development builds
257#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
258#werror="yes";
259#fi
85aa5189 260
7d13299d 261for opt do
a46e4035 262 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
7d13299d 263 case "$opt" in
2efc3265
FB
264 --help|-h) show_help=yes
265 ;;
b1a550a0 266 --prefix=*) prefix="$optarg"
7d13299d 267 ;;
b1a550a0 268 --interp-prefix=*) interp_prefix="$optarg"
32ce6337 269 ;;
b1a550a0 270 --source-path=*) source_path="$optarg"
ad064840 271 source_path_used="yes"
7d13299d 272 ;;
b1a550a0 273 --cross-prefix=*) cross_prefix="$optarg"
7d13299d 274 ;;
b1a550a0 275 --cc=*) cc="$optarg"
328a4240 276 gcc3_search="no"
7d13299d 277 ;;
b1a550a0 278 --host-cc=*) host_cc="$optarg"
83469015 279 ;;
b1a550a0 280 --make=*) make="$optarg"
7d13299d 281 ;;
6a882643
PB
282 --install=*) install="$optarg"
283 ;;
b1a550a0 284 --extra-cflags=*) CFLAGS="$optarg"
7d13299d 285 ;;
b1a550a0 286 --extra-ldflags=*) LDFLAGS="$optarg"
7d13299d 287 ;;
b1a550a0 288 --cpu=*) cpu="$optarg"
7d13299d 289 ;;
b1a550a0 290 --target-list=*) target_list="$optarg"
de83cd02 291 ;;
7d13299d
FB
292 --enable-gprof) gprof="yes"
293 ;;
43ce4dfe
FB
294 --static) static="yes"
295 ;;
97a847bc
FB
296 --disable-sdl) sdl="no"
297 ;;
0c58ac1c 298 --fmod-lib=*) fmod_lib="$optarg"
1d14ffa9 299 ;;
c2de5c91 300 --fmod-inc=*) fmod_inc="$optarg"
301 ;;
2f6a1ab0
BS
302 --oss-lib=*) oss_lib="$optarg"
303 ;;
2fa7d3bf 304 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
102a52e4 305 ;;
0c58ac1c 306 --audio-drv-list=*) audio_drv_list="$optarg"
102a52e4 307 ;;
03b4fe7d
AL
308 --enable-sparse) sparse="yes"
309 ;;
310 --disable-sparse) sparse="no"
311 ;;
8d5d2d4c
TS
312 --disable-vnc-tls) vnc_tls="no"
313 ;;
443f1376 314 --disable-slirp) slirp="no"
1d14ffa9 315 ;;
e0e6c8c0 316 --disable-vde) vde="no"
8a16d273 317 ;;
c9ec1fe4 318 --disable-kqemu) kqemu="no"
1d14ffa9 319 ;;
2e4d9fb1
AJ
320 --disable-brlapi) brlapi="no"
321 ;;
fb599c9a
AZ
322 --disable-bluez) bluez="no"
323 ;;
7ba1e619
AL
324 --disable-kvm) kvm="no"
325 ;;
05c2a3e7
FB
326 --enable-profiler) profiler="yes"
327 ;;
c2de5c91 328 --enable-cocoa)
329 cocoa="yes" ;
330 sdl="no" ;
331 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
1d14ffa9 332 ;;
97ccc689
FB
333 --disable-gfx-check) check_gfx="no"
334 ;;
1aff381f
FB
335 --disable-gcc-check) check_gcc="no"
336 ;;
cad25d69 337 --disable-system) softmmu="no"
0a8e90f4 338 ;;
cad25d69 339 --enable-system) softmmu="yes"
0a8e90f4 340 ;;
831b7825 341 --disable-linux-user) linux_user="no"
0a8e90f4 342 ;;
831b7825
TS
343 --enable-linux-user) linux_user="yes"
344 ;;
345 --disable-darwin-user) darwin_user="no"
346 ;;
347 --enable-darwin-user) darwin_user="yes"
0a8e90f4 348 ;;
84778508
BS
349 --disable-bsd-user) bsd_user="no"
350 ;;
351 --enable-bsd-user) bsd_user="yes"
352 ;;
c5937220
PB
353 --enable-uname-release=*) uname_release="$optarg"
354 ;;
3142255c
BS
355 --sparc_cpu=*)
356 sparc_cpu="$optarg"
357 case $sparc_cpu in
358 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
359 target_cpu="sparc"; cpu="sparc" ;;
360 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
361 target_cpu="sparc"; cpu="sparc" ;;
362 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
363 target_cpu="sparc64"; cpu="sparc64" ;;
364 *) echo "undefined SPARC architecture. Exiting";exit 1;;
365 esac
366 ;;
85aa5189
FB
367 --enable-werror) werror="yes"
368 ;;
369 --disable-werror) werror="no"
370 ;;
4d3b6f6e
AZ
371 --disable-curses) curses="no"
372 ;;
bd0c5661
PB
373 --disable-nptl) nptl="no"
374 ;;
8ff9cbf7 375 --enable-mixemu) mixemu="yes"
376 ;;
414f0dab
BS
377 --disable-aio) aio="no"
378 ;;
77755340
TS
379 --disable-blobs) blobs="no"
380 ;;
eac30262
AL
381 --kerneldir=*) kerneldir="$optarg"
382 ;;
7f1559c6
AZ
383 *) echo "ERROR: unknown option $opt"; show_help="yes"
384 ;;
7d13299d
FB
385 esac
386done
387
6f30fa85 388# default flags for all hosts
ac41a620
BS
389CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
390CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
6f30fa85 391LDFLAGS="$LDFLAGS -g"
85aa5189
FB
392if test "$werror" = "yes" ; then
393CFLAGS="$CFLAGS -Werror"
394fi
6f30fa85 395
d2c7c9b8
BS
396if test "$solaris" = "no" ; then
397 if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
398 LDFLAGS="$LDFLAGS -Wl,--warn-common"
399 fi
49237acd
BS
400fi
401
3142255c
BS
402#
403# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
404# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
405#
40293e58 406case "$cpu" in
3142255c
BS
407 sparc) if test -z "$sparc_cpu" ; then
408 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
409 ARCH_LDFLAGS="-m32"
410 else
411 ARCH_CFLAGS="${SP_CFLAGS}"
412 ARCH_LDFLAGS="${SP_LDFLAGS}"
413 fi
414 ;;
415 sparc64) if test -z "$sparc_cpu" ; then
416 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
417 ARCH_LDFLAGS="-m64"
418 else
419 ARCH_CFLAGS="${SP_CFLAGS}"
420 ARCH_LDFLAGS="${SP_LDFLAGS}"
421 fi
422 ;;
76d83bde
TS
423 s390)
424 ARCH_CFLAGS="-march=z900"
425 ;;
40293e58
FB
426 i386)
427 ARCH_CFLAGS="-m32"
428 ARCH_LDFLAGS="-m32"
429 ;;
430 x86_64)
431 ARCH_CFLAGS="-m64"
432 ARCH_LDFLAGS="-m64"
433 ;;
3142255c
BS
434esac
435
af5db58e
PB
436if test x"$show_help" = x"yes" ; then
437cat << EOF
438
439Usage: configure [options]
440Options: [defaults in brackets after descriptions]
441
442EOF
443echo "Standard options:"
444echo " --help print this message"
445echo " --prefix=PREFIX install in PREFIX [$prefix]"
446echo " --interp-prefix=PREFIX where to find shared libraries, etc."
447echo " use %M for cpu name [$interp_prefix]"
448echo " --target-list=LIST set target list [$target_list]"
449echo ""
450echo "kqemu kernel acceleration support:"
451echo " --disable-kqemu disable kqemu support"
af5db58e
PB
452echo ""
453echo "Advanced options (experts only):"
454echo " --source-path=PATH path of source code [$source_path]"
455echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
456echo " --cc=CC use C compiler CC [$cc]"
457echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
458echo " --make=MAKE use specified make [$make]"
6a882643 459echo " --install=INSTALL use specified install [$install]"
af5db58e 460echo " --static enable static build [$static]"
890b1658
AL
461echo " --enable-sparse enable sparse checker"
462echo " --disable-sparse disable sparse checker (default)"
85aa5189 463echo " --disable-werror disable compilation abort on warning"
fe8f78e4 464echo " --disable-sdl disable SDL"
af5db58e 465echo " --enable-cocoa enable COCOA (Mac OS X only)"
c2de5c91 466echo " --audio-drv-list=LIST set audio drivers list:"
467echo " Available drivers: $audio_possible_drivers"
468echo " --audio-card-list=LIST set list of additional emulated audio cards"
469echo " Available cards: ac97 adlib cs4231a gus"
8ff9cbf7 470echo " --enable-mixemu enable mixer emulation"
2e4d9fb1 471echo " --disable-brlapi disable BrlAPI"
8d5d2d4c 472echo " --disable-vnc-tls disable TLS encryption for VNC server"
af896aaa 473echo " --disable-curses disable curses output"
fb599c9a 474echo " --disable-bluez disable bluez stack connectivity"
7ba1e619 475echo " --disable-kvm disable KVM acceleration support"
bd0c5661 476echo " --disable-nptl disable usermode NPTL support"
af5db58e
PB
477echo " --enable-system enable all system emulation targets"
478echo " --disable-system disable all system emulation targets"
831b7825
TS
479echo " --enable-linux-user enable all linux usermode emulation targets"
480echo " --disable-linux-user disable all linux usermode emulation targets"
481echo " --enable-darwin-user enable all darwin usermode emulation targets"
482echo " --disable-darwin-user disable all darwin usermode emulation targets"
84778508
BS
483echo " --enable-bsd-user enable all BSD usermode emulation targets"
484echo " --disable-bsd-user disable all BSD usermode emulation targets"
af5db58e
PB
485echo " --fmod-lib path to FMOD library"
486echo " --fmod-inc path to FMOD includes"
2f6a1ab0 487echo " --oss-lib path to OSS library"
c5937220 488echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
3142255c 489echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
e0e6c8c0 490echo " --disable-vde disable support for vde network"
414f0dab 491echo " --disable-aio disable AIO support"
77755340 492echo " --disable-blobs disable installing provided firmware blobs"
eac30262 493echo " --kerneldir=PATH look for kernel includes in PATH"
af5db58e 494echo ""
5bf08934 495echo "NOTE: The object files are built at the place where configure is launched"
af5db58e
PB
496exit 1
497fi
498
7d13299d
FB
499cc="${cross_prefix}${cc}"
500ar="${cross_prefix}${ar}"
501strip="${cross_prefix}${strip}"
502
064aae13
PB
503# check that the C compiler works.
504cat > $TMPC <<EOF
505int main(void) {}
506EOF
507
db7287ed 508if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
064aae13
PB
509 : C compiler works ok
510else
511 echo "ERROR: \"$cc\" either does not exist or does not work"
512 exit 1
a7350fa1
FB
513fi
514
cd01b4a3
AL
515# check compiler to see if we're on mingw32
516cat > $TMPC <<EOF
517#include <windows.h>
518#ifndef _WIN32
519#error not windows
520#endif
521int main(void) {}
522EOF
523
524if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
525 mingw32="yes"
526fi
527
67b915a5 528if test "$mingw32" = "yes" ; then
5327cf48 529 linux="no"
67b915a5 530 EXESUF=".exe"
9f059eca 531 oss="no"
cd01b4a3 532 linux_user="no"
84778508 533 bsd_user="no"
cd01b4a3
AL
534fi
535
997306fc 536if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
cd01b4a3 537 AIOLIBS=
997306fc 538elif [ "$bsd" = "yes" ]; then
8ef92a88 539 AIOLIBS="$aio_lib"
cd01b4a3
AL
540else
541 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
542 AIOLIBS="-lrt -lpthread"
67b915a5
FB
543fi
544
5fafdf24 545# Check for gcc4, error if pre-gcc4
328a4240
PB
546if test "$check_gcc" = "yes" ; then
547 cat > $TMPC <<EOF
548#if __GNUC__ < 4
549#error gcc3
550#endif
551int main(){return 0;}
552EOF
db7287ed 553 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
328a4240
PB
554 echo "WARNING: \"$cc\" looks like gcc 4.x"
555 found_compat_cc="no"
556 if test "$gcc3_search" = "yes" ; then
557 echo "Looking for gcc 3.x"
558 for compat_cc in $gcc3_list ; do
d4af3de2 559 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
328a4240 560 echo "Found \"$compat_cc\""
1124426a 561 cc="$cross_prefix$compat_cc"
328a4240
PB
562 found_compat_cc="yes"
563 break
564 fi
565 done
566 if test "$found_compat_cc" = "no" ; then
567 echo "gcc 3.x not found!"
568 fi
569 fi
570 if test "$found_compat_cc" = "no" ; then
571 echo "QEMU is known to have problems when compiled with gcc 4.x"
572 echo "It is recommended that you use gcc 3.x to build QEMU"
573 echo "To use this compiler anyway, configure with --disable-gcc-check"
574 exit 1;
575 fi
576 fi
577fi
578
03b4fe7d
AL
579if test ! -x "$(which cgcc 2>/dev/null)"; then
580 sparse="no"
581fi
582
ec530c81
FB
583#
584# Solaris specific configure tool chain decisions
585#
586if test "$solaris" = "yes" ; then
587 #
588 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
589 # override the check with --disable-gcc-check
5fafdf24 590 #
ec530c81
FB
591 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
592 solgcc=`which $cc`
593 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
594 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
595 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
596 echo "or get the latest patch from SunSolve for gcc"
597 exit 1
598 fi
599 fi
600 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
601 if test -z "$solinst" ; then
602 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
603 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
604 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
605 exit 1
606 fi
607 if test "$solinst" = "/usr/sbin/install" ; then
608 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
609 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
610 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
611 exit 1
612 fi
ec530c81
FB
613 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
614 if test -z "$sol_ar" ; then
615 echo "Error: No path includes ar"
616 if test -f /usr/ccs/bin/ar ; then
617 echo "Add /usr/ccs/bin to your path and rerun configure"
618 fi
619 exit 1
620 fi
5fafdf24 621fi
ec530c81
FB
622
623
5327cf48
FB
624if test -z "$target_list" ; then
625# these targets are portable
0a8e90f4 626 if [ "$softmmu" = "yes" ] ; then
2408a527
AJ
627 target_list="\
628i386-softmmu \
629x86_64-softmmu \
630arm-softmmu \
631cris-softmmu \
632m68k-softmmu \
633mips-softmmu \
634mipsel-softmmu \
635mips64-softmmu \
636mips64el-softmmu \
637ppc-softmmu \
638ppcemb-softmmu \
639ppc64-softmmu \
640sh4-softmmu \
641sh4eb-softmmu \
642sparc-softmmu \
643"
0a8e90f4 644 fi
5327cf48 645# the following are Linux specific
831b7825 646 if [ "$linux_user" = "yes" ] ; then
2408a527
AJ
647 target_list="${target_list}\
648i386-linux-user \
649x86_64-linux-user \
650alpha-linux-user \
651arm-linux-user \
652armeb-linux-user \
653cris-linux-user \
654m68k-linux-user \
655mips-linux-user \
656mipsel-linux-user \
657ppc-linux-user \
658ppc64-linux-user \
659ppc64abi32-linux-user \
660sh4-linux-user \
661sh4eb-linux-user \
662sparc-linux-user \
663sparc64-linux-user \
664sparc32plus-linux-user \
665"
831b7825
TS
666 fi
667# the following are Darwin specific
668 if [ "$darwin_user" = "yes" ] ; then
2408a527 669 target_list="$target_list i386-darwin-user ppc-darwin-user"
5327cf48 670 fi
84778508
BS
671# the following are BSD specific
672 if [ "$bsd_user" = "yes" ] ; then
673 target_list="${target_list}\
674sparc64-bsd-user \
675"
676 fi
6e20a45f 677else
b1a550a0 678 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
5327cf48 679fi
0a8e90f4
PB
680if test -z "$target_list" ; then
681 echo "No targets enabled"
682 exit 1
683fi
5327cf48 684
7d13299d
FB
685if test -z "$cross_prefix" ; then
686
687# ---
688# big/little endian test
689cat > $TMPC << EOF
690#include <inttypes.h>
691int main(int argc, char ** argv){
1d14ffa9
FB
692 volatile uint32_t i=0x01234567;
693 return (*((uint8_t*)(&i))) == 0x67;
7d13299d
FB
694}
695EOF
696
db7287ed 697if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
7d13299d
FB
698$TMPE && bigendian="yes"
699else
700echo big/little test failed
701fi
702
703else
704
705# if cross compiling, cannot launch a program, so make a static guess
0938cda5 706if test "$cpu" = "armv4b" \
f54b3f92 707 -o "$cpu" = "hppa" \
0938cda5
AJ
708 -o "$cpu" = "m68k" \
709 -o "$cpu" = "mips" \
710 -o "$cpu" = "mips64" \
711 -o "$cpu" = "powerpc" \
712 -o "$cpu" = "s390" \
713 -o "$cpu" = "sparc" \
714 -o "$cpu" = "sparc64"; then
7d13299d
FB
715 bigendian="yes"
716fi
717
718fi
719
b6853697
FB
720# host long bits test
721hostlongbits="32"
0938cda5
AJ
722if test "$cpu" = "x86_64" \
723 -o "$cpu" = "alpha" \
724 -o "$cpu" = "ia64" \
725 -o "$cpu" = "sparc64"; then
b6853697
FB
726 hostlongbits="64"
727fi
728
810260a8 729# ppc specific hostlongbits selection
730if test "$cpu" = "powerpc" ; then
9d56d2dc 731 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
732 grep -q __powerpc64__ $TMPI && hostlongbits=64
810260a8 733 else
734 echo hostlongbits test failed
ba69a08a 735 exit 1
810260a8 736 fi
737fi
738
e8cd23de 739# check gcc options support
04369ff2
FB
740cat > $TMPC <<EOF
741int main(void) {
04369ff2
FB
742}
743EOF
744
bd0c5661
PB
745# Check host NPTL support
746cat > $TMPC <<EOF
747#include <sched.h>
30813cea 748#include <linux/futex.h>
bd0c5661
PB
749void foo()
750{
751#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
752#error bork
753#endif
754}
755EOF
756
757if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
758 :
759else
760 nptl="no"
761fi
762
ac62922e
AZ
763##########################################
764# zlib check
765
766cat > $TMPC << EOF
767#include <zlib.h>
768int main(void) { zlibVersion(); return 0; }
769EOF
17e1592d 770if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
ac62922e
AZ
771 :
772else
773 echo
774 echo "Error: zlib check failed"
775 echo "Make sure to have the zlib libs and headers installed."
776 echo
777 exit 1
778fi
779
11d9f695
FB
780##########################################
781# SDL probe
782
783sdl_too_old=no
784
785if test -z "$sdl" ; then
069b0bda
TS
786 sdl_config="sdl-config"
787 sdl=no
788 sdl_static=no
789
11d9f695
FB
790cat > $TMPC << EOF
791#include <SDL.h>
792#undef main /* We don't want SDL to override our main() */
793int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
794EOF
d4742de8 795 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> $TMPSDLLOG ; then
cd01b4a3
AL
796 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
797 if test "$_sdlversion" -lt 121 ; then
798 sdl_too_old=yes
799 else
800 if test "$cocoa" = "no" ; then
801 sdl=yes
069b0bda 802 fi
cd01b4a3 803 fi
11d9f695 804
cd01b4a3
AL
805 # static link with sdl ?
806 if test "$sdl" = "yes" ; then
807 aa="no"
808 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
809 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
810 if [ "$aa" = "yes" ] ; then
811 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
812 fi
813
814 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
815 sdl_static=yes
816 fi
817 fi # static link
818 fi # sdl compile test
fd677642 819else
069b0bda
TS
820 # Make sure to disable cocoa if sdl was set
821 if test "$sdl" = "yes" ; then
822 cocoa="no"
c2de5c91 823 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
069b0bda 824 fi
a6e022ad 825fi # -z $sdl
11d9f695 826
8d5d2d4c
TS
827##########################################
828# VNC TLS detection
829if test "$vnc_tls" = "yes" ; then
ae6b5e5a
AL
830cat > $TMPC <<EOF
831#include <gnutls/gnutls.h>
832int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
833EOF
834 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
835 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
836 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
837 $vnc_tls_libs 2> /dev/null ; then
838 :
839 else
840 vnc_tls="no"
841 fi
8d5d2d4c
TS
842fi
843
8a16d273
TS
844##########################################
845# vde libraries probe
846if test "$vde" = "yes" ; then
847 cat > $TMPC << EOF
848#include <libvdeplug.h>
4a7f0e06
PB
849int main(void)
850{
851 struct vde_open_args a = {0, 0, 0};
852 vde_open("", "", &a);
853 return 0;
854}
8a16d273 855EOF
4a7f0e06 856 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
8a16d273
TS
857 :
858 else
e0e6c8c0 859 vde="no"
8a16d273
TS
860 fi
861fi
862
8f28f3fb 863##########################################
c2de5c91 864# Sound support libraries probe
8f28f3fb 865
c2de5c91 866audio_drv_probe()
867{
868 drv=$1
869 hdr=$2
870 lib=$3
871 exp=$4
872 cfl=$5
873 cat > $TMPC << EOF
874#include <$hdr>
875int main(void) { $exp }
8f28f3fb 876EOF
c2de5c91 877 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
878 :
879 else
880 echo
881 echo "Error: $drv check failed"
882 echo "Make sure to have the $drv libs and headers installed."
883 echo
884 exit 1
885 fi
886}
887
2fa7d3bf 888audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
c2de5c91 889for drv in $audio_drv_list; do
890 case $drv in
891 alsa)
892 audio_drv_probe $drv alsa/asoundlib.h -lasound \
893 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
894 ;;
895
896 fmod)
897 if test -z $fmod_lib || test -z $fmod_inc; then
898 echo
899 echo "Error: You must specify path to FMOD library and headers"
900 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
901 echo
902 exit 1
903 fi
904 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
905 ;;
906
907 esd)
908 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
909 ;;
b8e59f18 910
911 pa)
912 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
913 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
914 ;;
915
2f6a1ab0
BS
916 oss|sdl|core|wav|dsound)
917 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
918 ;;
919
e4c63a6a 920 *)
1c9b2a52 921 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
e4c63a6a 922 echo
923 echo "Error: Unknown driver '$drv' selected"
924 echo "Possible drivers are: $audio_possible_drivers"
925 echo
926 exit 1
927 }
928 ;;
c2de5c91 929 esac
930done
8f28f3fb 931
2e4d9fb1
AJ
932##########################################
933# BrlAPI probe
934
935if test -z "$brlapi" ; then
936 brlapi=no
937cat > $TMPC << EOF
938#include <brlapi.h>
939int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
940EOF
a40e56d5 941 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
2e4d9fb1
AJ
942 brlapi=yes
943 fi # brlapi compile test
944fi # -z $brlapi
945
4d3b6f6e
AZ
946##########################################
947# curses probe
948
949if test "$curses" = "yes" ; then
950 curses=no
951 cat > $TMPC << EOF
952#include <curses.h>
953int main(void) { return curses_version(); }
954EOF
af896aaa 955 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
4d3b6f6e
AZ
956 curses=yes
957 fi
958fi # test "$curses"
959
fb599c9a
AZ
960##########################################
961# bluez support probe
962if test "$bluez" = "yes" ; then
963 `pkg-config bluez` || bluez="no"
964fi
965if test "$bluez" = "yes" ; then
e820e3f4
AZ
966 cat > $TMPC << EOF
967#include <bluetooth/bluetooth.h>
968int main(void) { return bt_error(0); }
969EOF
fb599c9a
AZ
970 bluez_cflags=`pkg-config --cflags bluez`
971 bluez_libs=`pkg-config --libs bluez`
17e1592d 972 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
e820e3f4
AZ
973 $bluez_libs 2> /dev/null ; then
974 :
975 else
976 bluez="no"
977 fi
fb599c9a
AZ
978fi
979
7ba1e619
AL
980##########################################
981# kvm probe
982if test "$kvm" = "yes" ; then
983 cat > $TMPC <<EOF
984#include <linux/kvm.h>
985#if !defined(KVM_API_VERSION) || \
986 KVM_API_VERSION < 12 || \
987 KVM_API_VERSION > 12 || \
988 !defined(KVM_CAP_USER_MEMORY) || \
989 !defined(KVM_CAP_SET_TSS_ADDR)
990#error Invalid KVM version
991#endif
992int main(void) { return 0; }
993EOF
eac30262
AL
994 if test "$kerneldir" != "" ; then
995 kvm_cflags=-I"$kerneldir"/include
996 else
997 kvm_cflags=""
998 fi
7ba1e619
AL
999 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
1000 2>/dev/null ; then
1001 :
1002 else
1003 kvm="no"
1004 fi
1005fi
1006
414f0dab
BS
1007##########################################
1008# AIO probe
1009if test "$aio" = "yes" ; then
1010 aio=no
1011 cat > $TMPC << EOF
1012#include <aio.h>
1013int main(void) { return aio_write(NULL); }
1014EOF
1015 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
1016 aio=yes
1017 fi
1018fi
1019
cc8ae6de 1020# Check if tools are available to build documentation.
6c591867
TS
1021if [ -x "`which texi2html 2>/dev/null`" ] && \
1022 [ -x "`which pod2man 2>/dev/null`" ]; then
cc8ae6de
PB
1023 build_docs="yes"
1024fi
1025
11d9f695 1026if test "$mingw32" = "yes" ; then
308c3593 1027 if test -z "$prefix" ; then
17e90973 1028 prefix="c:\\\\Program Files\\\\Qemu"
308c3593
PB
1029 fi
1030 mansuffix=""
1031 datasuffix=""
1032 docsuffix=""
1033 binsuffix=""
11d9f695 1034else
308c3593
PB
1035 if test -z "$prefix" ; then
1036 prefix="/usr/local"
1037 fi
1038 mansuffix="/share/man"
1039 datasuffix="/share/qemu"
1040 docsuffix="/share/doc/qemu"
1041 binsuffix="/bin"
11d9f695 1042fi
5a67135a 1043
43ce4dfe 1044echo "Install prefix $prefix"
308c3593
PB
1045echo "BIOS directory $prefix$datasuffix"
1046echo "binary directory $prefix$binsuffix"
11d9f695 1047if test "$mingw32" = "no" ; then
308c3593 1048echo "Manual directory $prefix$mansuffix"
43ce4dfe 1049echo "ELF interp prefix $interp_prefix"
11d9f695 1050fi
5a67135a 1051echo "Source path $source_path"
43ce4dfe 1052echo "C compiler $cc"
83469015 1053echo "Host C compiler $host_cc"
db7287ed 1054echo "ARCH_CFLAGS $ARCH_CFLAGS"
43ce4dfe 1055echo "make $make"
6a882643 1056echo "install $install"
43ce4dfe 1057echo "host CPU $cpu"
de83cd02 1058echo "host big endian $bigendian"
97a847bc 1059echo "target list $target_list"
43ce4dfe 1060echo "gprof enabled $gprof"
03b4fe7d 1061echo "sparse enabled $sparse"
05c2a3e7 1062echo "profiler $profiler"
43ce4dfe 1063echo "static build $static"
85aa5189 1064echo "-Werror enabled $werror"
5b0753e0
FB
1065if test "$darwin" = "yes" ; then
1066 echo "Cocoa support $cocoa"
1067fi
97a847bc 1068echo "SDL support $sdl"
e4afee97
FB
1069if test "$sdl" != "no" ; then
1070 echo "SDL static link $sdl_static"
1071fi
4d3b6f6e 1072echo "curses support $curses"
67b915a5 1073echo "mingw32 support $mingw32"
0c58ac1c 1074echo "Audio drivers $audio_drv_list"
1075echo "Extra audio cards $audio_card_list"
8ff9cbf7 1076echo "Mixer emulation $mixemu"
8d5d2d4c
TS
1077echo "VNC TLS support $vnc_tls"
1078if test "$vnc_tls" = "yes" ; then
1079 echo " TLS CFLAGS $vnc_tls_cflags"
1080 echo " TLS LIBS $vnc_tls_libs"
1081fi
3142255c
BS
1082if test -n "$sparc_cpu"; then
1083 echo "Target Sparc Arch $sparc_cpu"
1084fi
07f4ddbf 1085echo "kqemu support $kqemu"
2e4d9fb1 1086echo "brlapi support $brlapi"
cc8ae6de 1087echo "Documentation $build_docs"
c5937220
PB
1088[ ! -z "$uname_release" ] && \
1089echo "uname -r $uname_release"
bd0c5661 1090echo "NPTL support $nptl"
8a16d273 1091echo "vde support $vde"
414f0dab 1092echo "AIO support $aio"
77755340 1093echo "Install blobs $blobs"
7ba1e619 1094echo "KVM support $kvm"
67b915a5 1095
97a847bc 1096if test $sdl_too_old = "yes"; then
24b55b96 1097echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 1098fi
d4742de8 1099if [ -s $TMPSDLLOG ]; then
20b40c6a 1100 echo "The error log from compiling the libSDL test is: "
d4742de8 1101 cat $TMPSDLLOG
20b40c6a 1102fi
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