]> Git Repo - qemu.git/blame - configure
Fix segfault with -nographic, by Enache Adrian.
[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
PB
25gcc3_search="yes"
26gcc3_list="gcc-3.4 gcc34 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 ;;
fb3e5849
FB
53 s390)
54 cpu="s390"
55 ;;
94ac5158 56 sparc|sun4[muv])
ae228531
FB
57 cpu="sparc"
58 ;;
59 sparc64)
60 cpu="sparc64"
61 ;;
a8baa8c5
FB
62 ia64)
63 cpu="ia64"
64 ;;
38e584a0
FB
65 m68k)
66 cpu="m68k"
67 ;;
bc51c5c9 68 x86_64|amd64)
0b0babc6 69 cpu="x86_64"
bc51c5c9 70 ;;
7d13299d
FB
71 *)
72 cpu="unknown"
73 ;;
74esac
75gprof="no"
76bigendian="no"
67b915a5
FB
77mingw32="no"
78EXESUF=""
79gdbstub="yes"
443f1376 80slirp="yes"
fb065187
FB
81adlib="no"
82oss="no"
1d14ffa9
FB
83dsound="no"
84coreaudio="no"
85alsa="no"
102a52e4
FB
86fmod="no"
87fmod_lib=""
88fmod_inc=""
b1a550a0 89bsd="no"
5327cf48 90linux="no"
c9ec1fe4 91kqemu="no"
05c2a3e7 92profiler="no"
5b0753e0 93cocoa="no"
97ccc689 94check_gfx="yes"
1aff381f 95check_gcc="yes"
0a8e90f4 96softmmu="yes"
831b7825
TS
97linux_user="no"
98darwin_user="no"
cc8ae6de 99build_docs="no"
c5937220 100uname_release=""
7d13299d
FB
101
102# OS specific
103targetos=`uname -s`
104case $targetos in
c326e0af
FB
105CYGWIN*)
106mingw32="yes"
6f30fa85 107OS_CFLAGS="-mno-cygwin"
c326e0af 108;;
67b915a5
FB
109MINGW32*)
110mingw32="yes"
111;;
7d3505c5
FB
112FreeBSD)
113bsd="yes"
fb065187 114oss="yes"
e99f9060 115if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
07f4ddbf
FB
116 kqemu="yes"
117fi
7d3505c5
FB
118;;
119NetBSD)
120bsd="yes"
fb065187 121oss="yes"
7d3505c5
FB
122;;
123OpenBSD)
124bsd="yes"
fb065187 125oss="yes"
7d3505c5 126;;
83fb7adf
FB
127Darwin)
128bsd="yes"
129darwin="yes"
831b7825 130darwin_user="yes"
fd677642
TS
131cocoa="yes"
132coreaudio="yes"
6f30fa85 133OS_CFLAGS="-mdynamic-no-pic"
83fb7adf 134;;
ec530c81 135SunOS)
c2b84fab
TS
136 solaris="yes"
137 make="gmake"
138 install="ginstall"
139 solarisrev=`uname -r | cut -f2 -d.`
140 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
141 if test "$solarisrev" -ge 10 ; then
142 kqemu="yes"
143 fi
86b2bd93
TS
144 fi
145;;
1d14ffa9 146*)
fb065187 147oss="yes"
5327cf48 148linux="yes"
831b7825 149linux_user="yes"
07f4ddbf 150if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
c9ec1fe4
FB
151 kqemu="yes"
152fi
fb065187 153;;
7d13299d
FB
154esac
155
7d3505c5 156if [ "$bsd" = "yes" ] ; then
b1a550a0 157 if [ "$darwin" != "yes" ] ; then
83fb7adf
FB
158 make="gmake"
159 fi
7d3505c5
FB
160fi
161
0fa1bcb7 162if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
70956b77
TS
163 AIOLIBS=
164else
165 AIOLIBS="-lrt"
166fi
167
7d13299d 168# find source path
ad064840
PB
169source_path=`dirname "$0"`
170if [ -z "$source_path" ]; then
7d13299d 171 source_path=`pwd`
ad064840
PB
172else
173 source_path=`cd "$source_path"; pwd`
174fi
175if test "$source_path" = `pwd` ; then
7d13299d 176 source_path_used="no"
ad064840
PB
177else
178 source_path_used="yes"
7d13299d
FB
179fi
180
181for opt do
a46e4035 182 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
7d13299d 183 case "$opt" in
2efc3265
FB
184 --help|-h) show_help=yes
185 ;;
b1a550a0 186 --prefix=*) prefix="$optarg"
7d13299d 187 ;;
b1a550a0 188 --interp-prefix=*) interp_prefix="$optarg"
32ce6337 189 ;;
b1a550a0 190 --source-path=*) source_path="$optarg"
ad064840 191 source_path_used="yes"
7d13299d 192 ;;
b1a550a0 193 --cross-prefix=*) cross_prefix="$optarg"
7d13299d 194 ;;
b1a550a0 195 --cc=*) cc="$optarg"
328a4240 196 gcc3_search="no"
7d13299d 197 ;;
b1a550a0 198 --host-cc=*) host_cc="$optarg"
83469015 199 ;;
b1a550a0 200 --make=*) make="$optarg"
7d13299d 201 ;;
6a882643
PB
202 --install=*) install="$optarg"
203 ;;
b1a550a0 204 --extra-cflags=*) CFLAGS="$optarg"
7d13299d 205 ;;
b1a550a0 206 --extra-ldflags=*) LDFLAGS="$optarg"
7d13299d 207 ;;
b1a550a0 208 --cpu=*) cpu="$optarg"
7d13299d 209 ;;
b1a550a0 210 --target-list=*) target_list="$optarg"
de83cd02 211 ;;
7d13299d
FB
212 --enable-gprof) gprof="yes"
213 ;;
43ce4dfe
FB
214 --static) static="yes"
215 ;;
97a847bc
FB
216 --disable-sdl) sdl="no"
217 ;;
1d14ffa9
FB
218 --enable-coreaudio) coreaudio="yes"
219 ;;
220 --enable-alsa) alsa="yes"
221 ;;
222 --enable-dsound) dsound="yes"
223 ;;
102a52e4
FB
224 --enable-fmod) fmod="yes"
225 ;;
b1a550a0 226 --fmod-lib=*) fmod_lib="$optarg"
102a52e4 227 ;;
b1a550a0 228 --fmod-inc=*) fmod_inc="$optarg"
102a52e4 229 ;;
b93aebec 230 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
1d14ffa9 231 ;;
443f1376 232 --disable-slirp) slirp="no"
1d14ffa9 233 ;;
fb065187 234 --enable-adlib) adlib="yes"
1d14ffa9 235 ;;
c9ec1fe4 236 --disable-kqemu) kqemu="no"
1d14ffa9 237 ;;
05c2a3e7
FB
238 --enable-profiler) profiler="yes"
239 ;;
1d14ffa9
FB
240 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
241 ;;
97ccc689
FB
242 --disable-gfx-check) check_gfx="no"
243 ;;
1aff381f
FB
244 --disable-gcc-check) check_gcc="no"
245 ;;
cad25d69 246 --disable-system) softmmu="no"
0a8e90f4 247 ;;
cad25d69 248 --enable-system) softmmu="yes"
0a8e90f4 249 ;;
831b7825 250 --disable-linux-user) linux_user="no"
0a8e90f4 251 ;;
831b7825
TS
252 --enable-linux-user) linux_user="yes"
253 ;;
254 --disable-darwin-user) darwin_user="no"
255 ;;
256 --enable-darwin-user) darwin_user="yes"
0a8e90f4 257 ;;
c5937220
PB
258 --enable-uname-release=*) uname_release="$optarg"
259 ;;
7d13299d
FB
260 esac
261done
262
6f30fa85
TS
263# default flags for all hosts
264CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
265LDFLAGS="$LDFLAGS -g"
266
af5db58e
PB
267if test x"$show_help" = x"yes" ; then
268cat << EOF
269
270Usage: configure [options]
271Options: [defaults in brackets after descriptions]
272
273EOF
274echo "Standard options:"
275echo " --help print this message"
276echo " --prefix=PREFIX install in PREFIX [$prefix]"
277echo " --interp-prefix=PREFIX where to find shared libraries, etc."
278echo " use %M for cpu name [$interp_prefix]"
279echo " --target-list=LIST set target list [$target_list]"
280echo ""
281echo "kqemu kernel acceleration support:"
282echo " --disable-kqemu disable kqemu support"
af5db58e
PB
283echo ""
284echo "Advanced options (experts only):"
285echo " --source-path=PATH path of source code [$source_path]"
286echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
287echo " --cc=CC use C compiler CC [$cc]"
288echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
289echo " --make=MAKE use specified make [$make]"
6a882643 290echo " --install=INSTALL use specified install [$install]"
af5db58e
PB
291echo " --static enable static build [$static]"
292echo " --enable-cocoa enable COCOA (Mac OS X only)"
293echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
294echo " --enable-adlib enable Adlib emulation"
295echo " --enable-coreaudio enable Coreaudio audio driver"
296echo " --enable-alsa enable ALSA audio driver"
297echo " --enable-fmod enable FMOD audio driver"
ed5065e1 298echo " --enable-dsound enable DirectSound audio driver"
af5db58e
PB
299echo " --enable-system enable all system emulation targets"
300echo " --disable-system disable all system emulation targets"
831b7825
TS
301echo " --enable-linux-user enable all linux usermode emulation targets"
302echo " --disable-linux-user disable all linux usermode emulation targets"
303echo " --enable-darwin-user enable all darwin usermode emulation targets"
304echo " --disable-darwin-user disable all darwin usermode emulation targets"
af5db58e
PB
305echo " --fmod-lib path to FMOD library"
306echo " --fmod-inc path to FMOD includes"
c5937220 307echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
af5db58e 308echo ""
5bf08934 309echo "NOTE: The object files are built at the place where configure is launched"
af5db58e
PB
310exit 1
311fi
312
7d13299d
FB
313cc="${cross_prefix}${cc}"
314ar="${cross_prefix}${ar}"
315strip="${cross_prefix}${strip}"
316
064aae13
PB
317# check that the C compiler works.
318cat > $TMPC <<EOF
319int main(void) {}
320EOF
321
cf257238 322if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
064aae13
PB
323 : C compiler works ok
324else
325 echo "ERROR: \"$cc\" either does not exist or does not work"
326 exit 1
a7350fa1
FB
327fi
328
67b915a5 329if test "$mingw32" = "yes" ; then
5327cf48 330 linux="no"
67b915a5 331 EXESUF=".exe"
9f059eca 332 oss="no"
07f4ddbf
FB
333 if [ "$cpu" = "i386" ] ; then
334 kqemu="yes"
335 fi
67b915a5
FB
336fi
337
328a4240
PB
338# Check for gcc4, error if pre-gcc4
339if test "$check_gcc" = "yes" ; then
340 cat > $TMPC <<EOF
341#if __GNUC__ < 4
342#error gcc3
343#endif
344int main(){return 0;}
345EOF
346 check_cc() {
cf257238 347 which "$1" 2> /dev/null
328a4240
PB
348 return $?
349 }
350
cf257238 351 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
328a4240
PB
352 echo "WARNING: \"$cc\" looks like gcc 4.x"
353 found_compat_cc="no"
354 if test "$gcc3_search" = "yes" ; then
355 echo "Looking for gcc 3.x"
356 for compat_cc in $gcc3_list ; do
1124426a 357 if check_cc "$cross_prefix$compat_cc" ; then
328a4240 358 echo "Found \"$compat_cc\""
1124426a 359 cc="$cross_prefix$compat_cc"
328a4240
PB
360 found_compat_cc="yes"
361 break
362 fi
363 done
364 if test "$found_compat_cc" = "no" ; then
365 echo "gcc 3.x not found!"
366 fi
367 fi
368 if test "$found_compat_cc" = "no" ; then
369 echo "QEMU is known to have problems when compiled with gcc 4.x"
370 echo "It is recommended that you use gcc 3.x to build QEMU"
371 echo "To use this compiler anyway, configure with --disable-gcc-check"
372 exit 1;
373 fi
374 fi
375fi
376
ec530c81
FB
377#
378# Solaris specific configure tool chain decisions
379#
380if test "$solaris" = "yes" ; then
381 #
382 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
383 # override the check with --disable-gcc-check
384 #
385 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
386 solgcc=`which $cc`
387 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
388 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
389 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
390 echo "or get the latest patch from SunSolve for gcc"
391 exit 1
392 fi
393 fi
394 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
395 if test -z "$solinst" ; then
396 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
397 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
398 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
399 exit 1
400 fi
401 if test "$solinst" = "/usr/sbin/install" ; then
402 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
403 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
404 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
405 exit 1
406 fi
ec530c81
FB
407 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
408 if test -z "$sol_ar" ; then
409 echo "Error: No path includes ar"
410 if test -f /usr/ccs/bin/ar ; then
411 echo "Add /usr/ccs/bin to your path and rerun configure"
412 fi
413 exit 1
414 fi
415fi
416
417
5327cf48
FB
418if test -z "$target_list" ; then
419# these targets are portable
0a8e90f4 420 if [ "$softmmu" = "yes" ] ; then
36bc0bc9 421 target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu ppc64-softmmu"
0a8e90f4 422 fi
5327cf48 423# the following are Linux specific
831b7825
TS
424 if [ "$linux_user" = "yes" ] ; then
425 target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user ppc-linux-user mips-linux-user mipsel-linux-user m68k-linux-user $target_list"
426 fi
427# the following are Darwin specific
428 if [ "$darwin_user" = "yes" ] ; then
429 target_list="i386-darwin-user ppc-darwin-user $target_list"
5327cf48 430 fi
6e20a45f 431else
b1a550a0 432 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
5327cf48 433fi
0a8e90f4
PB
434if test -z "$target_list" ; then
435 echo "No targets enabled"
436 exit 1
437fi
5327cf48 438
7d13299d
FB
439if test -z "$cross_prefix" ; then
440
441# ---
442# big/little endian test
443cat > $TMPC << EOF
444#include <inttypes.h>
445int main(int argc, char ** argv){
1d14ffa9
FB
446 volatile uint32_t i=0x01234567;
447 return (*((uint8_t*)(&i))) == 0x67;
7d13299d
FB
448}
449EOF
450
cf257238 451if $cc -o $TMPE $TMPC 2> /dev/null ; then
7d13299d
FB
452$TMPE && bigendian="yes"
453else
454echo big/little test failed
455fi
456
457else
458
459# if cross compiling, cannot launch a program, so make a static guess
808c4954 460if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
7d13299d
FB
461 bigendian="yes"
462fi
463
464fi
465
b6853697
FB
466# host long bits test
467hostlongbits="32"
468if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
469 hostlongbits="64"
470fi
471
e8cd23de 472# check gcc options support
04369ff2
FB
473cat > $TMPC <<EOF
474int main(void) {
04369ff2
FB
475}
476EOF
477
11d9f695
FB
478##########################################
479# SDL probe
480
481sdl_too_old=no
482
483if test -z "$sdl" ; then
484
a6e022ad
FB
485sdl_config="sdl-config"
486sdl=no
7c1f25b4 487sdl_static=no
a6e022ad
FB
488
489if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
490# win32 cross compilation case
491 sdl_config="i386-mingw32msvc-sdl-config"
492 sdl=yes
493else
494# normal SDL probe
11d9f695
FB
495cat > $TMPC << EOF
496#include <SDL.h>
497#undef main /* We don't want SDL to override our main() */
498int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
499EOF
500
a6e022ad
FB
501if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
502_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
11d9f695
FB
503if test "$_sdlversion" -lt 121 ; then
504sdl_too_old=yes
505else
fd677642
TS
506 if test "$cocoa" = "no" ; then
507 sdl=yes
508 fi
11d9f695 509fi
7c1f25b4
FB
510
511# static link with sdl ?
512if test "$sdl" = "yes" ; then
513aa="no"
514`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
515sdl_static_libs=`$sdl_config --static-libs`
516if [ "$aa" = "yes" ] ; then
d8d8aa4e 517 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
7c1f25b4
FB
518fi
519
520if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
521 sdl_static=yes
11d9f695
FB
522fi
523
7c1f25b4
FB
524fi # static link
525
526fi # sdl compile test
527
a6e022ad 528fi # cross compilation
fd677642
TS
529
530else
531 # Make sure to disable cocoa if sdl was set
532 if test "$sdl" = "yes" ; then
533 cocoa="no"
534 coreaudio="no"
535 fi
a6e022ad 536fi # -z $sdl
11d9f695 537
8f28f3fb
TS
538##########################################
539# alsa sound support libraries
540
541if test "$alsa" = "yes" ; then
542 cat > $TMPC << EOF
543#include <alsa/asoundlib.h>
544int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
545EOF
546 if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
547 :
548 else
549 echo
550 echo "Error: Could not find alsa"
551 echo "Make sure to have the alsa libs and headers installed."
552 echo
553 exit 1
554 fi
555fi
556
cc8ae6de 557# Check if tools are available to build documentation.
94ac5158 558if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
cc8ae6de
PB
559 build_docs="yes"
560fi
561
11d9f695 562if test "$mingw32" = "yes" ; then
308c3593
PB
563 if test -z "$prefix" ; then
564 prefix="/c/Program Files/Qemu"
565 fi
566 mansuffix=""
567 datasuffix=""
568 docsuffix=""
569 binsuffix=""
11d9f695 570else
308c3593
PB
571 if test -z "$prefix" ; then
572 prefix="/usr/local"
573 fi
574 mansuffix="/share/man"
575 datasuffix="/share/qemu"
576 docsuffix="/share/doc/qemu"
577 binsuffix="/bin"
11d9f695 578fi
5a67135a 579
43ce4dfe 580echo "Install prefix $prefix"
308c3593
PB
581echo "BIOS directory $prefix$datasuffix"
582echo "binary directory $prefix$binsuffix"
11d9f695 583if test "$mingw32" = "no" ; then
308c3593 584echo "Manual directory $prefix$mansuffix"
43ce4dfe 585echo "ELF interp prefix $interp_prefix"
11d9f695 586fi
5a67135a 587echo "Source path $source_path"
43ce4dfe 588echo "C compiler $cc"
83469015 589echo "Host C compiler $host_cc"
43ce4dfe 590echo "make $make"
6a882643 591echo "install $install"
43ce4dfe 592echo "host CPU $cpu"
de83cd02 593echo "host big endian $bigendian"
97a847bc 594echo "target list $target_list"
43ce4dfe 595echo "gprof enabled $gprof"
05c2a3e7 596echo "profiler $profiler"
43ce4dfe 597echo "static build $static"
5b0753e0
FB
598if test "$darwin" = "yes" ; then
599 echo "Cocoa support $cocoa"
600fi
97a847bc 601echo "SDL support $sdl"
e4afee97
FB
602if test "$sdl" != "no" ; then
603 echo "SDL static link $sdl_static"
604fi
67b915a5 605echo "mingw32 support $mingw32"
fb065187 606echo "Adlib support $adlib"
1d14ffa9
FB
607echo "CoreAudio support $coreaudio"
608echo "ALSA support $alsa"
609echo "DSound support $dsound"
1d14ffa9
FB
610if test "$fmod" = "yes"; then
611 if test -z $fmod_lib || test -z $fmod_inc; then
612 echo
613 echo "Error: You must specify path to FMOD library and headers"
614 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
615 echo
616 exit 1
617 fi
b1a550a0
PB
618 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
619else
620 fmod_support=""
102a52e4 621fi
b1a550a0 622echo "FMOD support $fmod $fmod_support"
07f4ddbf 623echo "kqemu support $kqemu"
cc8ae6de 624echo "Documentation $build_docs"
c5937220
PB
625[ ! -z "$uname_release" ] && \
626echo "uname -r $uname_release"
67b915a5 627
97a847bc 628if test $sdl_too_old = "yes"; then
24b55b96 629echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 630fi
24b55b96
FB
631#if test "$sdl_static" = "no"; then
632# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
633#fi
97a847bc
FB
634config_mak="config-host.mak"
635config_h="config-host.h"
7d13299d 636
7c1f25b4 637#echo "Creating $config_mak and $config_h"
7d13299d 638
97a847bc 639echo "# Automatically generated by configure - do not modify" > $config_mak
29517134 640echo "# Configured with: $0 $@" >> $config_mak
97a847bc 641echo "/* Automatically generated by configure - do not modify */" > $config_h
7d13299d 642
97a847bc 643echo "prefix=$prefix" >> $config_mak
308c3593
PB
644echo "bindir=\${prefix}$binsuffix" >> $config_mak
645echo "mandir=\${prefix}$mansuffix" >> $config_mak
646echo "datadir=\${prefix}$datasuffix" >> $config_mak
4ad5b06d 647echo "docdir=\${prefix}$docsuffix" >> $config_mak
308c3593 648echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
97a847bc 649echo "MAKE=$make" >> $config_mak
6a882643 650echo "INSTALL=$install" >> $config_mak
97a847bc 651echo "CC=$cc" >> $config_mak
97a847bc
FB
652echo "HOST_CC=$host_cc" >> $config_mak
653echo "AR=$ar" >> $config_mak
654echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
6f30fa85 655echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
97a847bc
FB
656echo "CFLAGS=$CFLAGS" >> $config_mak
657echo "LDFLAGS=$LDFLAGS" >> $config_mak
67b915a5 658echo "EXESUF=$EXESUF" >> $config_mak
70956b77 659echo "AIOLIBS=$AIOLIBS" >> $config_mak
97a847bc
FB
660if test "$cpu" = "i386" ; then
661 echo "ARCH=i386" >> $config_mak
662 echo "#define HOST_I386 1" >> $config_h
0b0babc6
FB
663elif test "$cpu" = "x86_64" ; then
664 echo "ARCH=x86_64" >> $config_mak
665 echo "#define HOST_X86_64 1" >> $config_h
808c4954
FB
666elif test "$cpu" = "armv4b" ; then
667 echo "ARCH=arm" >> $config_mak
668 echo "#define HOST_ARM 1" >> $config_h
7d13299d 669elif test "$cpu" = "armv4l" ; then
97a847bc
FB
670 echo "ARCH=arm" >> $config_mak
671 echo "#define HOST_ARM 1" >> $config_h
7d13299d 672elif test "$cpu" = "powerpc" ; then
97a847bc
FB
673 echo "ARCH=ppc" >> $config_mak
674 echo "#define HOST_PPC 1" >> $config_h
7d13299d 675elif test "$cpu" = "mips" ; then
97a847bc
FB
676 echo "ARCH=mips" >> $config_mak
677 echo "#define HOST_MIPS 1" >> $config_h
fb3e5849 678elif test "$cpu" = "s390" ; then
97a847bc
FB
679 echo "ARCH=s390" >> $config_mak
680 echo "#define HOST_S390 1" >> $config_h
295defa5 681elif test "$cpu" = "alpha" ; then
97a847bc
FB
682 echo "ARCH=alpha" >> $config_mak
683 echo "#define HOST_ALPHA 1" >> $config_h
ae228531 684elif test "$cpu" = "sparc" ; then
97a847bc
FB
685 echo "ARCH=sparc" >> $config_mak
686 echo "#define HOST_SPARC 1" >> $config_h
ae228531 687elif test "$cpu" = "sparc64" ; then
97a847bc
FB
688 echo "ARCH=sparc64" >> $config_mak
689 echo "#define HOST_SPARC64 1" >> $config_h
a8baa8c5 690elif test "$cpu" = "ia64" ; then
97a847bc
FB
691 echo "ARCH=ia64" >> $config_mak
692 echo "#define HOST_IA64 1" >> $config_h
38e584a0 693elif test "$cpu" = "m68k" ; then
38ca2abc
FB
694 echo "ARCH=m68k" >> $config_mak
695 echo "#define HOST_M68K 1" >> $config_h
7d13299d
FB
696else
697 echo "Unsupported CPU"
698 exit 1
699fi
700if test "$bigendian" = "yes" ; then
97a847bc
FB
701 echo "WORDS_BIGENDIAN=yes" >> $config_mak
702 echo "#define WORDS_BIGENDIAN 1" >> $config_h
703fi
b6853697 704echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
67b915a5
FB
705if test "$mingw32" = "yes" ; then
706 echo "CONFIG_WIN32=yes" >> $config_mak
11d9f695 707 echo "#define CONFIG_WIN32 1" >> $config_h
210fa556
PB
708else
709 cat > $TMPC << EOF
710#include <byteswap.h>
711int main(void) { return bswap_32(0); }
712EOF
713 if $cc -o $TMPE $TMPC 2> /dev/null ; then
714 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
715 fi
67b915a5 716fi
83fb7adf
FB
717if test "$darwin" = "yes" ; then
718 echo "CONFIG_DARWIN=yes" >> $config_mak
719 echo "#define CONFIG_DARWIN 1" >> $config_h
720fi
ec530c81
FB
721if test "$solaris" = "yes" ; then
722 echo "CONFIG_SOLARIS=yes" >> $config_mak
38cfa06c 723 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ec530c81 724fi
67b915a5
FB
725if test "$gdbstub" = "yes" ; then
726 echo "CONFIG_GDBSTUB=yes" >> $config_mak
727 echo "#define CONFIG_GDBSTUB 1" >> $config_h
728fi
97a847bc
FB
729if test "$gprof" = "yes" ; then
730 echo "TARGET_GPROF=yes" >> $config_mak
731 echo "#define HAVE_GPROF 1" >> $config_h
732fi
733if test "$static" = "yes" ; then
734 echo "CONFIG_STATIC=yes" >> $config_mak
50863472 735 echo "#define CONFIG_STATIC 1" >> $config_h
7d13299d 736fi
05c2a3e7
FB
737if test $profiler = "yes" ; then
738 echo "#define CONFIG_PROFILER 1" >> $config_h
739fi
c20709aa
FB
740if test "$slirp" = "yes" ; then
741 echo "CONFIG_SLIRP=yes" >> $config_mak
742 echo "#define CONFIG_SLIRP 1" >> $config_h
743fi
fb065187
FB
744if test "$adlib" = "yes" ; then
745 echo "CONFIG_ADLIB=yes" >> $config_mak
746 echo "#define CONFIG_ADLIB 1" >> $config_h
747fi
748if test "$oss" = "yes" ; then
749 echo "CONFIG_OSS=yes" >> $config_mak
750 echo "#define CONFIG_OSS 1" >> $config_h
751fi
1d14ffa9
FB
752if test "$coreaudio" = "yes" ; then
753 echo "CONFIG_COREAUDIO=yes" >> $config_mak
754 echo "#define CONFIG_COREAUDIO 1" >> $config_h
755fi
756if test "$alsa" = "yes" ; then
757 echo "CONFIG_ALSA=yes" >> $config_mak
758 echo "#define CONFIG_ALSA 1" >> $config_h
759fi
760if test "$dsound" = "yes" ; then
761 echo "CONFIG_DSOUND=yes" >> $config_mak
762 echo "#define CONFIG_DSOUND 1" >> $config_h
763fi
102a52e4
FB
764if test "$fmod" = "yes" ; then
765 echo "CONFIG_FMOD=yes" >> $config_mak
766 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
767 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
768 echo "#define CONFIG_FMOD 1" >> $config_h
769fi
b1a550a0
PB
770qemu_version=`head $source_path/VERSION`
771echo "VERSION=$qemu_version" >>$config_mak
d4b8f039 772echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
97a847bc
FB
773
774echo "SRC_PATH=$source_path" >> $config_mak
ad064840
PB
775if [ "$source_path_used" = "yes" ]; then
776 echo "VPATH=$source_path" >> $config_mak
777fi
97a847bc 778echo "TARGET_DIRS=$target_list" >> $config_mak
cc8ae6de
PB
779if [ "$build_docs" = "yes" ] ; then
780 echo "BUILD_DOCS=yes" >> $config_mak
781fi
97a847bc 782
83fb7adf 783# XXX: suppress that
7d3505c5 784if [ "$bsd" = "yes" ] ; then
43003046 785 echo "#define O_LARGEFILE 0" >> $config_h
43003046 786 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
787 echo "#define _BSD 1" >> $config_h
788fi
789
c5937220
PB
790echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
791
1d14ffa9 792for target in $target_list; do
97a847bc
FB
793target_dir="$target"
794config_mak=$target_dir/config.mak
795config_h=$target_dir/config.h
796target_cpu=`echo $target | cut -d '-' -f 1`
797target_bigendian="no"
808c4954 798[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1e43adfc 799[ "$target_cpu" = "sparc" ] && target_bigendian=yes
64b3ab24 800[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
67867308 801[ "$target_cpu" = "ppc" ] && target_bigendian=yes
a2458627 802[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
d3258560 803[ "$target_cpu" = "mips" ] && target_bigendian=yes
908f52b0 804[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
e6e5906b 805[ "$target_cpu" = "m68k" ] && target_bigendian=yes
97a847bc
FB
806target_softmmu="no"
807if expr $target : '.*-softmmu' > /dev/null ; then
808 target_softmmu="yes"
809fi
997344f3
FB
810target_user_only="no"
811if expr $target : '.*-user' > /dev/null ; then
812 target_user_only="yes"
813fi
97a847bc 814
831b7825
TS
815target_linux_user="no"
816if expr $target : '.*-linux-user' > /dev/null ; then
817 target_linux_user="yes"
818fi
819
820target_darwin_user="no"
821if expr $target : '.*-darwin-user' > /dev/null ; then
822 target_darwin_user="yes"
823fi
824
97ccc689 825if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 826 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 827 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 828 echo "To build QEMU without graphical output configure with --disable-gfx-check"
97ccc689
FB
829 echo "Note that this will disable all output from the virtual graphics card."
830 exit 1;
831fi
832
7c1f25b4 833#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc
FB
834
835mkdir -p $target_dir
158142c2 836mkdir -p $target_dir/fpu
831b7825 837if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
69de927c
FB
838 mkdir -p $target_dir/nwfpe
839fi
a7e61ed4
FB
840if test "$target_user_only" = "no" ; then
841 mkdir -p $target_dir/slirp
842fi
69de927c 843
ec530c81
FB
844#
845# don't use ln -sf as not all "ln -sf" over write the file/link
846#
847rm -f $target_dir/Makefile
848ln -s $source_path/Makefile.target $target_dir/Makefile
849
97a847bc
FB
850
851echo "# Automatically generated by configure - do not modify" > $config_mak
852echo "/* Automatically generated by configure - do not modify */" > $config_h
853
de83cd02 854
97a847bc
FB
855echo "include ../config-host.mak" >> $config_mak
856echo "#include \"../config-host.h\"" >> $config_h
1e43adfc 857
e5fe0c52 858bflt="no"
1e43adfc
FB
859interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
860echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
97a847bc
FB
861
862if test "$target_cpu" = "i386" ; then
863 echo "TARGET_ARCH=i386" >> $config_mak
864 echo "#define TARGET_ARCH \"i386\"" >> $config_h
865 echo "#define TARGET_I386 1" >> $config_h
07f4ddbf 866 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
824d560f
FB
867 echo "#define USE_KQEMU 1" >> $config_h
868 fi
808c4954 869elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
97a847bc
FB
870 echo "TARGET_ARCH=arm" >> $config_mak
871 echo "#define TARGET_ARCH \"arm\"" >> $config_h
872 echo "#define TARGET_ARM 1" >> $config_h
e5fe0c52 873 bflt="yes"
1e43adfc
FB
874elif test "$target_cpu" = "sparc" ; then
875 echo "TARGET_ARCH=sparc" >> $config_mak
876 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
877 echo "#define TARGET_SPARC 1" >> $config_h
64b3ab24
FB
878elif test "$target_cpu" = "sparc64" ; then
879 echo "TARGET_ARCH=sparc64" >> $config_mak
880 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
881 echo "#define TARGET_SPARC 1" >> $config_h
882 echo "#define TARGET_SPARC64 1" >> $config_h
67867308
FB
883elif test "$target_cpu" = "ppc" ; then
884 echo "TARGET_ARCH=ppc" >> $config_mak
885 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
886 echo "#define TARGET_PPC 1" >> $config_h
a2458627
FB
887elif test "$target_cpu" = "ppc64" ; then
888 echo "TARGET_ARCH=ppc64" >> $config_mak
889 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
890 echo "#define TARGET_PPC 1" >> $config_h
891 echo "#define TARGET_PPC64 1" >> $config_h
0b0babc6
FB
892elif test "$target_cpu" = "x86_64" ; then
893 echo "TARGET_ARCH=x86_64" >> $config_mak
894 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
895 echo "#define TARGET_I386 1" >> $config_h
896 echo "#define TARGET_X86_64 1" >> $config_h
07f4ddbf
FB
897 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
898 echo "#define USE_KQEMU 1" >> $config_h
899 fi
c20eb473 900elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
d3258560
FB
901 echo "TARGET_ARCH=mips" >> $config_mak
902 echo "#define TARGET_ARCH \"mips\"" >> $config_h
903 echo "#define TARGET_MIPS 1" >> $config_h
6ea83fed
FB
904 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
905 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
908f52b0 906elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
fdf9b3e8
FB
907 echo "TARGET_ARCH=sh4" >> $config_mak
908 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
909 echo "#define TARGET_SH4 1" >> $config_h
4dbed897 910 bflt="yes"
e6e5906b
PB
911elif test "$target_cpu" = "m68k" ; then
912 echo "TARGET_ARCH=m68k" >> $config_mak
913 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
914 echo "#define TARGET_M68K 1" >> $config_h
915 bflt="yes"
de83cd02
FB
916else
917 echo "Unsupported target CPU"
918 exit 1
919fi
920if test "$target_bigendian" = "yes" ; then
97a847bc
FB
921 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
922 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 923fi
97a847bc
FB
924if test "$target_softmmu" = "yes" ; then
925 echo "CONFIG_SOFTMMU=yes" >> $config_mak
926 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 927fi
997344f3
FB
928if test "$target_user_only" = "yes" ; then
929 echo "CONFIG_USER_ONLY=yes" >> $config_mak
930 echo "#define CONFIG_USER_ONLY 1" >> $config_h
931fi
831b7825
TS
932if test "$target_linux_user" = "yes" ; then
933 echo "CONFIG_LINUX_USER=yes" >> $config_mak
934 echo "#define CONFIG_LINUX_USER 1" >> $config_h
935fi
936if test "$target_darwin_user" = "yes" ; then
937 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
938 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
939fi
97a847bc 940
e6e5906b 941if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
158142c2
FB
942 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
943 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
944fi
e5fe0c52
PB
945if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
946 echo "TARGET_HAS_BFLT=yes" >> $config_mak
947 echo "#define TARGET_HAS_BFLT 1" >> $config_h
948fi
7c1f25b4
FB
949# sdl defines
950
951if test "$target_user_only" = "no"; then
952 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
dbb2c921 953 sdl1=$sdl_static
7c1f25b4 954 else
dbb2c921
FB
955 sdl1=$sdl
956 fi
957 if test "$sdl1" = "yes" ; then
958 echo "#define CONFIG_SDL 1" >> $config_h
959 echo "CONFIG_SDL=yes" >> $config_mak
960 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
961 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
962 else
7c1f25b4
FB
963 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
964 fi
dbb2c921 965 if [ "${aa}" = "yes" ] ; then
b1a550a0
PB
966 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
967 else
968 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
dbb2c921 969 fi
7c1f25b4 970 fi
7c1f25b4
FB
971fi
972
5b0753e0
FB
973if test "$cocoa" = "yes" ; then
974 echo "#define CONFIG_COCOA 1" >> $config_h
975 echo "CONFIG_COCOA=yes" >> $config_mak
976fi
977
97a847bc 978done # for target in $targets
7d13299d
FB
979
980# build tree in object directory if source path is different from current one
981if test "$source_path_used" = "yes" ; then
982 DIRS="tests"
983 FILES="Makefile tests/Makefile"
984 for dir in $DIRS ; do
985 mkdir -p $dir
986 done
ec530c81 987 # remove the link and recreate it, as not all "ln -sf" overwrite the link
7d13299d 988 for f in $FILES ; do
ec530c81
FB
989 rm -f $f
990 ln -s $source_path/$f $f
7d13299d
FB
991 done
992fi
7d13299d 993
97a847bc 994rm -f $TMPO $TMPC $TMPE $TMPS
This page took 0.286349 seconds and 4 git commands to generate.