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