]> git.proxmox.com Git - qemu.git/blame - configure
More .cvsignore.
[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"
7d13299d
FB
18
19# default parameters
11d9f695 20prefix=""
1e43adfc 21interp_prefix="/usr/gnemul/qemu-%M"
43ce4dfe 22static="no"
7d13299d
FB
23cross_prefix=""
24cc="gcc"
328a4240 25gcc3_search="yes"
fe8f78e4 26gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
7d13299d
FB
27host_cc="gcc"
28ar="ar"
29make="make"
6a882643 30install="install"
7d13299d
FB
31strip="strip"
32cpu=`uname -m`
5327cf48 33target_list=""
7d13299d
FB
34case "$cpu" in
35 i386|i486|i586|i686|i86pc|BePC)
97a847bc 36 cpu="i386"
7d13299d 37 ;;
ba68055e 38 armv*b)
808c4954
FB
39 cpu="armv4b"
40 ;;
ba68055e 41 armv*l)
7d13299d
FB
42 cpu="armv4l"
43 ;;
44 alpha)
45 cpu="alpha"
46 ;;
295defa5 47 "Power Macintosh"|ppc|ppc64)
7d13299d
FB
48 cpu="powerpc"
49 ;;
50 mips)
51 cpu="mips"
52 ;;
fbe4f65b
TS
53 mips64)
54 cpu="mips64"
55 ;;
e7daa605
TS
56 cris)
57 cpu="cris"
58 ;;
0e7b8a9f 59 s390*)
fb3e5849
FB
60 cpu="s390"
61 ;;
3142255c 62 sparc|sun4[cdmuv])
ae228531
FB
63 cpu="sparc"
64 ;;
65 sparc64)
66 cpu="sparc64"
67 ;;
a8baa8c5
FB
68 ia64)
69 cpu="ia64"
70 ;;
38e584a0
FB
71 m68k)
72 cpu="m68k"
73 ;;
bc51c5c9 74 x86_64|amd64)
0b0babc6 75 cpu="x86_64"
bc51c5c9 76 ;;
7d13299d
FB
77 *)
78 cpu="unknown"
79 ;;
80esac
81gprof="no"
82bigendian="no"
67b915a5
FB
83mingw32="no"
84EXESUF=""
85gdbstub="yes"
443f1376 86slirp="yes"
fb065187
FB
87adlib="no"
88oss="no"
1d14ffa9
FB
89dsound="no"
90coreaudio="no"
91alsa="no"
102a52e4
FB
92fmod="no"
93fmod_lib=""
94fmod_inc=""
8d5d2d4c 95vnc_tls="yes"
b1a550a0 96bsd="no"
5327cf48 97linux="no"
c9ec1fe4 98kqemu="no"
05c2a3e7 99profiler="no"
5b0753e0 100cocoa="no"
97ccc689 101check_gfx="yes"
1aff381f 102check_gcc="yes"
0a8e90f4 103softmmu="yes"
831b7825
TS
104linux_user="no"
105darwin_user="no"
cc8ae6de 106build_docs="no"
c5937220 107uname_release=""
7d13299d
FB
108
109# OS specific
110targetos=`uname -s`
111case $targetos in
c326e0af
FB
112CYGWIN*)
113mingw32="yes"
6f30fa85 114OS_CFLAGS="-mno-cygwin"
db8d7dd1
TS
115VL_OS_LDFLAGS="-mno-cygwin"
116if [ "$cpu" = "i386" ] ; then
117 kqemu="yes"
118fi
c326e0af 119;;
67b915a5
FB
120MINGW32*)
121mingw32="yes"
db8d7dd1
TS
122if [ "$cpu" = "i386" ] ; then
123 kqemu="yes"
124fi
67b915a5 125;;
5c40d2bd
TS
126GNU/kFreeBSD)
127oss="yes"
128if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
129 kqemu="yes"
130fi
131;;
7d3505c5
FB
132FreeBSD)
133bsd="yes"
fb065187 134oss="yes"
e99f9060 135if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
07f4ddbf
FB
136 kqemu="yes"
137fi
7d3505c5
FB
138;;
139NetBSD)
140bsd="yes"
fb065187 141oss="yes"
7d3505c5
FB
142;;
143OpenBSD)
144bsd="yes"
fb065187 145oss="yes"
7d3505c5 146;;
83fb7adf
FB
147Darwin)
148bsd="yes"
149darwin="yes"
831b7825 150darwin_user="yes"
fd677642
TS
151cocoa="yes"
152coreaudio="yes"
6f30fa85 153OS_CFLAGS="-mdynamic-no-pic"
83fb7adf 154;;
ec530c81 155SunOS)
c2b84fab
TS
156 solaris="yes"
157 make="gmake"
158 install="ginstall"
0475a5ca 159 needs_libsunmath="no"
c2b84fab 160 solarisrev=`uname -r | cut -f2 -d.`
ef18c883
TS
161 # have to select again, because `uname -m` returns i86pc
162 # even on an x86_64 box.
163 solariscpu=`isainfo -k`
164 if test "${solariscpu}" = "amd64" ; then
165 cpu="x86_64"
166 fi
c2b84fab 167 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
0475a5ca
TS
168 if test "$solarisrev" -le 9 ; then
169 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
170 needs_libsunmath="yes"
171 else
172 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
173 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
174 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
175 echo "Studio 11 can be downloaded from www.sun.com."
176 exit 1
177 fi
178 fi
179 if test "$solarisrev" -ge 9 ; then
c2b84fab
TS
180 kqemu="yes"
181 fi
86b2bd93 182 fi
6b4d2ba1
TS
183 if test -f /usr/include/sys/soundcard.h ; then
184 oss=yes
185 fi
86b2bd93 186;;
1d14ffa9 187*)
fb065187 188oss="yes"
5327cf48 189linux="yes"
831b7825 190linux_user="yes"
07f4ddbf 191if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
c9ec1fe4
FB
192 kqemu="yes"
193fi
fb065187 194;;
7d13299d
FB
195esac
196
7d3505c5 197if [ "$bsd" = "yes" ] ; then
b1a550a0 198 if [ "$darwin" != "yes" ] ; then
83fb7adf
FB
199 make="gmake"
200 fi
7d3505c5
FB
201fi
202
7d13299d 203# find source path
ad064840
PB
204source_path=`dirname "$0"`
205if [ -z "$source_path" ]; then
7d13299d 206 source_path=`pwd`
ad064840
PB
207else
208 source_path=`cd "$source_path"; pwd`
209fi
210if test "$source_path" = `pwd` ; then
7d13299d 211 source_path_used="no"
ad064840
PB
212else
213 source_path_used="yes"
7d13299d
FB
214fi
215
216for opt do
a46e4035 217 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
7d13299d 218 case "$opt" in
2efc3265
FB
219 --help|-h) show_help=yes
220 ;;
b1a550a0 221 --prefix=*) prefix="$optarg"
7d13299d 222 ;;
b1a550a0 223 --interp-prefix=*) interp_prefix="$optarg"
32ce6337 224 ;;
b1a550a0 225 --source-path=*) source_path="$optarg"
ad064840 226 source_path_used="yes"
7d13299d 227 ;;
b1a550a0 228 --cross-prefix=*) cross_prefix="$optarg"
7d13299d 229 ;;
b1a550a0 230 --cc=*) cc="$optarg"
328a4240 231 gcc3_search="no"
7d13299d 232 ;;
b1a550a0 233 --host-cc=*) host_cc="$optarg"
83469015 234 ;;
b1a550a0 235 --make=*) make="$optarg"
7d13299d 236 ;;
6a882643
PB
237 --install=*) install="$optarg"
238 ;;
b1a550a0 239 --extra-cflags=*) CFLAGS="$optarg"
7d13299d 240 ;;
b1a550a0 241 --extra-ldflags=*) LDFLAGS="$optarg"
7d13299d 242 ;;
b1a550a0 243 --cpu=*) cpu="$optarg"
7d13299d 244 ;;
b1a550a0 245 --target-list=*) target_list="$optarg"
de83cd02 246 ;;
7d13299d
FB
247 --enable-gprof) gprof="yes"
248 ;;
43ce4dfe
FB
249 --static) static="yes"
250 ;;
97a847bc
FB
251 --disable-sdl) sdl="no"
252 ;;
1d14ffa9
FB
253 --enable-coreaudio) coreaudio="yes"
254 ;;
255 --enable-alsa) alsa="yes"
256 ;;
257 --enable-dsound) dsound="yes"
258 ;;
102a52e4
FB
259 --enable-fmod) fmod="yes"
260 ;;
b1a550a0 261 --fmod-lib=*) fmod_lib="$optarg"
102a52e4 262 ;;
b1a550a0 263 --fmod-inc=*) fmod_inc="$optarg"
102a52e4 264 ;;
8d5d2d4c
TS
265 --disable-vnc-tls) vnc_tls="no"
266 ;;
b93aebec 267 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
1d14ffa9 268 ;;
443f1376 269 --disable-slirp) slirp="no"
1d14ffa9 270 ;;
fb065187 271 --enable-adlib) adlib="yes"
1d14ffa9 272 ;;
c9ec1fe4 273 --disable-kqemu) kqemu="no"
1d14ffa9 274 ;;
05c2a3e7
FB
275 --enable-profiler) profiler="yes"
276 ;;
1d14ffa9
FB
277 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
278 ;;
97ccc689
FB
279 --disable-gfx-check) check_gfx="no"
280 ;;
1aff381f
FB
281 --disable-gcc-check) check_gcc="no"
282 ;;
cad25d69 283 --disable-system) softmmu="no"
0a8e90f4 284 ;;
cad25d69 285 --enable-system) softmmu="yes"
0a8e90f4 286 ;;
831b7825 287 --disable-linux-user) linux_user="no"
0a8e90f4 288 ;;
831b7825
TS
289 --enable-linux-user) linux_user="yes"
290 ;;
291 --disable-darwin-user) darwin_user="no"
292 ;;
293 --enable-darwin-user) darwin_user="yes"
0a8e90f4 294 ;;
c5937220
PB
295 --enable-uname-release=*) uname_release="$optarg"
296 ;;
3142255c
BS
297 --sparc_cpu=*)
298 sparc_cpu="$optarg"
299 case $sparc_cpu in
300 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
301 target_cpu="sparc"; cpu="sparc" ;;
302 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
303 target_cpu="sparc"; cpu="sparc" ;;
304 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
305 target_cpu="sparc64"; cpu="sparc64" ;;
306 *) echo "undefined SPARC architecture. Exiting";exit 1;;
307 esac
308 ;;
7d13299d
FB
309 esac
310done
311
209afb9e
TS
312if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
313 AIOLIBS=
314else
4259e1a5
TS
315 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
316 AIOLIBS="-lrt -lpthread"
209afb9e
TS
317fi
318
6f30fa85
TS
319# default flags for all hosts
320CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
321LDFLAGS="$LDFLAGS -g"
322
3142255c
BS
323#
324# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
325# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
326#
327case $cpu in
328 sparc) if test -z "$sparc_cpu" ; then
329 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
330 ARCH_LDFLAGS="-m32"
331 else
332 ARCH_CFLAGS="${SP_CFLAGS}"
333 ARCH_LDFLAGS="${SP_LDFLAGS}"
334 fi
335 ;;
336 sparc64) if test -z "$sparc_cpu" ; then
337 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
338 ARCH_LDFLAGS="-m64"
339 else
340 ARCH_CFLAGS="${SP_CFLAGS}"
341 ARCH_LDFLAGS="${SP_LDFLAGS}"
342 fi
343 ;;
344esac
345
ef18c883
TS
346if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then
347 CFLAGS="${CFLAGS} -m64"
348 OS_CFLAGS="${OS_CFLAGS} -m64"
349fi
350
351if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then
352 CFLAGS="${CFLAGS} -m32"
353 OS_CFLAGS="${OS_CFLAGS} -m32"
354fi
355
af5db58e
PB
356if test x"$show_help" = x"yes" ; then
357cat << EOF
358
359Usage: configure [options]
360Options: [defaults in brackets after descriptions]
361
362EOF
363echo "Standard options:"
364echo " --help print this message"
365echo " --prefix=PREFIX install in PREFIX [$prefix]"
366echo " --interp-prefix=PREFIX where to find shared libraries, etc."
367echo " use %M for cpu name [$interp_prefix]"
368echo " --target-list=LIST set target list [$target_list]"
369echo ""
370echo "kqemu kernel acceleration support:"
371echo " --disable-kqemu disable kqemu support"
af5db58e
PB
372echo ""
373echo "Advanced options (experts only):"
374echo " --source-path=PATH path of source code [$source_path]"
375echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
376echo " --cc=CC use C compiler CC [$cc]"
377echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
378echo " --make=MAKE use specified make [$make]"
6a882643 379echo " --install=INSTALL use specified install [$install]"
af5db58e 380echo " --static enable static build [$static]"
fe8f78e4 381echo " --disable-sdl disable SDL"
af5db58e
PB
382echo " --enable-cocoa enable COCOA (Mac OS X only)"
383echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
384echo " --enable-adlib enable Adlib emulation"
385echo " --enable-coreaudio enable Coreaudio audio driver"
386echo " --enable-alsa enable ALSA audio driver"
387echo " --enable-fmod enable FMOD audio driver"
ed5065e1 388echo " --enable-dsound enable DirectSound audio driver"
8d5d2d4c 389echo " --disable-vnc-tls disable TLS encryption for VNC server"
af5db58e
PB
390echo " --enable-system enable all system emulation targets"
391echo " --disable-system disable all system emulation targets"
831b7825
TS
392echo " --enable-linux-user enable all linux usermode emulation targets"
393echo " --disable-linux-user disable all linux usermode emulation targets"
394echo " --enable-darwin-user enable all darwin usermode emulation targets"
395echo " --disable-darwin-user disable all darwin usermode emulation targets"
af5db58e
PB
396echo " --fmod-lib path to FMOD library"
397echo " --fmod-inc path to FMOD includes"
c5937220 398echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
3142255c 399echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
af5db58e 400echo ""
5bf08934 401echo "NOTE: The object files are built at the place where configure is launched"
af5db58e
PB
402exit 1
403fi
404
7d13299d
FB
405cc="${cross_prefix}${cc}"
406ar="${cross_prefix}${ar}"
407strip="${cross_prefix}${strip}"
408
064aae13
PB
409# check that the C compiler works.
410cat > $TMPC <<EOF
411int main(void) {}
412EOF
413
cf257238 414if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
064aae13
PB
415 : C compiler works ok
416else
417 echo "ERROR: \"$cc\" either does not exist or does not work"
418 exit 1
a7350fa1
FB
419fi
420
67b915a5 421if test "$mingw32" = "yes" ; then
5327cf48 422 linux="no"
67b915a5 423 EXESUF=".exe"
9f059eca 424 oss="no"
67b915a5
FB
425fi
426
5fafdf24 427# Check for gcc4, error if pre-gcc4
328a4240
PB
428if test "$check_gcc" = "yes" ; then
429 cat > $TMPC <<EOF
430#if __GNUC__ < 4
431#error gcc3
432#endif
433int main(){return 0;}
434EOF
cf257238 435 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
328a4240
PB
436 echo "WARNING: \"$cc\" looks like gcc 4.x"
437 found_compat_cc="no"
438 if test "$gcc3_search" = "yes" ; then
439 echo "Looking for gcc 3.x"
440 for compat_cc in $gcc3_list ; do
d4af3de2 441 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
328a4240 442 echo "Found \"$compat_cc\""
1124426a 443 cc="$cross_prefix$compat_cc"
328a4240
PB
444 found_compat_cc="yes"
445 break
446 fi
447 done
448 if test "$found_compat_cc" = "no" ; then
449 echo "gcc 3.x not found!"
450 fi
451 fi
452 if test "$found_compat_cc" = "no" ; then
453 echo "QEMU is known to have problems when compiled with gcc 4.x"
454 echo "It is recommended that you use gcc 3.x to build QEMU"
455 echo "To use this compiler anyway, configure with --disable-gcc-check"
456 exit 1;
457 fi
458 fi
459fi
460
ec530c81
FB
461#
462# Solaris specific configure tool chain decisions
463#
464if test "$solaris" = "yes" ; then
465 #
466 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
467 # override the check with --disable-gcc-check
5fafdf24 468 #
ec530c81
FB
469 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
470 solgcc=`which $cc`
471 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
472 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
473 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
474 echo "or get the latest patch from SunSolve for gcc"
475 exit 1
476 fi
477 fi
478 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
479 if test -z "$solinst" ; then
480 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
481 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
482 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
483 exit 1
484 fi
485 if test "$solinst" = "/usr/sbin/install" ; then
486 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
487 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
488 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
489 exit 1
490 fi
ec530c81
FB
491 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
492 if test -z "$sol_ar" ; then
493 echo "Error: No path includes ar"
494 if test -f /usr/ccs/bin/ar ; then
495 echo "Add /usr/ccs/bin to your path and rerun configure"
496 fi
497 exit 1
498 fi
5fafdf24 499fi
ec530c81
FB
500
501
5327cf48
FB
502if test -z "$target_list" ; then
503# these targets are portable
0a8e90f4 504 if [ "$softmmu" = "yes" ] ; then
22f8a8b3 505 target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu"
0a8e90f4 506 fi
5327cf48 507# the following are Linux specific
831b7825 508 if [ "$linux_user" = "yes" ] ; then
e85e7c6e 509 target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user ppc-linux-user ppcemb-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
831b7825
TS
510 fi
511# the following are Darwin specific
512 if [ "$darwin_user" = "yes" ] ; then
513 target_list="i386-darwin-user ppc-darwin-user $target_list"
5327cf48 514 fi
6e20a45f 515else
b1a550a0 516 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
5327cf48 517fi
0a8e90f4
PB
518if test -z "$target_list" ; then
519 echo "No targets enabled"
520 exit 1
521fi
5327cf48 522
7d13299d
FB
523if test -z "$cross_prefix" ; then
524
525# ---
526# big/little endian test
527cat > $TMPC << EOF
528#include <inttypes.h>
529int main(int argc, char ** argv){
1d14ffa9
FB
530 volatile uint32_t i=0x01234567;
531 return (*((uint8_t*)(&i))) == 0x67;
7d13299d
FB
532}
533EOF
534
cf257238 535if $cc -o $TMPE $TMPC 2> /dev/null ; then
7d13299d
FB
536$TMPE && bigendian="yes"
537else
538echo big/little test failed
539fi
540
541else
542
543# if cross compiling, cannot launch a program, so make a static guess
fbe4f65b 544if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
7d13299d
FB
545 bigendian="yes"
546fi
547
548fi
549
b6853697
FB
550# host long bits test
551hostlongbits="32"
552if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
553 hostlongbits="64"
554fi
555
e8cd23de 556# check gcc options support
04369ff2
FB
557cat > $TMPC <<EOF
558int main(void) {
04369ff2
FB
559}
560EOF
561
11d9f695
FB
562##########################################
563# SDL probe
564
565sdl_too_old=no
566
567if test -z "$sdl" ; then
069b0bda
TS
568 sdl_config="sdl-config"
569 sdl=no
570 sdl_static=no
571
572 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
573 # win32 cross compilation case
574 sdl_config="i386-mingw32msvc-sdl-config"
575 sdl=yes
576 else
577 # normal SDL probe
11d9f695
FB
578cat > $TMPC << EOF
579#include <SDL.h>
580#undef main /* We don't want SDL to override our main() */
581int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
582EOF
069b0bda
TS
583 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
584 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
585 if test "$_sdlversion" -lt 121 ; then
586 sdl_too_old=yes
587 else
588 if test "$cocoa" = "no" ; then
589 sdl=yes
590 fi
591 fi
11d9f695 592
069b0bda
TS
593 # static link with sdl ?
594 if test "$sdl" = "yes" ; then
595 aa="no"
596 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
597 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
598 if [ "$aa" = "yes" ] ; then
599 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
600 fi
601
602 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
603 sdl_static=yes
604 fi
605 fi # static link
606 fi # sdl compile test
607 fi # cross compilation
fd677642 608else
069b0bda
TS
609 # Make sure to disable cocoa if sdl was set
610 if test "$sdl" = "yes" ; then
611 cocoa="no"
612 coreaudio="no"
613 fi
a6e022ad 614fi # -z $sdl
11d9f695 615
8d5d2d4c
TS
616##########################################
617# VNC TLS detection
618if test "$vnc_tls" = "yes" ; then
619 `pkg-config gnutls` || vnc_tls="no"
620fi
621if test "$vnc_tls" = "yes" ; then
622 vnc_tls_cflags=`pkg-config --cflags gnutls`
623 vnc_tls_libs=`pkg-config --libs gnutls`
624fi
625
8f28f3fb
TS
626##########################################
627# alsa sound support libraries
628
629if test "$alsa" = "yes" ; then
630 cat > $TMPC << EOF
631#include <alsa/asoundlib.h>
632int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
633EOF
634 if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
635 :
636 else
637 echo
638 echo "Error: Could not find alsa"
639 echo "Make sure to have the alsa libs and headers installed."
640 echo
641 exit 1
642 fi
643fi
644
cc8ae6de 645# Check if tools are available to build documentation.
6c591867
TS
646if [ -x "`which texi2html 2>/dev/null`" ] && \
647 [ -x "`which pod2man 2>/dev/null`" ]; then
cc8ae6de
PB
648 build_docs="yes"
649fi
650
11d9f695 651if test "$mingw32" = "yes" ; then
308c3593
PB
652 if test -z "$prefix" ; then
653 prefix="/c/Program Files/Qemu"
654 fi
655 mansuffix=""
656 datasuffix=""
657 docsuffix=""
658 binsuffix=""
11d9f695 659else
308c3593
PB
660 if test -z "$prefix" ; then
661 prefix="/usr/local"
662 fi
663 mansuffix="/share/man"
664 datasuffix="/share/qemu"
665 docsuffix="/share/doc/qemu"
666 binsuffix="/bin"
11d9f695 667fi
5a67135a 668
43ce4dfe 669echo "Install prefix $prefix"
308c3593
PB
670echo "BIOS directory $prefix$datasuffix"
671echo "binary directory $prefix$binsuffix"
11d9f695 672if test "$mingw32" = "no" ; then
308c3593 673echo "Manual directory $prefix$mansuffix"
43ce4dfe 674echo "ELF interp prefix $interp_prefix"
11d9f695 675fi
5a67135a 676echo "Source path $source_path"
43ce4dfe 677echo "C compiler $cc"
83469015 678echo "Host C compiler $host_cc"
43ce4dfe 679echo "make $make"
6a882643 680echo "install $install"
43ce4dfe 681echo "host CPU $cpu"
de83cd02 682echo "host big endian $bigendian"
97a847bc 683echo "target list $target_list"
43ce4dfe 684echo "gprof enabled $gprof"
05c2a3e7 685echo "profiler $profiler"
43ce4dfe 686echo "static build $static"
5b0753e0
FB
687if test "$darwin" = "yes" ; then
688 echo "Cocoa support $cocoa"
689fi
97a847bc 690echo "SDL support $sdl"
e4afee97
FB
691if test "$sdl" != "no" ; then
692 echo "SDL static link $sdl_static"
693fi
67b915a5 694echo "mingw32 support $mingw32"
fb065187 695echo "Adlib support $adlib"
1d14ffa9
FB
696echo "CoreAudio support $coreaudio"
697echo "ALSA support $alsa"
698echo "DSound support $dsound"
1d14ffa9
FB
699if test "$fmod" = "yes"; then
700 if test -z $fmod_lib || test -z $fmod_inc; then
701 echo
702 echo "Error: You must specify path to FMOD library and headers"
703 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
704 echo
705 exit 1
706 fi
b1a550a0
PB
707 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
708else
709 fmod_support=""
102a52e4 710fi
b1a550a0 711echo "FMOD support $fmod $fmod_support"
6b4d2ba1 712echo "OSS support $oss"
8d5d2d4c
TS
713echo "VNC TLS support $vnc_tls"
714if test "$vnc_tls" = "yes" ; then
715 echo " TLS CFLAGS $vnc_tls_cflags"
716 echo " TLS LIBS $vnc_tls_libs"
717fi
3142255c
BS
718if test -n "$sparc_cpu"; then
719 echo "Target Sparc Arch $sparc_cpu"
720fi
07f4ddbf 721echo "kqemu support $kqemu"
cc8ae6de 722echo "Documentation $build_docs"
c5937220
PB
723[ ! -z "$uname_release" ] && \
724echo "uname -r $uname_release"
67b915a5 725
97a847bc 726if test $sdl_too_old = "yes"; then
24b55b96 727echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 728fi
20b40c6a
TS
729if [ -s /tmp/qemu-$$-sdl-config.log ]; then
730 echo "The error log from compiling the libSDL test is: "
731 cat /tmp/qemu-$$-sdl-config.log
732fi
733rm -f /tmp/qemu-$$-sdl-config.log
24b55b96
FB
734#if test "$sdl_static" = "no"; then
735# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
736#fi
97a847bc
FB
737config_mak="config-host.mak"
738config_h="config-host.h"
7d13299d 739
7c1f25b4 740#echo "Creating $config_mak and $config_h"
7d13299d 741
15d9ca0f
TS
742test -f $config_h && mv $config_h ${config_h}~
743
97a847bc 744echo "# Automatically generated by configure - do not modify" > $config_mak
29517134 745echo "# Configured with: $0 $@" >> $config_mak
97a847bc 746echo "/* Automatically generated by configure - do not modify */" > $config_h
7d13299d 747
97a847bc 748echo "prefix=$prefix" >> $config_mak
308c3593
PB
749echo "bindir=\${prefix}$binsuffix" >> $config_mak
750echo "mandir=\${prefix}$mansuffix" >> $config_mak
751echo "datadir=\${prefix}$datasuffix" >> $config_mak
4ad5b06d 752echo "docdir=\${prefix}$docsuffix" >> $config_mak
308c3593 753echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
97a847bc 754echo "MAKE=$make" >> $config_mak
6a882643 755echo "INSTALL=$install" >> $config_mak
97a847bc 756echo "CC=$cc" >> $config_mak
97a847bc
FB
757echo "HOST_CC=$host_cc" >> $config_mak
758echo "AR=$ar" >> $config_mak
759echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
6f30fa85 760echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
3142255c 761echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
db8d7dd1 762echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
3142255c
BS
763echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
764echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
97a847bc
FB
765echo "CFLAGS=$CFLAGS" >> $config_mak
766echo "LDFLAGS=$LDFLAGS" >> $config_mak
67b915a5 767echo "EXESUF=$EXESUF" >> $config_mak
70956b77 768echo "AIOLIBS=$AIOLIBS" >> $config_mak
97a847bc
FB
769if test "$cpu" = "i386" ; then
770 echo "ARCH=i386" >> $config_mak
771 echo "#define HOST_I386 1" >> $config_h
0b0babc6
FB
772elif test "$cpu" = "x86_64" ; then
773 echo "ARCH=x86_64" >> $config_mak
774 echo "#define HOST_X86_64 1" >> $config_h
808c4954
FB
775elif test "$cpu" = "armv4b" ; then
776 echo "ARCH=arm" >> $config_mak
777 echo "#define HOST_ARM 1" >> $config_h
7d13299d 778elif test "$cpu" = "armv4l" ; then
97a847bc
FB
779 echo "ARCH=arm" >> $config_mak
780 echo "#define HOST_ARM 1" >> $config_h
7d13299d 781elif test "$cpu" = "powerpc" ; then
97a847bc
FB
782 echo "ARCH=ppc" >> $config_mak
783 echo "#define HOST_PPC 1" >> $config_h
7d13299d 784elif test "$cpu" = "mips" ; then
97a847bc
FB
785 echo "ARCH=mips" >> $config_mak
786 echo "#define HOST_MIPS 1" >> $config_h
fbe4f65b
TS
787elif test "$cpu" = "mips64" ; then
788 echo "ARCH=mips64" >> $config_mak
789 echo "#define HOST_MIPS64 1" >> $config_h
e7daa605
TS
790elif test "$cpu" = "cris" ; then
791 echo "ARCH=cris" >> $config_mak
792 echo "#define HOST_CRIS 1" >> $config_h
fb3e5849 793elif test "$cpu" = "s390" ; then
97a847bc
FB
794 echo "ARCH=s390" >> $config_mak
795 echo "#define HOST_S390 1" >> $config_h
295defa5 796elif test "$cpu" = "alpha" ; then
97a847bc
FB
797 echo "ARCH=alpha" >> $config_mak
798 echo "#define HOST_ALPHA 1" >> $config_h
ae228531 799elif test "$cpu" = "sparc" ; then
97a847bc
FB
800 echo "ARCH=sparc" >> $config_mak
801 echo "#define HOST_SPARC 1" >> $config_h
ae228531 802elif test "$cpu" = "sparc64" ; then
97a847bc
FB
803 echo "ARCH=sparc64" >> $config_mak
804 echo "#define HOST_SPARC64 1" >> $config_h
a8baa8c5 805elif test "$cpu" = "ia64" ; then
97a847bc
FB
806 echo "ARCH=ia64" >> $config_mak
807 echo "#define HOST_IA64 1" >> $config_h
38e584a0 808elif test "$cpu" = "m68k" ; then
38ca2abc
FB
809 echo "ARCH=m68k" >> $config_mak
810 echo "#define HOST_M68K 1" >> $config_h
7d13299d 811else
3142255c 812 echo "Unsupported CPU = $cpu"
7d13299d
FB
813 exit 1
814fi
815if test "$bigendian" = "yes" ; then
97a847bc
FB
816 echo "WORDS_BIGENDIAN=yes" >> $config_mak
817 echo "#define WORDS_BIGENDIAN 1" >> $config_h
818fi
b6853697 819echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
67b915a5
FB
820if test "$mingw32" = "yes" ; then
821 echo "CONFIG_WIN32=yes" >> $config_mak
11d9f695 822 echo "#define CONFIG_WIN32 1" >> $config_h
210fa556
PB
823else
824 cat > $TMPC << EOF
825#include <byteswap.h>
826int main(void) { return bswap_32(0); }
827EOF
828 if $cc -o $TMPE $TMPC 2> /dev/null ; then
829 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
830 fi
67b915a5 831fi
83fb7adf
FB
832if test "$darwin" = "yes" ; then
833 echo "CONFIG_DARWIN=yes" >> $config_mak
834 echo "#define CONFIG_DARWIN 1" >> $config_h
835fi
ec530c81
FB
836if test "$solaris" = "yes" ; then
837 echo "CONFIG_SOLARIS=yes" >> $config_mak
38cfa06c 838 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
0475a5ca
TS
839 if test "$needs_libsunmath" = "yes" ; then
840 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
841 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
842 fi
ec530c81 843fi
3142255c
BS
844if test -n "$sparc_cpu"; then
845 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
846 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
847fi
67b915a5
FB
848if test "$gdbstub" = "yes" ; then
849 echo "CONFIG_GDBSTUB=yes" >> $config_mak
850 echo "#define CONFIG_GDBSTUB 1" >> $config_h
851fi
97a847bc
FB
852if test "$gprof" = "yes" ; then
853 echo "TARGET_GPROF=yes" >> $config_mak
854 echo "#define HAVE_GPROF 1" >> $config_h
855fi
856if test "$static" = "yes" ; then
857 echo "CONFIG_STATIC=yes" >> $config_mak
50863472 858 echo "#define CONFIG_STATIC 1" >> $config_h
7d13299d 859fi
05c2a3e7
FB
860if test $profiler = "yes" ; then
861 echo "#define CONFIG_PROFILER 1" >> $config_h
862fi
c20709aa
FB
863if test "$slirp" = "yes" ; then
864 echo "CONFIG_SLIRP=yes" >> $config_mak
865 echo "#define CONFIG_SLIRP 1" >> $config_h
866fi
fb065187
FB
867if test "$adlib" = "yes" ; then
868 echo "CONFIG_ADLIB=yes" >> $config_mak
869 echo "#define CONFIG_ADLIB 1" >> $config_h
870fi
871if test "$oss" = "yes" ; then
872 echo "CONFIG_OSS=yes" >> $config_mak
873 echo "#define CONFIG_OSS 1" >> $config_h
874fi
1d14ffa9
FB
875if test "$coreaudio" = "yes" ; then
876 echo "CONFIG_COREAUDIO=yes" >> $config_mak
877 echo "#define CONFIG_COREAUDIO 1" >> $config_h
878fi
879if test "$alsa" = "yes" ; then
880 echo "CONFIG_ALSA=yes" >> $config_mak
881 echo "#define CONFIG_ALSA 1" >> $config_h
882fi
883if test "$dsound" = "yes" ; then
884 echo "CONFIG_DSOUND=yes" >> $config_mak
885 echo "#define CONFIG_DSOUND 1" >> $config_h
886fi
102a52e4
FB
887if test "$fmod" = "yes" ; then
888 echo "CONFIG_FMOD=yes" >> $config_mak
889 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
890 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
891 echo "#define CONFIG_FMOD 1" >> $config_h
892fi
8d5d2d4c
TS
893if test "$vnc_tls" = "yes" ; then
894 echo "CONFIG_VNC_TLS=yes" >> $config_mak
895 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
896 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
897 echo "#define CONFIG_VNC_TLS 1" >> $config_h
898fi
b1a550a0
PB
899qemu_version=`head $source_path/VERSION`
900echo "VERSION=$qemu_version" >>$config_mak
d4b8f039 901echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
97a847bc
FB
902
903echo "SRC_PATH=$source_path" >> $config_mak
ad064840
PB
904if [ "$source_path_used" = "yes" ]; then
905 echo "VPATH=$source_path" >> $config_mak
906fi
97a847bc 907echo "TARGET_DIRS=$target_list" >> $config_mak
cc8ae6de
PB
908if [ "$build_docs" = "yes" ] ; then
909 echo "BUILD_DOCS=yes" >> $config_mak
910fi
49ecc3fa
FB
911if test "$static" = "yes"; then
912 sdl1=$sdl_static
913else
914 sdl1=$sdl
915fi
916if test "$sdl1" = "yes" ; then
917 echo "#define CONFIG_SDL 1" >> $config_h
918 echo "CONFIG_SDL=yes" >> $config_mak
919 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
920 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
921 else
922 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
923 fi
924 if [ "${aa}" = "yes" ] ; then
925 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
926 else
927 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
928 fi
929fi
930if test "$cocoa" = "yes" ; then
931 echo "#define CONFIG_COCOA 1" >> $config_h
932 echo "CONFIG_COCOA=yes" >> $config_mak
933fi
97a847bc 934
83fb7adf 935# XXX: suppress that
7d3505c5 936if [ "$bsd" = "yes" ] ; then
43003046 937 echo "#define O_LARGEFILE 0" >> $config_h
43003046 938 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
939 echo "#define _BSD 1" >> $config_h
940fi
941
c5937220
PB
942echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
943
c39e3338
PB
944tools=
945if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
946 tools="qemu-img\$(EXESUF) $tools"
947fi
948echo "TOOLS=$tools" >> $config_mak
949
15d9ca0f
TS
950test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
951
1d14ffa9 952for target in $target_list; do
97a847bc
FB
953target_dir="$target"
954config_mak=$target_dir/config.mak
955config_h=$target_dir/config.h
956target_cpu=`echo $target | cut -d '-' -f 1`
957target_bigendian="no"
808c4954 958[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1e43adfc 959[ "$target_cpu" = "sparc" ] && target_bigendian=yes
64b3ab24 960[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
992f48a0 961[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
67867308 962[ "$target_cpu" = "ppc" ] && target_bigendian=yes
d4082e95 963[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
22f8a8b3 964[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
e85e7c6e 965[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
22f8a8b3 966[ "$target_cpu" = "ppc64h" ] && target_bigendian=yes
d3258560 967[ "$target_cpu" = "mips" ] && target_bigendian=yes
540635ba 968[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
fbe4f65b 969[ "$target_cpu" = "mips64" ] && target_bigendian=yes
908f52b0 970[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
e6e5906b 971[ "$target_cpu" = "m68k" ] && target_bigendian=yes
97a847bc 972target_softmmu="no"
997344f3 973target_user_only="no"
831b7825 974target_linux_user="no"
831b7825 975target_darwin_user="no"
9e407a85
PB
976case "$target" in
977 ${target_cpu}-softmmu)
978 target_softmmu="yes"
979 ;;
980 ${target_cpu}-linux-user)
981 target_user_only="yes"
982 target_linux_user="yes"
983 ;;
984 ${target_cpu}-darwin-user)
985 target_user_only="yes"
986 target_darwin_user="yes"
987 ;;
988 *)
989 echo "ERROR: Target '$target' not recognised"
990 exit 1
991 ;;
992esac
831b7825 993
97ccc689 994if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 995 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 996 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 997 echo "To build QEMU without graphical output configure with --disable-gfx-check"
97ccc689
FB
998 echo "Note that this will disable all output from the virtual graphics card."
999 exit 1;
1000fi
1001
7c1f25b4 1002#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc 1003
15d9ca0f
TS
1004test -f $config_h && mv $config_h ${config_h}~
1005
97a847bc 1006mkdir -p $target_dir
158142c2 1007mkdir -p $target_dir/fpu
831b7825 1008if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
69de927c
FB
1009 mkdir -p $target_dir/nwfpe
1010fi
1011
ec530c81
FB
1012#
1013# don't use ln -sf as not all "ln -sf" over write the file/link
1014#
1015rm -f $target_dir/Makefile
1016ln -s $source_path/Makefile.target $target_dir/Makefile
1017
97a847bc
FB
1018
1019echo "# Automatically generated by configure - do not modify" > $config_mak
1020echo "/* Automatically generated by configure - do not modify */" > $config_h
1021
de83cd02 1022
97a847bc
FB
1023echo "include ../config-host.mak" >> $config_mak
1024echo "#include \"../config-host.h\"" >> $config_h
1e43adfc 1025
e5fe0c52 1026bflt="no"
cb33da57 1027elfload32="no"
1e43adfc
FB
1028interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1029echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
97a847bc
FB
1030
1031if test "$target_cpu" = "i386" ; then
1032 echo "TARGET_ARCH=i386" >> $config_mak
1033 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1034 echo "#define TARGET_I386 1" >> $config_h
07f4ddbf 1035 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
824d560f
FB
1036 echo "#define USE_KQEMU 1" >> $config_h
1037 fi
808c4954 1038elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
97a847bc
FB
1039 echo "TARGET_ARCH=arm" >> $config_mak
1040 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1041 echo "#define TARGET_ARM 1" >> $config_h
e5fe0c52 1042 bflt="yes"
1e43adfc
FB
1043elif test "$target_cpu" = "sparc" ; then
1044 echo "TARGET_ARCH=sparc" >> $config_mak
1045 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1046 echo "#define TARGET_SPARC 1" >> $config_h
64b3ab24
FB
1047elif test "$target_cpu" = "sparc64" ; then
1048 echo "TARGET_ARCH=sparc64" >> $config_mak
1049 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1050 echo "#define TARGET_SPARC 1" >> $config_h
1051 echo "#define TARGET_SPARC64 1" >> $config_h
cb33da57 1052 elfload32="yes"
992f48a0
BS
1053elif test "$target_cpu" = "sparc32plus" ; then
1054 echo "TARGET_ARCH=sparc64" >> $config_mak
1055 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1056 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1057 echo "#define TARGET_SPARC 1" >> $config_h
1058 echo "#define TARGET_SPARC64 1" >> $config_h
1059 echo "#define TARGET_ABI32 1" >> $config_h
67867308
FB
1060elif test "$target_cpu" = "ppc" ; then
1061 echo "TARGET_ARCH=ppc" >> $config_mak
1062 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1063 echo "#define TARGET_PPC 1" >> $config_h
22f8a8b3
JM
1064elif test "$target_cpu" = "ppcemb" ; then
1065 echo "TARGET_ARCH=ppcemb" >> $config_mak
e85e7c6e 1066 echo "TARGET_ABI_DIR=ppc" >> $config_mak
22f8a8b3
JM
1067 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1068 echo "#define TARGET_PPC 1" >> $config_h
1069 echo "#define TARGET_PPCEMB 1" >> $config_h
a2458627
FB
1070elif test "$target_cpu" = "ppc64" ; then
1071 echo "TARGET_ARCH=ppc64" >> $config_mak
1072 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
f85e9a68 1073 echo "TARGET_ABI_DIR=ppc" >> $config_mak
a2458627
FB
1074 echo "#define TARGET_PPC 1" >> $config_h
1075 echo "#define TARGET_PPC64 1" >> $config_h
e85e7c6e
JM
1076elif test "$target_cpu" = "ppc64abi32" ; then
1077 echo "TARGET_ARCH=ppc64" >> $config_mak
1078 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1079 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1080 echo "#define TARGET_PPC 1" >> $config_h
1081 echo "#define TARGET_PPC64 1" >> $config_h
1082 echo "#define TARGET_ABI32 1" >> $config_h
22f8a8b3
JM
1083elif test "$target_cpu" = "ppc64h" ; then
1084 echo "TARGET_ARCH=ppc64h" >> $config_mak
1085 echo "#define TARGET_ARCH \"ppc64h\"" >> $config_h
f85e9a68 1086 echo "TARGET_ABI_DIR=ppc" >> $config_mak
d4082e95 1087 echo "#define TARGET_PPC 1" >> $config_h
22f8a8b3
JM
1088 echo "#define TARGET_PPC64 1" >> $config_h
1089 echo "#define TARGET_PPC64H 1" >> $config_h
0b0babc6
FB
1090elif test "$target_cpu" = "x86_64" ; then
1091 echo "TARGET_ARCH=x86_64" >> $config_mak
1092 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1093 echo "#define TARGET_I386 1" >> $config_h
1094 echo "#define TARGET_X86_64 1" >> $config_h
07f4ddbf
FB
1095 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1096 echo "#define USE_KQEMU 1" >> $config_h
1097 fi
c20eb473 1098elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
d3258560
FB
1099 echo "TARGET_ARCH=mips" >> $config_mak
1100 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1101 echo "#define TARGET_MIPS 1" >> $config_h
540635ba
TS
1102elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1103 echo "TARGET_ARCH=mipsn32" >> $config_mak
1104 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1105 echo "#define TARGET_MIPS 1" >> $config_h
1106 echo "#define TARGET_MIPSN32 1" >> $config_h
fbe4f65b
TS
1107elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1108 echo "TARGET_ARCH=mips64" >> $config_mak
1109 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1110 echo "#define TARGET_MIPS 1" >> $config_h
1111 echo "#define TARGET_MIPS64 1" >> $config_h
e7daa605
TS
1112elif test "$target_cpu" = "cris" ; then
1113 echo "TARGET_ARCH=cris" >> $config_mak
1114 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1115 echo "#define TARGET_CRIS 1" >> $config_h
1116 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1117 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
908f52b0 1118elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
fdf9b3e8
FB
1119 echo "TARGET_ARCH=sh4" >> $config_mak
1120 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1121 echo "#define TARGET_SH4 1" >> $config_h
4dbed897 1122 bflt="yes"
e6e5906b
PB
1123elif test "$target_cpu" = "m68k" ; then
1124 echo "TARGET_ARCH=m68k" >> $config_mak
1125 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1126 echo "#define TARGET_M68K 1" >> $config_h
1127 bflt="yes"
cf6c1b16
JM
1128elif test "$target_cpu" = "alpha" ; then
1129 echo "TARGET_ARCH=alpha" >> $config_mak
1130 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1131 echo "#define TARGET_ALPHA 1" >> $config_h
de83cd02
FB
1132else
1133 echo "Unsupported target CPU"
1134 exit 1
1135fi
1136if test "$target_bigendian" = "yes" ; then
97a847bc
FB
1137 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1138 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 1139fi
97a847bc
FB
1140if test "$target_softmmu" = "yes" ; then
1141 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1142 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 1143fi
997344f3
FB
1144if test "$target_user_only" = "yes" ; then
1145 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1146 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1147fi
831b7825
TS
1148if test "$target_linux_user" = "yes" ; then
1149 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1150 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1151fi
1152if test "$target_darwin_user" = "yes" ; then
1153 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1154 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1155fi
97a847bc 1156
992f48a0 1157if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then
158142c2
FB
1158 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1159 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1160fi
e5fe0c52
PB
1161if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1162 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1163 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1164fi
cb33da57
BS
1165# 32 bit ELF loader in addition to native 64 bit loader?
1166if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1167 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1168 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1169fi
5b0753e0 1170
15d9ca0f
TS
1171test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1172
97a847bc 1173done # for target in $targets
7d13299d
FB
1174
1175# build tree in object directory if source path is different from current one
1176if test "$source_path_used" = "yes" ; then
49ecc3fa 1177 DIRS="tests tests/cris slirp audio"
7d13299d 1178 FILES="Makefile tests/Makefile"
e7daa605 1179 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
7d13299d
FB
1180 for dir in $DIRS ; do
1181 mkdir -p $dir
1182 done
ec530c81 1183 # remove the link and recreate it, as not all "ln -sf" overwrite the link
7d13299d 1184 for f in $FILES ; do
ec530c81
FB
1185 rm -f $f
1186 ln -s $source_path/$f $f
7d13299d
FB
1187 done
1188fi
7d13299d 1189
97a847bc 1190rm -f $TMPO $TMPC $TMPE $TMPS