]> git.proxmox.com Git - mirror_qemu.git/blame - configure
compile common code once
[mirror_qemu.git] / configure
CommitLineData
7d13299d
FB
1#!/bin/sh
2#
3ef693a0 3# qemu configure script (c) 2003 Fabrice Bellard
7d13299d
FB
4#
5# set temporary file name
6if test ! -z "$TMPDIR" ; then
7 TMPDIR1="${TMPDIR}"
8elif test ! -z "$TEMPDIR" ; then
9 TMPDIR1="${TEMPDIR}"
10else
11 TMPDIR1="/tmp"
12fi
13
3ef693a0
FB
14TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
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
97a847bc 911
83fb7adf 912# XXX: suppress that
7d3505c5 913if [ "$bsd" = "yes" ] ; then
43003046 914 echo "#define O_LARGEFILE 0" >> $config_h
43003046 915 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
916 echo "#define _BSD 1" >> $config_h
917fi
918
c5937220
PB
919echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
920
c39e3338
PB
921tools=
922if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
923 tools="qemu-img\$(EXESUF) $tools"
924fi
925echo "TOOLS=$tools" >> $config_mak
926
15d9ca0f
TS
927test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
928
1d14ffa9 929for target in $target_list; do
97a847bc
FB
930target_dir="$target"
931config_mak=$target_dir/config.mak
932config_h=$target_dir/config.h
933target_cpu=`echo $target | cut -d '-' -f 1`
934target_bigendian="no"
808c4954 935[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1e43adfc 936[ "$target_cpu" = "sparc" ] && target_bigendian=yes
64b3ab24 937[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
992f48a0 938[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
67867308 939[ "$target_cpu" = "ppc" ] && target_bigendian=yes
d4082e95 940[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
22f8a8b3 941[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
e85e7c6e 942[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
22f8a8b3 943[ "$target_cpu" = "ppc64h" ] && target_bigendian=yes
d3258560 944[ "$target_cpu" = "mips" ] && target_bigendian=yes
540635ba 945[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
fbe4f65b 946[ "$target_cpu" = "mips64" ] && target_bigendian=yes
908f52b0 947[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
e6e5906b 948[ "$target_cpu" = "m68k" ] && target_bigendian=yes
97a847bc 949target_softmmu="no"
997344f3 950target_user_only="no"
831b7825 951target_linux_user="no"
831b7825 952target_darwin_user="no"
9e407a85
PB
953case "$target" in
954 ${target_cpu}-softmmu)
955 target_softmmu="yes"
956 ;;
957 ${target_cpu}-linux-user)
958 target_user_only="yes"
959 target_linux_user="yes"
960 ;;
961 ${target_cpu}-darwin-user)
962 target_user_only="yes"
963 target_darwin_user="yes"
964 ;;
965 *)
966 echo "ERROR: Target '$target' not recognised"
967 exit 1
968 ;;
969esac
831b7825 970
97ccc689 971if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 972 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 973 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 974 echo "To build QEMU without graphical output configure with --disable-gfx-check"
97ccc689
FB
975 echo "Note that this will disable all output from the virtual graphics card."
976 exit 1;
977fi
978
7c1f25b4 979#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc 980
15d9ca0f
TS
981test -f $config_h && mv $config_h ${config_h}~
982
97a847bc 983mkdir -p $target_dir
158142c2 984mkdir -p $target_dir/fpu
831b7825 985if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
69de927c
FB
986 mkdir -p $target_dir/nwfpe
987fi
a7e61ed4
FB
988if test "$target_user_only" = "no" ; then
989 mkdir -p $target_dir/slirp
990fi
69de927c 991
ec530c81
FB
992#
993# don't use ln -sf as not all "ln -sf" over write the file/link
994#
995rm -f $target_dir/Makefile
996ln -s $source_path/Makefile.target $target_dir/Makefile
997
97a847bc
FB
998
999echo "# Automatically generated by configure - do not modify" > $config_mak
1000echo "/* Automatically generated by configure - do not modify */" > $config_h
1001
de83cd02 1002
97a847bc
FB
1003echo "include ../config-host.mak" >> $config_mak
1004echo "#include \"../config-host.h\"" >> $config_h
1e43adfc 1005
e5fe0c52 1006bflt="no"
cb33da57 1007elfload32="no"
1e43adfc
FB
1008interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1009echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
97a847bc
FB
1010
1011if test "$target_cpu" = "i386" ; then
1012 echo "TARGET_ARCH=i386" >> $config_mak
1013 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1014 echo "#define TARGET_I386 1" >> $config_h
07f4ddbf 1015 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
824d560f
FB
1016 echo "#define USE_KQEMU 1" >> $config_h
1017 fi
808c4954 1018elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
97a847bc
FB
1019 echo "TARGET_ARCH=arm" >> $config_mak
1020 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1021 echo "#define TARGET_ARM 1" >> $config_h
e5fe0c52 1022 bflt="yes"
1e43adfc
FB
1023elif test "$target_cpu" = "sparc" ; then
1024 echo "TARGET_ARCH=sparc" >> $config_mak
1025 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1026 echo "#define TARGET_SPARC 1" >> $config_h
64b3ab24
FB
1027elif test "$target_cpu" = "sparc64" ; then
1028 echo "TARGET_ARCH=sparc64" >> $config_mak
1029 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1030 echo "#define TARGET_SPARC 1" >> $config_h
1031 echo "#define TARGET_SPARC64 1" >> $config_h
cb33da57 1032 elfload32="yes"
992f48a0
BS
1033elif test "$target_cpu" = "sparc32plus" ; then
1034 echo "TARGET_ARCH=sparc64" >> $config_mak
1035 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1036 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1037 echo "#define TARGET_SPARC 1" >> $config_h
1038 echo "#define TARGET_SPARC64 1" >> $config_h
1039 echo "#define TARGET_ABI32 1" >> $config_h
67867308
FB
1040elif test "$target_cpu" = "ppc" ; then
1041 echo "TARGET_ARCH=ppc" >> $config_mak
1042 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1043 echo "#define TARGET_PPC 1" >> $config_h
22f8a8b3
JM
1044elif test "$target_cpu" = "ppcemb" ; then
1045 echo "TARGET_ARCH=ppcemb" >> $config_mak
e85e7c6e 1046 echo "TARGET_ABI_DIR=ppc" >> $config_mak
22f8a8b3
JM
1047 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1048 echo "#define TARGET_PPC 1" >> $config_h
1049 echo "#define TARGET_PPCEMB 1" >> $config_h
a2458627
FB
1050elif test "$target_cpu" = "ppc64" ; then
1051 echo "TARGET_ARCH=ppc64" >> $config_mak
1052 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
f85e9a68 1053 echo "TARGET_ABI_DIR=ppc" >> $config_mak
a2458627
FB
1054 echo "#define TARGET_PPC 1" >> $config_h
1055 echo "#define TARGET_PPC64 1" >> $config_h
e85e7c6e
JM
1056elif test "$target_cpu" = "ppc64abi32" ; then
1057 echo "TARGET_ARCH=ppc64" >> $config_mak
1058 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1059 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1060 echo "#define TARGET_PPC 1" >> $config_h
1061 echo "#define TARGET_PPC64 1" >> $config_h
1062 echo "#define TARGET_ABI32 1" >> $config_h
22f8a8b3
JM
1063elif test "$target_cpu" = "ppc64h" ; then
1064 echo "TARGET_ARCH=ppc64h" >> $config_mak
1065 echo "#define TARGET_ARCH \"ppc64h\"" >> $config_h
f85e9a68 1066 echo "TARGET_ABI_DIR=ppc" >> $config_mak
d4082e95 1067 echo "#define TARGET_PPC 1" >> $config_h
22f8a8b3
JM
1068 echo "#define TARGET_PPC64 1" >> $config_h
1069 echo "#define TARGET_PPC64H 1" >> $config_h
0b0babc6
FB
1070elif test "$target_cpu" = "x86_64" ; then
1071 echo "TARGET_ARCH=x86_64" >> $config_mak
1072 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1073 echo "#define TARGET_I386 1" >> $config_h
1074 echo "#define TARGET_X86_64 1" >> $config_h
07f4ddbf
FB
1075 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1076 echo "#define USE_KQEMU 1" >> $config_h
1077 fi
c20eb473 1078elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
d3258560
FB
1079 echo "TARGET_ARCH=mips" >> $config_mak
1080 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1081 echo "#define TARGET_MIPS 1" >> $config_h
540635ba
TS
1082elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1083 echo "TARGET_ARCH=mipsn32" >> $config_mak
1084 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1085 echo "#define TARGET_MIPS 1" >> $config_h
1086 echo "#define TARGET_MIPSN32 1" >> $config_h
fbe4f65b
TS
1087elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1088 echo "TARGET_ARCH=mips64" >> $config_mak
1089 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1090 echo "#define TARGET_MIPS 1" >> $config_h
1091 echo "#define TARGET_MIPS64 1" >> $config_h
e7daa605
TS
1092elif test "$target_cpu" = "cris" ; then
1093 echo "TARGET_ARCH=cris" >> $config_mak
1094 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1095 echo "#define TARGET_CRIS 1" >> $config_h
1096 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1097 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
908f52b0 1098elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
fdf9b3e8
FB
1099 echo "TARGET_ARCH=sh4" >> $config_mak
1100 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1101 echo "#define TARGET_SH4 1" >> $config_h
4dbed897 1102 bflt="yes"
e6e5906b
PB
1103elif test "$target_cpu" = "m68k" ; then
1104 echo "TARGET_ARCH=m68k" >> $config_mak
1105 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1106 echo "#define TARGET_M68K 1" >> $config_h
1107 bflt="yes"
cf6c1b16
JM
1108elif test "$target_cpu" = "alpha" ; then
1109 echo "TARGET_ARCH=alpha" >> $config_mak
1110 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1111 echo "#define TARGET_ALPHA 1" >> $config_h
de83cd02
FB
1112else
1113 echo "Unsupported target CPU"
1114 exit 1
1115fi
1116if test "$target_bigendian" = "yes" ; then
97a847bc
FB
1117 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1118 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 1119fi
97a847bc
FB
1120if test "$target_softmmu" = "yes" ; then
1121 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1122 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 1123fi
997344f3
FB
1124if test "$target_user_only" = "yes" ; then
1125 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1126 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1127fi
831b7825
TS
1128if test "$target_linux_user" = "yes" ; then
1129 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1130 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1131fi
1132if test "$target_darwin_user" = "yes" ; then
1133 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1134 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1135fi
97a847bc 1136
992f48a0 1137if 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
1138 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1139 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1140fi
e5fe0c52
PB
1141if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1142 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1143 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1144fi
cb33da57
BS
1145# 32 bit ELF loader in addition to native 64 bit loader?
1146if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1147 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1148 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1149fi
7c1f25b4
FB
1150# sdl defines
1151
1152if test "$target_user_only" = "no"; then
1153 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
dbb2c921 1154 sdl1=$sdl_static
7c1f25b4 1155 else
dbb2c921
FB
1156 sdl1=$sdl
1157 fi
1158 if test "$sdl1" = "yes" ; then
1159 echo "#define CONFIG_SDL 1" >> $config_h
1160 echo "CONFIG_SDL=yes" >> $config_mak
1161 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1162 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1163 else
7c1f25b4
FB
1164 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1165 fi
dbb2c921 1166 if [ "${aa}" = "yes" ] ; then
b1a550a0
PB
1167 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1168 else
1169 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
dbb2c921 1170 fi
7c1f25b4 1171 fi
7c1f25b4
FB
1172fi
1173
5b0753e0
FB
1174if test "$cocoa" = "yes" ; then
1175 echo "#define CONFIG_COCOA 1" >> $config_h
1176 echo "CONFIG_COCOA=yes" >> $config_mak
1177fi
1178
15d9ca0f
TS
1179test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1180
97a847bc 1181done # for target in $targets
7d13299d
FB
1182
1183# build tree in object directory if source path is different from current one
1184if test "$source_path_used" = "yes" ; then
e7daa605 1185 DIRS="tests tests/cris"
7d13299d 1186 FILES="Makefile tests/Makefile"
e7daa605 1187 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
7d13299d
FB
1188 for dir in $DIRS ; do
1189 mkdir -p $dir
1190 done
ec530c81 1191 # remove the link and recreate it, as not all "ln -sf" overwrite the link
7d13299d 1192 for f in $FILES ; do
ec530c81
FB
1193 rm -f $f
1194 ln -s $source_path/$f $f
7d13299d
FB
1195 done
1196fi
7d13299d 1197
97a847bc 1198rm -f $TMPO $TMPC $TMPE $TMPS