]> git.proxmox.com Git - qemu.git/blame - configure
Make struct iovec universally available
[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
bf9298b9
AL
1020##########################################
1021# iovec probe
1022cat > $TMPC <<EOF
1023#include <sys/uio.h>
1024int main(void) { struct iovec iov; return 0; }
1025EOF
1026iovec=no
1027if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1028 iovec=yes
1029fi
1030
cc8ae6de 1031# Check if tools are available to build documentation.
6c591867
TS
1032if [ -x "`which texi2html 2>/dev/null`" ] && \
1033 [ -x "`which pod2man 2>/dev/null`" ]; then
cc8ae6de
PB
1034 build_docs="yes"
1035fi
1036
11d9f695 1037if test "$mingw32" = "yes" ; then
308c3593 1038 if test -z "$prefix" ; then
17e90973 1039 prefix="c:\\\\Program Files\\\\Qemu"
308c3593
PB
1040 fi
1041 mansuffix=""
1042 datasuffix=""
1043 docsuffix=""
1044 binsuffix=""
11d9f695 1045else
308c3593
PB
1046 if test -z "$prefix" ; then
1047 prefix="/usr/local"
1048 fi
1049 mansuffix="/share/man"
1050 datasuffix="/share/qemu"
1051 docsuffix="/share/doc/qemu"
1052 binsuffix="/bin"
11d9f695 1053fi
5a67135a 1054
43ce4dfe 1055echo "Install prefix $prefix"
308c3593
PB
1056echo "BIOS directory $prefix$datasuffix"
1057echo "binary directory $prefix$binsuffix"
11d9f695 1058if test "$mingw32" = "no" ; then
308c3593 1059echo "Manual directory $prefix$mansuffix"
43ce4dfe 1060echo "ELF interp prefix $interp_prefix"
11d9f695 1061fi
5a67135a 1062echo "Source path $source_path"
43ce4dfe 1063echo "C compiler $cc"
83469015 1064echo "Host C compiler $host_cc"
db7287ed 1065echo "ARCH_CFLAGS $ARCH_CFLAGS"
43ce4dfe 1066echo "make $make"
6a882643 1067echo "install $install"
43ce4dfe 1068echo "host CPU $cpu"
de83cd02 1069echo "host big endian $bigendian"
97a847bc 1070echo "target list $target_list"
43ce4dfe 1071echo "gprof enabled $gprof"
03b4fe7d 1072echo "sparse enabled $sparse"
05c2a3e7 1073echo "profiler $profiler"
43ce4dfe 1074echo "static build $static"
85aa5189 1075echo "-Werror enabled $werror"
5b0753e0
FB
1076if test "$darwin" = "yes" ; then
1077 echo "Cocoa support $cocoa"
1078fi
97a847bc 1079echo "SDL support $sdl"
e4afee97
FB
1080if test "$sdl" != "no" ; then
1081 echo "SDL static link $sdl_static"
1082fi
4d3b6f6e 1083echo "curses support $curses"
67b915a5 1084echo "mingw32 support $mingw32"
0c58ac1c 1085echo "Audio drivers $audio_drv_list"
1086echo "Extra audio cards $audio_card_list"
8ff9cbf7 1087echo "Mixer emulation $mixemu"
8d5d2d4c
TS
1088echo "VNC TLS support $vnc_tls"
1089if test "$vnc_tls" = "yes" ; then
1090 echo " TLS CFLAGS $vnc_tls_cflags"
1091 echo " TLS LIBS $vnc_tls_libs"
1092fi
3142255c
BS
1093if test -n "$sparc_cpu"; then
1094 echo "Target Sparc Arch $sparc_cpu"
1095fi
07f4ddbf 1096echo "kqemu support $kqemu"
2e4d9fb1 1097echo "brlapi support $brlapi"
cc8ae6de 1098echo "Documentation $build_docs"
c5937220
PB
1099[ ! -z "$uname_release" ] && \
1100echo "uname -r $uname_release"
bd0c5661 1101echo "NPTL support $nptl"
8a16d273 1102echo "vde support $vde"
414f0dab 1103echo "AIO support $aio"
77755340 1104echo "Install blobs $blobs"
7ba1e619 1105echo "KVM support $kvm"
67b915a5 1106
97a847bc 1107if test $sdl_too_old = "yes"; then
24b55b96 1108echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 1109fi
d4742de8 1110if [ -s $TMPSDLLOG ]; then
20b40c6a 1111 echo "The error log from compiling the libSDL test is: "
d4742de8 1112 cat $TMPSDLLOG
20b40c6a 1113fi
24b55b96
FB
1114#if test "$sdl_static" = "no"; then
1115# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1116#fi
97a847bc
FB
1117config_mak="config-host.mak"
1118config_h="config-host.h"
7d13299d 1119
7c1f25b4 1120#echo "Creating $config_mak and $config_h"
7d13299d 1121
15d9ca0f
TS
1122test -f $config_h && mv $config_h ${config_h}~
1123
97a847bc 1124echo "# Automatically generated by configure - do not modify" > $config_mak
29517134 1125echo "# Configured with: $0 $@" >> $config_mak
97a847bc 1126echo "/* Automatically generated by configure - do not modify */" > $config_h
7d13299d 1127
97a847bc 1128echo "prefix=$prefix" >> $config_mak
308c3593
PB
1129echo "bindir=\${prefix}$binsuffix" >> $config_mak
1130echo "mandir=\${prefix}$mansuffix" >> $config_mak
1131echo "datadir=\${prefix}$datasuffix" >> $config_mak
4ad5b06d 1132echo "docdir=\${prefix}$docsuffix" >> $config_mak
308c3593 1133echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
97a847bc 1134echo "MAKE=$make" >> $config_mak
6a882643 1135echo "INSTALL=$install" >> $config_mak
97a847bc 1136echo "CC=$cc" >> $config_mak
97a847bc
FB
1137echo "HOST_CC=$host_cc" >> $config_mak
1138echo "AR=$ar" >> $config_mak
1139echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
40293e58
FB
1140# XXX: only use CFLAGS and LDFLAGS ?
1141# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1142# compilation of dyngen tool (useful for win32 build on Linux host)
6f30fa85 1143echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
3142255c
BS
1144echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1145echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1146echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
97a847bc
FB
1147echo "CFLAGS=$CFLAGS" >> $config_mak
1148echo "LDFLAGS=$LDFLAGS" >> $config_mak
67b915a5 1149echo "EXESUF=$EXESUF" >> $config_mak
70956b77 1150echo "AIOLIBS=$AIOLIBS" >> $config_mak
2408a527
AJ
1151case "$cpu" in
1152 i386)
1153 echo "ARCH=i386" >> $config_mak
1154 echo "#define HOST_I386 1" >> $config_h
1155 ;;
1156 x86_64)
1157 echo "ARCH=x86_64" >> $config_mak
1158 echo "#define HOST_X86_64 1" >> $config_h
1159 ;;
1160 alpha)
1161 echo "ARCH=alpha" >> $config_mak
1162 echo "#define HOST_ALPHA 1" >> $config_h
1163 ;;
1164 armv4b)
1165 echo "ARCH=arm" >> $config_mak
1166 echo "#define HOST_ARM 1" >> $config_h
1167 ;;
1168 armv4l)
1169 echo "ARCH=arm" >> $config_mak
1170 echo "#define HOST_ARM 1" >> $config_h
1171 ;;
1172 cris)
1173 echo "ARCH=cris" >> $config_mak
1174 echo "#define HOST_CRIS 1" >> $config_h
1175 ;;
1176 hppa)
1177 echo "ARCH=hppa" >> $config_mak
1178 echo "#define HOST_HPPA 1" >> $config_h
1179 ;;
1180 ia64)
1181 echo "ARCH=ia64" >> $config_mak
1182 echo "#define HOST_IA64 1" >> $config_h
1183 ;;
1184 m68k)
1185 echo "ARCH=m68k" >> $config_mak
1186 echo "#define HOST_M68K 1" >> $config_h
1187 ;;
1188 mips)
1189 echo "ARCH=mips" >> $config_mak
1190 echo "#define HOST_MIPS 1" >> $config_h
1191 ;;
1192 mips64)
1193 echo "ARCH=mips64" >> $config_mak
1194 echo "#define HOST_MIPS64 1" >> $config_h
1195 ;;
1196 powerpc)
810260a8 1197 if test "$hostlongbits" = "32"; then
1198 echo "ARCH=ppc" >> $config_mak
1199 echo "#define HOST_PPC 1" >> $config_h
1200 else
1201 echo "ARCH=ppc64" >> $config_mak
1202 echo "#define HOST_PPC64 1" >> $config_h
1203 fi
2408a527
AJ
1204 ;;
1205 s390)
1206 echo "ARCH=s390" >> $config_mak
1207 echo "#define HOST_S390 1" >> $config_h
1208 ;;
1209 sparc)
1210 echo "ARCH=sparc" >> $config_mak
1211 echo "#define HOST_SPARC 1" >> $config_h
1212 ;;
1213 sparc64)
1214 echo "ARCH=sparc64" >> $config_mak
1215 echo "#define HOST_SPARC64 1" >> $config_h
1216 ;;
1217 *)
1218 echo "Unsupported CPU = $cpu"
1219 exit 1
1220 ;;
1221esac
03b4fe7d
AL
1222if test "$sparse" = "yes" ; then
1223 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
1224 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
1225 echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
1226fi
7d13299d 1227if test "$bigendian" = "yes" ; then
97a847bc
FB
1228 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1229 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1230fi
b6853697 1231echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
67b915a5
FB
1232if test "$mingw32" = "yes" ; then
1233 echo "CONFIG_WIN32=yes" >> $config_mak
11d9f695 1234 echo "#define CONFIG_WIN32 1" >> $config_h
210fa556
PB
1235else
1236 cat > $TMPC << EOF
1237#include <byteswap.h>
1238int main(void) { return bswap_32(0); }
1239EOF
db7287ed 1240 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
210fa556
PB
1241 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1242 fi
1360677c
BS
1243 cat > $TMPC << EOF
1244#include <sys/endian.h>
1245#include <sys/types.h>
1246#include <machine/bswap.h>
1247int main(void) { return bswap32(0); }
1248EOF
1249 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1250 echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_h
1251 fi
67b915a5 1252fi
128ab2ff
BS
1253
1254if [ "$openbsd" = "yes" ] ; then
1255 echo "#define ENOTSUP 4096" >> $config_h
1256fi
1257
83fb7adf
FB
1258if test "$darwin" = "yes" ; then
1259 echo "CONFIG_DARWIN=yes" >> $config_mak
1260 echo "#define CONFIG_DARWIN 1" >> $config_h
1261fi
b29fe3ed 1262
1263if test "$aix" = "yes" ; then
1264 echo "CONFIG_AIX=yes" >> $config_mak
1265 echo "#define CONFIG_AIX 1" >> $config_h
1266fi
1267
ec530c81
FB
1268if test "$solaris" = "yes" ; then
1269 echo "CONFIG_SOLARIS=yes" >> $config_mak
38cfa06c 1270 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
0475a5ca
TS
1271 if test "$needs_libsunmath" = "yes" ; then
1272 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1273 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1274 fi
ec530c81 1275fi
3142255c
BS
1276if test -n "$sparc_cpu"; then
1277 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1278 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1279fi
67b915a5
FB
1280if test "$gdbstub" = "yes" ; then
1281 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1282 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1283fi
97a847bc
FB
1284if test "$gprof" = "yes" ; then
1285 echo "TARGET_GPROF=yes" >> $config_mak
1286 echo "#define HAVE_GPROF 1" >> $config_h
1287fi
1288if test "$static" = "yes" ; then
1289 echo "CONFIG_STATIC=yes" >> $config_mak
50863472 1290 echo "#define CONFIG_STATIC 1" >> $config_h
7d13299d 1291fi
05c2a3e7
FB
1292if test $profiler = "yes" ; then
1293 echo "#define CONFIG_PROFILER 1" >> $config_h
1294fi
c20709aa
FB
1295if test "$slirp" = "yes" ; then
1296 echo "CONFIG_SLIRP=yes" >> $config_mak
1297 echo "#define CONFIG_SLIRP 1" >> $config_h
1298fi
8a16d273
TS
1299if test "$vde" = "yes" ; then
1300 echo "CONFIG_VDE=yes" >> $config_mak
1301 echo "#define CONFIG_VDE 1" >> $config_h
1302 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1303fi
0c58ac1c 1304for card in $audio_card_list; do
f6e5889e 1305 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
0c58ac1c 1306 echo "$def=yes" >> $config_mak
1307 echo "#define $def 1" >> $config_h
1308done
1309echo "#define AUDIO_DRIVERS \\" >> $config_h
1310for drv in $audio_drv_list; do
1311 echo " &${drv}_audio_driver, \\" >>$config_h
f6e5889e 1312 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
0c58ac1c 1313 echo "$def=yes" >> $config_mak
923e4521 1314 if test "$drv" = "fmod"; then
0c58ac1c 1315 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1316 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
2f6a1ab0
BS
1317 elif test "$drv" = "oss"; then
1318 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
0c58ac1c 1319 fi
1320done
1321echo "" >>$config_h
8ff9cbf7 1322if test "$mixemu" = "yes" ; then
1323 echo "CONFIG_MIXEMU=yes" >> $config_mak
1324 echo "#define CONFIG_MIXEMU 1" >> $config_h
1325fi
8d5d2d4c
TS
1326if test "$vnc_tls" = "yes" ; then
1327 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1328 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1329 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1330 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1331fi
b1a550a0
PB
1332qemu_version=`head $source_path/VERSION`
1333echo "VERSION=$qemu_version" >>$config_mak
d4b8f039 1334echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
97a847bc
FB
1335
1336echo "SRC_PATH=$source_path" >> $config_mak
ad064840
PB
1337if [ "$source_path_used" = "yes" ]; then
1338 echo "VPATH=$source_path" >> $config_mak
1339fi
97a847bc 1340echo "TARGET_DIRS=$target_list" >> $config_mak
cc8ae6de
PB
1341if [ "$build_docs" = "yes" ] ; then
1342 echo "BUILD_DOCS=yes" >> $config_mak
1343fi
49ecc3fa
FB
1344if test "$static" = "yes"; then
1345 sdl1=$sdl_static
1346else
1347 sdl1=$sdl
1348fi
1349if test "$sdl1" = "yes" ; then
1350 echo "#define CONFIG_SDL 1" >> $config_h
1351 echo "CONFIG_SDL=yes" >> $config_mak
1352 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1353 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1354 else
1355 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1356 fi
1357 if [ "${aa}" = "yes" ] ; then
1358 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1359 else
1360 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1361 fi
1362fi
1363if test "$cocoa" = "yes" ; then
4d3b6f6e
AZ
1364 echo "#define CONFIG_COCOA 1" >> $config_h
1365 echo "CONFIG_COCOA=yes" >> $config_mak
1366fi
1367if test "$curses" = "yes" ; then
1368 echo "#define CONFIG_CURSES 1" >> $config_h
1369 echo "CONFIG_CURSES=yes" >> $config_mak
1370 echo "CURSES_LIBS=-lcurses" >> $config_mak
49ecc3fa 1371fi
2e4d9fb1
AJ
1372if test "$brlapi" = "yes" ; then
1373 echo "CONFIG_BRLAPI=yes" >> $config_mak
1374 echo "#define CONFIG_BRLAPI 1" >> $config_h
1375 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1376fi
fb599c9a
AZ
1377if test "$bluez" = "yes" ; then
1378 echo "CONFIG_BLUEZ=yes" >> $config_mak
1379 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1380 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1381 echo "#define CONFIG_BLUEZ 1" >> $config_h
1382fi
414f0dab
BS
1383if test "$aio" = "yes" ; then
1384 echo "#define CONFIG_AIO 1" >> $config_h
a3392f9b 1385 echo "CONFIG_AIO=yes" >> $config_mak
414f0dab 1386fi
77755340
TS
1387if test "$blobs" = "yes" ; then
1388 echo "INSTALL_BLOBS=yes" >> $config_mak
1389fi
bf9298b9
AL
1390if test "$iovec" = "yes" ; then
1391 echo "#define HAVE_IOVEC 1" >> $config_h
1392fi
97a847bc 1393
83fb7adf 1394# XXX: suppress that
7d3505c5 1395if [ "$bsd" = "yes" ] ; then
43003046 1396 echo "#define O_LARGEFILE 0" >> $config_h
43003046 1397 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
1398 echo "#define _BSD 1" >> $config_h
1399fi
1400
c5937220
PB
1401echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1402
68063649
BS
1403# USB host support
1404case "$usb" in
1405linux)
1406 echo "HOST_USB=linux" >> $config_mak
1407;;
1408bsd)
1409 echo "HOST_USB=bsd" >> $config_mak
1410;;
1411*)
1412 echo "HOST_USB=stub" >> $config_mak
1413;;
1414esac
1415
c39e3338
PB
1416tools=
1417if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1418 tools="qemu-img\$(EXESUF) $tools"
7a5ca864
FB
1419 if [ "$linux" = "yes" ] ; then
1420 tools="qemu-nbd\$(EXESUF) $tools"
1421 fi
c39e3338
PB
1422fi
1423echo "TOOLS=$tools" >> $config_mak
1424
15d9ca0f
TS
1425test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1426
1d14ffa9 1427for target in $target_list; do
97a847bc
FB
1428target_dir="$target"
1429config_mak=$target_dir/config.mak
1430config_h=$target_dir/config.h
1431target_cpu=`echo $target | cut -d '-' -f 1`
1432target_bigendian="no"
808c4954 1433[ "$target_cpu" = "armeb" ] && target_bigendian=yes
0938cda5
AJ
1434[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1435[ "$target_cpu" = "mips" ] && target_bigendian=yes
1436[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1437[ "$target_cpu" = "mips64" ] && target_bigendian=yes
67867308 1438[ "$target_cpu" = "ppc" ] && target_bigendian=yes
d4082e95 1439[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
22f8a8b3 1440[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
e85e7c6e 1441[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
908f52b0 1442[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
0938cda5
AJ
1443[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1444[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1445[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
97a847bc 1446target_softmmu="no"
997344f3 1447target_user_only="no"
831b7825 1448target_linux_user="no"
831b7825 1449target_darwin_user="no"
84778508 1450target_bsd_user="no"
9e407a85
PB
1451case "$target" in
1452 ${target_cpu}-softmmu)
1453 target_softmmu="yes"
1454 ;;
1455 ${target_cpu}-linux-user)
1456 target_user_only="yes"
1457 target_linux_user="yes"
1458 ;;
1459 ${target_cpu}-darwin-user)
1460 target_user_only="yes"
1461 target_darwin_user="yes"
1462 ;;
84778508
BS
1463 ${target_cpu}-bsd-user)
1464 target_user_only="yes"
1465 target_bsd_user="yes"
1466 ;;
9e407a85
PB
1467 *)
1468 echo "ERROR: Target '$target' not recognised"
1469 exit 1
1470 ;;
1471esac
831b7825 1472
97ccc689 1473if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 1474 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 1475 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 1476 echo "To build QEMU without graphical output configure with --disable-gfx-check"
4d3b6f6e
AZ
1477 echo "Note that this will disable all output from the virtual graphics card"
1478 echo "except through VNC or curses."
97ccc689
FB
1479 exit 1;
1480fi
1481
7c1f25b4 1482#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc 1483
15d9ca0f
TS
1484test -f $config_h && mv $config_h ${config_h}~
1485
97a847bc 1486mkdir -p $target_dir
158142c2 1487mkdir -p $target_dir/fpu
57fec1fe 1488mkdir -p $target_dir/tcg
84778508 1489if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
69de927c
FB
1490 mkdir -p $target_dir/nwfpe
1491fi
1492
ec530c81
FB
1493#
1494# don't use ln -sf as not all "ln -sf" over write the file/link
1495#
1496rm -f $target_dir/Makefile
1497ln -s $source_path/Makefile.target $target_dir/Makefile
1498
97a847bc
FB
1499
1500echo "# Automatically generated by configure - do not modify" > $config_mak
1501echo "/* Automatically generated by configure - do not modify */" > $config_h
1502
de83cd02 1503
97a847bc
FB
1504echo "include ../config-host.mak" >> $config_mak
1505echo "#include \"../config-host.h\"" >> $config_h
1e43adfc 1506
e5fe0c52 1507bflt="no"
cb33da57 1508elfload32="no"
bd0c5661 1509target_nptl="no"
1e43adfc
FB
1510interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1511echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
56aebc89 1512gdb_xml_files=""
97a847bc 1513
5985ecee
AL
1514# Make sure the target and host cpus are compatible
1515if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
1516 \( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
1517 \( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
7ba1e619
AL
1518 kvm="no"
1519fi
1520# Disable KVM for linux-user
1521if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
1522 kvm="no"
1523fi
1524
2408a527
AJ
1525case "$target_cpu" in
1526 i386)
1527 echo "TARGET_ARCH=i386" >> $config_mak
1528 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1529 echo "#define TARGET_I386 1" >> $config_h
da260249 1530 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
2408a527
AJ
1531 then
1532 echo "#define USE_KQEMU 1" >> $config_h
1533 fi
7ba1e619
AL
1534 if test "$kvm" = "yes" ; then
1535 echo "CONFIG_KVM=yes" >> $config_mak
1536 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
5985ecee 1537 echo "#define CONFIG_KVM 1" >> $config_h
7ba1e619 1538 fi
f2bf094e 1539 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
11d1fdb0 1540 if test -n "$gcc3minver" && test $gcc3minver -gt 3
f2bf094e
AJ
1541 then
1542 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1543 else
1544 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1545 fi
2408a527
AJ
1546 ;;
1547 x86_64)
1548 echo "TARGET_ARCH=x86_64" >> $config_mak
1549 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1550 echo "#define TARGET_I386 1" >> $config_h
1551 echo "#define TARGET_X86_64 1" >> $config_h
1552 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1553 then
1554 echo "#define USE_KQEMU 1" >> $config_h
1555 fi
7ba1e619
AL
1556 if test "$kvm" = "yes" ; then
1557 echo "CONFIG_KVM=yes" >> $config_mak
1558 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1559 echo "#define CONFIG_KVM 1" >> $config_h
1560 fi
2408a527
AJ
1561 ;;
1562 alpha)
1563 echo "TARGET_ARCH=alpha" >> $config_mak
1564 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1565 echo "#define TARGET_ALPHA 1" >> $config_h
1566 ;;
1567 arm|armeb)
1568 echo "TARGET_ARCH=arm" >> $config_mak
2408a527
AJ
1569 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1570 echo "#define TARGET_ARM 1" >> $config_h
2408a527 1571 bflt="yes"
bd0c5661 1572 target_nptl="yes"
56aebc89 1573 gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
2408a527
AJ
1574 ;;
1575 cris)
1576 echo "TARGET_ARCH=cris" >> $config_mak
1577 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1578 echo "#define TARGET_CRIS 1" >> $config_h
2408a527
AJ
1579 ;;
1580 m68k)
1581 echo "TARGET_ARCH=m68k" >> $config_mak
1582 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1583 echo "#define TARGET_M68K 1" >> $config_h
1584 bflt="yes"
56aebc89 1585 gdb_xml_files="cf-core.xml cf-fp.xml"
2408a527
AJ
1586 ;;
1587 mips|mipsel)
1588 echo "TARGET_ARCH=mips" >> $config_mak
1589 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1590 echo "#define TARGET_MIPS 1" >> $config_h
1591 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1592 ;;
1593 mipsn32|mipsn32el)
1594 echo "TARGET_ARCH=mipsn32" >> $config_mak
1595 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1596 echo "#define TARGET_MIPS 1" >> $config_h
1597 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1598 ;;
1599 mips64|mips64el)
1600 echo "TARGET_ARCH=mips64" >> $config_mak
1601 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1602 echo "#define TARGET_MIPS 1" >> $config_h
1603 echo "#define TARGET_MIPS64 1" >> $config_h
1604 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1605 ;;
1606 ppc)
1607 echo "TARGET_ARCH=ppc" >> $config_mak
bf6247fb 1608 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1609 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1610 echo "#define TARGET_PPC 1" >> $config_h
bf6247fb 1611 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1612 ;;
1613 ppcemb)
1614 echo "TARGET_ARCH=ppcemb" >> $config_mak
1615 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bf6247fb 1616 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1617 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1618 echo "#define TARGET_PPC 1" >> $config_h
1619 echo "#define TARGET_PPCEMB 1" >> $config_h
ec5b78cd 1620 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1621 ;;
1622 ppc64)
1623 echo "TARGET_ARCH=ppc64" >> $config_mak
1624 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bf6247fb 1625 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1626 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1627 echo "#define TARGET_PPC 1" >> $config_h
1628 echo "#define TARGET_PPC64 1" >> $config_h
bf6247fb 1629 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1630 ;;
1631 ppc64abi32)
1632 echo "TARGET_ARCH=ppc64" >> $config_mak
1633 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1634 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
bf6247fb 1635 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1636 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1637 echo "#define TARGET_PPC 1" >> $config_h
1638 echo "#define TARGET_PPC64 1" >> $config_h
1639 echo "#define TARGET_ABI32 1" >> $config_h
bf6247fb 1640 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1641 ;;
1642 sh4|sh4eb)
1643 echo "TARGET_ARCH=sh4" >> $config_mak
1644 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1645 echo "#define TARGET_SH4 1" >> $config_h
1646 bflt="yes"
0b6d3ae0 1647 target_nptl="yes"
2408a527
AJ
1648 ;;
1649 sparc)
1650 echo "TARGET_ARCH=sparc" >> $config_mak
1651 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1652 echo "#define TARGET_SPARC 1" >> $config_h
1653 ;;
1654 sparc64)
1655 echo "TARGET_ARCH=sparc64" >> $config_mak
1656 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1657 echo "#define TARGET_SPARC 1" >> $config_h
1658 echo "#define TARGET_SPARC64 1" >> $config_h
1659 elfload32="yes"
1660 ;;
1661 sparc32plus)
1662 echo "TARGET_ARCH=sparc64" >> $config_mak
1663 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1664 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1665 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1666 echo "#define TARGET_SPARC 1" >> $config_h
1667 echo "#define TARGET_SPARC64 1" >> $config_h
1668 echo "#define TARGET_ABI32 1" >> $config_h
1669 ;;
1670 *)
1671 echo "Unsupported target CPU"
1672 exit 1
1673 ;;
1674esac
de83cd02 1675if test "$target_bigendian" = "yes" ; then
97a847bc
FB
1676 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1677 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 1678fi
97a847bc
FB
1679if test "$target_softmmu" = "yes" ; then
1680 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1681 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 1682fi
997344f3
FB
1683if test "$target_user_only" = "yes" ; then
1684 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1685 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1686fi
831b7825
TS
1687if test "$target_linux_user" = "yes" ; then
1688 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1689 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1690fi
1691if test "$target_darwin_user" = "yes" ; then
1692 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1693 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1694fi
56aebc89
PB
1695list=""
1696if test ! -z "$gdb_xml_files" ; then
1697 for x in $gdb_xml_files; do
1698 list="$list $source_path/gdb-xml/$x"
1699 done
1700fi
1701echo "TARGET_XML_FILES=$list" >> $config_mak
97a847bc 1702
0938cda5
AJ
1703if test "$target_cpu" = "arm" \
1704 -o "$target_cpu" = "armeb" \
1705 -o "$target_cpu" = "m68k" \
1706 -o "$target_cpu" = "mips" \
1707 -o "$target_cpu" = "mipsel" \
1708 -o "$target_cpu" = "mipsn32" \
1709 -o "$target_cpu" = "mipsn32el" \
1710 -o "$target_cpu" = "mips64" \
1711 -o "$target_cpu" = "mips64el" \
1712 -o "$target_cpu" = "sparc" \
1713 -o "$target_cpu" = "sparc64" \
1714 -o "$target_cpu" = "sparc32plus"; then
158142c2
FB
1715 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1716 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1717fi
e5fe0c52
PB
1718if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1719 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1720 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1721fi
bd0c5661
PB
1722if test "$target_user_only" = "yes" \
1723 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1724 echo "#define USE_NPTL 1" >> $config_h
1725fi
cb33da57
BS
1726# 32 bit ELF loader in addition to native 64 bit loader?
1727if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1728 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1729 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1730fi
84778508
BS
1731if test "$target_bsd_user" = "yes" ; then
1732 echo "CONFIG_BSD_USER=yes" >> $config_mak
1733 echo "#define CONFIG_BSD_USER 1" >> $config_h
1734fi
5b0753e0 1735
15d9ca0f
TS
1736test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1737
97a847bc 1738done # for target in $targets
7d13299d
FB
1739
1740# build tree in object directory if source path is different from current one
1741if test "$source_path_used" = "yes" ; then
49ecc3fa 1742 DIRS="tests tests/cris slirp audio"
7d13299d 1743 FILES="Makefile tests/Makefile"
e7daa605 1744 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
e1ffb0f1 1745 FILES="$FILES tests/test-mmap.c"
7d13299d
FB
1746 for dir in $DIRS ; do
1747 mkdir -p $dir
1748 done
ec530c81 1749 # remove the link and recreate it, as not all "ln -sf" overwrite the link
7d13299d 1750 for f in $FILES ; do
ec530c81
FB
1751 rm -f $f
1752 ln -s $source_path/$f $f
7d13299d
FB
1753 done
1754fi