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