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