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