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