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