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