]> git.proxmox.com Git - qemu.git/blame - configure
added cpu_physical_memory_write_rom()
[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"
25host_cc="gcc"
26ar="ar"
27make="make"
6a882643 28install="install"
7d13299d
FB
29strip="strip"
30cpu=`uname -m`
5327cf48 31target_list=""
7d13299d
FB
32case "$cpu" in
33 i386|i486|i586|i686|i86pc|BePC)
97a847bc 34 cpu="i386"
7d13299d 35 ;;
ba68055e 36 armv*b)
808c4954
FB
37 cpu="armv4b"
38 ;;
ba68055e 39 armv*l)
7d13299d
FB
40 cpu="armv4l"
41 ;;
42 alpha)
43 cpu="alpha"
44 ;;
295defa5 45 "Power Macintosh"|ppc|ppc64)
7d13299d
FB
46 cpu="powerpc"
47 ;;
48 mips)
49 cpu="mips"
50 ;;
fb3e5849
FB
51 s390)
52 cpu="s390"
53 ;;
ae228531
FB
54 sparc)
55 cpu="sparc"
56 ;;
57 sparc64)
58 cpu="sparc64"
59 ;;
a8baa8c5
FB
60 ia64)
61 cpu="ia64"
62 ;;
38e584a0
FB
63 m68k)
64 cpu="m68k"
65 ;;
bc51c5c9 66 x86_64|amd64)
0b0babc6 67 cpu="x86_64"
bc51c5c9 68 ;;
7d13299d
FB
69 *)
70 cpu="unknown"
71 ;;
72esac
73gprof="no"
74bigendian="no"
67b915a5
FB
75mingw32="no"
76EXESUF=""
77gdbstub="yes"
443f1376 78slirp="yes"
fb065187
FB
79adlib="no"
80oss="no"
1d14ffa9
FB
81dsound="no"
82coreaudio="no"
83alsa="no"
102a52e4
FB
84fmod="no"
85fmod_lib=""
86fmod_inc=""
b1a550a0 87bsd="no"
5327cf48 88linux="no"
c9ec1fe4 89kqemu="no"
05c2a3e7 90profiler="no"
c9ec1fe4 91kernel_path=""
5b0753e0 92cocoa="no"
97ccc689 93check_gfx="yes"
1aff381f 94check_gcc="yes"
0a8e90f4
PB
95softmmu="yes"
96user="no"
7d13299d
FB
97
98# OS specific
99targetos=`uname -s`
100case $targetos in
c326e0af
FB
101CYGWIN*)
102mingw32="yes"
103CFLAGS="-O2 -mno-cygwin"
104;;
67b915a5
FB
105MINGW32*)
106mingw32="yes"
107;;
7d3505c5
FB
108FreeBSD)
109bsd="yes"
fb065187 110oss="yes"
e99f9060 111if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
07f4ddbf
FB
112 kqemu="yes"
113fi
7d3505c5
FB
114;;
115NetBSD)
116bsd="yes"
fb065187 117oss="yes"
7d3505c5
FB
118;;
119OpenBSD)
120bsd="yes"
fb065187 121oss="yes"
7d3505c5 122;;
83fb7adf
FB
123Darwin)
124bsd="yes"
125darwin="yes"
126;;
1d14ffa9 127*)
fb065187 128oss="yes"
5327cf48 129linux="yes"
0a8e90f4 130user="yes"
07f4ddbf 131if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
c9ec1fe4
FB
132 kqemu="yes"
133fi
fb065187 134;;
7d13299d
FB
135esac
136
7d3505c5 137if [ "$bsd" = "yes" ] ; then
b1a550a0 138 if [ "$darwin" != "yes" ] ; then
83fb7adf
FB
139 make="gmake"
140 fi
7d3505c5
FB
141fi
142
7d13299d 143# find source path
ad064840
PB
144source_path=`dirname "$0"`
145if [ -z "$source_path" ]; then
7d13299d 146 source_path=`pwd`
ad064840
PB
147else
148 source_path=`cd "$source_path"; pwd`
149fi
150if test "$source_path" = `pwd` ; then
7d13299d 151 source_path_used="no"
ad064840
PB
152else
153 source_path_used="yes"
7d13299d
FB
154fi
155
156for opt do
b1a550a0 157 optarg=`expr "$opt" : '[^=]*=\(.*\)'`
7d13299d 158 case "$opt" in
2efc3265
FB
159 --help|-h) show_help=yes
160 ;;
b1a550a0 161 --prefix=*) prefix="$optarg"
7d13299d 162 ;;
b1a550a0 163 --interp-prefix=*) interp_prefix="$optarg"
32ce6337 164 ;;
b1a550a0 165 --source-path=*) source_path="$optarg"
ad064840 166 source_path_used="yes"
7d13299d 167 ;;
b1a550a0 168 --cross-prefix=*) cross_prefix="$optarg"
7d13299d 169 ;;
b1a550a0 170 --cc=*) cc="$optarg"
7d13299d 171 ;;
b1a550a0 172 --host-cc=*) host_cc="$optarg"
83469015 173 ;;
b1a550a0 174 --make=*) make="$optarg"
7d13299d 175 ;;
6a882643
PB
176 --install=*) install="$optarg"
177 ;;
b1a550a0 178 --extra-cflags=*) CFLAGS="$optarg"
7d13299d 179 ;;
b1a550a0 180 --extra-ldflags=*) LDFLAGS="$optarg"
7d13299d 181 ;;
b1a550a0 182 --cpu=*) cpu="$optarg"
7d13299d 183 ;;
b1a550a0 184 --target-list=*) target_list="$optarg"
de83cd02 185 ;;
7d13299d
FB
186 --enable-gprof) gprof="yes"
187 ;;
43ce4dfe
FB
188 --static) static="yes"
189 ;;
97a847bc
FB
190 --disable-sdl) sdl="no"
191 ;;
1d14ffa9
FB
192 --enable-coreaudio) coreaudio="yes"
193 ;;
194 --enable-alsa) alsa="yes"
195 ;;
196 --enable-dsound) dsound="yes"
197 ;;
102a52e4
FB
198 --enable-fmod) fmod="yes"
199 ;;
b1a550a0 200 --fmod-lib=*) fmod_lib="$optarg"
102a52e4 201 ;;
b1a550a0 202 --fmod-inc=*) fmod_inc="$optarg"
102a52e4 203 ;;
67b915a5 204 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
1d14ffa9 205 ;;
443f1376 206 --disable-slirp) slirp="no"
1d14ffa9 207 ;;
fb065187 208 --enable-adlib) adlib="yes"
1d14ffa9 209 ;;
c9ec1fe4 210 --disable-kqemu) kqemu="no"
1d14ffa9 211 ;;
05c2a3e7
FB
212 --enable-profiler) profiler="yes"
213 ;;
b1a550a0 214 --kernel-path=*) kernel_path="$optarg"
1d14ffa9
FB
215 ;;
216 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
217 ;;
97ccc689
FB
218 --disable-gfx-check) check_gfx="no"
219 ;;
1aff381f
FB
220 --disable-gcc-check) check_gcc="no"
221 ;;
cad25d69 222 --disable-system) softmmu="no"
0a8e90f4 223 ;;
cad25d69 224 --enable-system) softmmu="yes"
0a8e90f4
PB
225 ;;
226 --disable-user) user="no"
227 ;;
228 --enable-user) user="yes"
229 ;;
7d13299d
FB
230 esac
231done
232
233# Checking for CFLAGS
234if test -z "$CFLAGS"; then
235 CFLAGS="-O2"
236fi
237
af5db58e
PB
238if test x"$show_help" = x"yes" ; then
239cat << EOF
240
241Usage: configure [options]
242Options: [defaults in brackets after descriptions]
243
244EOF
245echo "Standard options:"
246echo " --help print this message"
247echo " --prefix=PREFIX install in PREFIX [$prefix]"
248echo " --interp-prefix=PREFIX where to find shared libraries, etc."
249echo " use %M for cpu name [$interp_prefix]"
250echo " --target-list=LIST set target list [$target_list]"
251echo ""
252echo "kqemu kernel acceleration support:"
253echo " --disable-kqemu disable kqemu support"
254echo " --kernel-path=PATH set the kernel path (configure probes it)"
255echo ""
256echo "Advanced options (experts only):"
257echo " --source-path=PATH path of source code [$source_path]"
258echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
259echo " --cc=CC use C compiler CC [$cc]"
260echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
261echo " --make=MAKE use specified make [$make]"
6a882643 262echo " --install=INSTALL use specified install [$install]"
af5db58e
PB
263echo " --static enable static build [$static]"
264echo " --enable-cocoa enable COCOA (Mac OS X only)"
265echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
266echo " --enable-adlib enable Adlib emulation"
267echo " --enable-coreaudio enable Coreaudio audio driver"
268echo " --enable-alsa enable ALSA audio driver"
269echo " --enable-fmod enable FMOD audio driver"
270echo " --enabled-dsound enable DirectSound audio driver"
271echo " --enable-system enable all system emulation targets"
272echo " --disable-system disable all system emulation targets"
273echo " --enable-user enable all linux usermode emulation targets"
274echo " --disable-user disable all linux usermode emulation targets"
275echo " --fmod-lib path to FMOD library"
276echo " --fmod-inc path to FMOD includes"
277echo ""
278echo "NOTE: The object files are build at the place where configure is launched"
279exit 1
280fi
281
7d13299d
FB
282cc="${cross_prefix}${cc}"
283ar="${cross_prefix}${ar}"
284strip="${cross_prefix}${strip}"
285
a7350fa1
FB
286if [ -z `which $cc` ] ; then
287 echo "Compiler $cc could not be found"
288 exit
289fi
290
67b915a5 291if test "$mingw32" = "yes" ; then
5327cf48 292 linux="no"
67b915a5
FB
293 EXESUF=".exe"
294 gdbstub="no"
9f059eca 295 oss="no"
07f4ddbf
FB
296 if [ "$cpu" = "i386" ] ; then
297 kqemu="yes"
298 fi
67b915a5
FB
299fi
300
5327cf48
FB
301if test -z "$target_list" ; then
302# these targets are portable
0a8e90f4
PB
303 if [ "$softmmu" = "yes" ] ; then
304 target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
305 fi
5327cf48 306# the following are Linux specific
0a8e90f4 307 if [ "$user" = "yes" ] ; then
c20eb473 308 target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
5327cf48 309 fi
6e20a45f 310else
b1a550a0 311 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
5327cf48 312fi
0a8e90f4
PB
313if test -z "$target_list" ; then
314 echo "No targets enabled"
315 exit 1
316fi
5327cf48 317
7d13299d
FB
318if test -z "$cross_prefix" ; then
319
320# ---
321# big/little endian test
322cat > $TMPC << EOF
323#include <inttypes.h>
324int main(int argc, char ** argv){
1d14ffa9
FB
325 volatile uint32_t i=0x01234567;
326 return (*((uint8_t*)(&i))) == 0x67;
7d13299d
FB
327}
328EOF
329
330if $cc -o $TMPE $TMPC 2>/dev/null ; then
331$TMPE && bigendian="yes"
332else
333echo big/little test failed
334fi
335
336else
337
338# if cross compiling, cannot launch a program, so make a static guess
808c4954 339if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
7d13299d
FB
340 bigendian="yes"
341fi
342
343fi
344
b6853697
FB
345# host long bits test
346hostlongbits="32"
347if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
348 hostlongbits="64"
349fi
350
e8cd23de 351# check gcc options support
04369ff2
FB
352cat > $TMPC <<EOF
353int main(void) {
04369ff2
FB
354}
355EOF
356
e8cd23de
FB
357have_gcc3_options="no"
358if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
359 have_gcc3_options="yes"
04369ff2 360fi
ca735206 361
b1a550a0 362# Check for gcc4, error if pre-gcc4
1aff381f
FB
363if test "$check_gcc" = "yes" ; then
364 cat > $TMPC <<EOF
b1a550a0
PB
365#if __GNUC__ < 4
366#error gcc3
1aff381f
FB
367#endif
368int main(){return 0;}
369EOF
b1a550a0 370 if $cc -o $TMPO $TMPC 2>/dev/null ; then
1aff381f
FB
371 echo "ERROR: \"$cc\" looks like gcc 4.x"
372 echo "QEMU is known to have problems when compiled with gcc 4.x"
373 echo "It is recommended that you use gcc 3.x to build QEMU"
374 echo "To use this compiler anyway, configure with --disable-gcc-check"
375 exit 1;
376 fi
377fi
378
11d9f695
FB
379##########################################
380# SDL probe
381
382sdl_too_old=no
383
384if test -z "$sdl" ; then
385
a6e022ad
FB
386sdl_config="sdl-config"
387sdl=no
7c1f25b4 388sdl_static=no
a6e022ad
FB
389
390if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
391# win32 cross compilation case
392 sdl_config="i386-mingw32msvc-sdl-config"
393 sdl=yes
394else
395# normal SDL probe
11d9f695
FB
396cat > $TMPC << EOF
397#include <SDL.h>
398#undef main /* We don't want SDL to override our main() */
399int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
400EOF
401
a6e022ad
FB
402if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
403_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
11d9f695
FB
404if test "$_sdlversion" -lt 121 ; then
405sdl_too_old=yes
406else
407sdl=yes
408fi
7c1f25b4
FB
409
410# static link with sdl ?
411if test "$sdl" = "yes" ; then
412aa="no"
413`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
414sdl_static_libs=`$sdl_config --static-libs`
415if [ "$aa" = "yes" ] ; then
d8d8aa4e 416 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
7c1f25b4
FB
417fi
418
419if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
420 sdl_static=yes
11d9f695
FB
421fi
422
7c1f25b4
FB
423fi # static link
424
425fi # sdl compile test
426
a6e022ad
FB
427fi # cross compilation
428fi # -z $sdl
11d9f695 429
11d9f695
FB
430if test "$mingw32" = "yes" ; then
431if test -z "$prefix" ; then
432 prefix="/c/Program Files/Qemu"
433fi
434mandir="$prefix"
7efa4387 435datadir="$prefix"
1f50f8d1 436docdir="$prefix"
11d9f695
FB
437bindir="$prefix"
438else
439if test -z "$prefix" ; then
440 prefix="/usr/local"
441fi
5a67135a 442mandir="$prefix/share/man"
7efa4387 443datadir="$prefix/share/qemu"
1f50f8d1 444docdir="$prefix/share/doc/qemu"
11d9f695
FB
445bindir="$prefix/bin"
446fi
5a67135a 447
43ce4dfe 448echo "Install prefix $prefix"
7efa4387 449echo "BIOS directory $datadir"
11d9f695
FB
450echo "binary directory $bindir"
451if test "$mingw32" = "no" ; then
452echo "Manual directory $mandir"
43ce4dfe 453echo "ELF interp prefix $interp_prefix"
11d9f695 454fi
5a67135a 455echo "Source path $source_path"
43ce4dfe 456echo "C compiler $cc"
83469015 457echo "Host C compiler $host_cc"
43ce4dfe 458echo "make $make"
6a882643 459echo "install $install"
43ce4dfe 460echo "host CPU $cpu"
de83cd02 461echo "host big endian $bigendian"
97a847bc 462echo "target list $target_list"
43ce4dfe 463echo "gprof enabled $gprof"
05c2a3e7 464echo "profiler $profiler"
43ce4dfe 465echo "static build $static"
5b0753e0
FB
466if test "$darwin" = "yes" ; then
467 echo "Cocoa support $cocoa"
468fi
97a847bc 469echo "SDL support $sdl"
e4afee97
FB
470if test "$sdl" != "no" ; then
471 echo "SDL static link $sdl_static"
472fi
67b915a5 473echo "mingw32 support $mingw32"
fb065187 474echo "Adlib support $adlib"
1d14ffa9
FB
475echo "CoreAudio support $coreaudio"
476echo "ALSA support $alsa"
477echo "DSound support $dsound"
1d14ffa9
FB
478if test "$fmod" = "yes"; then
479 if test -z $fmod_lib || test -z $fmod_inc; then
480 echo
481 echo "Error: You must specify path to FMOD library and headers"
482 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
483 echo
484 exit 1
485 fi
b1a550a0
PB
486 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
487else
488 fmod_support=""
102a52e4 489fi
b1a550a0 490echo "FMOD support $fmod $fmod_support"
07f4ddbf 491echo "kqemu support $kqemu"
67b915a5 492
97a847bc 493if test $sdl_too_old = "yes"; then
24b55b96 494echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 495fi
24b55b96
FB
496#if test "$sdl_static" = "no"; then
497# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
498#fi
97a847bc
FB
499config_mak="config-host.mak"
500config_h="config-host.h"
7d13299d 501
7c1f25b4 502#echo "Creating $config_mak and $config_h"
7d13299d 503
97a847bc 504echo "# Automatically generated by configure - do not modify" > $config_mak
29517134 505echo "# Configured with: $0 $@" >> $config_mak
97a847bc 506echo "/* Automatically generated by configure - do not modify */" > $config_h
7d13299d 507
97a847bc 508echo "prefix=$prefix" >> $config_mak
11d9f695 509echo "bindir=$bindir" >> $config_mak
5a67135a 510echo "mandir=$mandir" >> $config_mak
7efa4387 511echo "datadir=$datadir" >> $config_mak
1f50f8d1 512echo "docdir=$docdir" >> $config_mak
7efa4387 513echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
97a847bc 514echo "MAKE=$make" >> $config_mak
6a882643 515echo "INSTALL=$install" >> $config_mak
97a847bc 516echo "CC=$cc" >> $config_mak
e8cd23de 517if test "$have_gcc3_options" = "yes" ; then
97a847bc 518 echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
e8cd23de 519fi
97a847bc
FB
520echo "HOST_CC=$host_cc" >> $config_mak
521echo "AR=$ar" >> $config_mak
522echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
523echo "CFLAGS=$CFLAGS" >> $config_mak
524echo "LDFLAGS=$LDFLAGS" >> $config_mak
67b915a5 525echo "EXESUF=$EXESUF" >> $config_mak
97a847bc
FB
526if test "$cpu" = "i386" ; then
527 echo "ARCH=i386" >> $config_mak
528 echo "#define HOST_I386 1" >> $config_h
0b0babc6
FB
529elif test "$cpu" = "x86_64" ; then
530 echo "ARCH=x86_64" >> $config_mak
531 echo "#define HOST_X86_64 1" >> $config_h
808c4954
FB
532elif test "$cpu" = "armv4b" ; then
533 echo "ARCH=arm" >> $config_mak
534 echo "#define HOST_ARM 1" >> $config_h
7d13299d 535elif test "$cpu" = "armv4l" ; then
97a847bc
FB
536 echo "ARCH=arm" >> $config_mak
537 echo "#define HOST_ARM 1" >> $config_h
7d13299d 538elif test "$cpu" = "powerpc" ; then
97a847bc
FB
539 echo "ARCH=ppc" >> $config_mak
540 echo "#define HOST_PPC 1" >> $config_h
7d13299d 541elif test "$cpu" = "mips" ; then
97a847bc
FB
542 echo "ARCH=mips" >> $config_mak
543 echo "#define HOST_MIPS 1" >> $config_h
fb3e5849 544elif test "$cpu" = "s390" ; then
97a847bc
FB
545 echo "ARCH=s390" >> $config_mak
546 echo "#define HOST_S390 1" >> $config_h
295defa5 547elif test "$cpu" = "alpha" ; then
97a847bc
FB
548 echo "ARCH=alpha" >> $config_mak
549 echo "#define HOST_ALPHA 1" >> $config_h
ae228531 550elif test "$cpu" = "sparc" ; then
97a847bc
FB
551 echo "ARCH=sparc" >> $config_mak
552 echo "#define HOST_SPARC 1" >> $config_h
ae228531 553elif test "$cpu" = "sparc64" ; then
97a847bc
FB
554 echo "ARCH=sparc64" >> $config_mak
555 echo "#define HOST_SPARC64 1" >> $config_h
a8baa8c5 556elif test "$cpu" = "ia64" ; then
97a847bc
FB
557 echo "ARCH=ia64" >> $config_mak
558 echo "#define HOST_IA64 1" >> $config_h
38e584a0 559elif test "$cpu" = "m68k" ; then
38ca2abc
FB
560 echo "ARCH=m68k" >> $config_mak
561 echo "#define HOST_M68K 1" >> $config_h
7d13299d
FB
562else
563 echo "Unsupported CPU"
564 exit 1
565fi
566if test "$bigendian" = "yes" ; then
97a847bc
FB
567 echo "WORDS_BIGENDIAN=yes" >> $config_mak
568 echo "#define WORDS_BIGENDIAN 1" >> $config_h
569fi
b6853697 570echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
67b915a5
FB
571if test "$mingw32" = "yes" ; then
572 echo "CONFIG_WIN32=yes" >> $config_mak
11d9f695 573 echo "#define CONFIG_WIN32 1" >> $config_h
7d3505c5 574elif test -f "/usr/include/byteswap.h" ; then
67b915a5
FB
575 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
576fi
83fb7adf
FB
577if test "$darwin" = "yes" ; then
578 echo "CONFIG_DARWIN=yes" >> $config_mak
579 echo "#define CONFIG_DARWIN 1" >> $config_h
580fi
67b915a5
FB
581if test "$gdbstub" = "yes" ; then
582 echo "CONFIG_GDBSTUB=yes" >> $config_mak
583 echo "#define CONFIG_GDBSTUB 1" >> $config_h
584fi
97a847bc
FB
585if test "$gprof" = "yes" ; then
586 echo "TARGET_GPROF=yes" >> $config_mak
587 echo "#define HAVE_GPROF 1" >> $config_h
588fi
589if test "$static" = "yes" ; then
590 echo "CONFIG_STATIC=yes" >> $config_mak
50863472 591 echo "#define CONFIG_STATIC 1" >> $config_h
7d13299d 592fi
05c2a3e7
FB
593if test $profiler = "yes" ; then
594 echo "#define CONFIG_PROFILER 1" >> $config_h
595fi
c20709aa
FB
596if test "$slirp" = "yes" ; then
597 echo "CONFIG_SLIRP=yes" >> $config_mak
598 echo "#define CONFIG_SLIRP 1" >> $config_h
599fi
fb065187
FB
600if test "$adlib" = "yes" ; then
601 echo "CONFIG_ADLIB=yes" >> $config_mak
602 echo "#define CONFIG_ADLIB 1" >> $config_h
603fi
604if test "$oss" = "yes" ; then
605 echo "CONFIG_OSS=yes" >> $config_mak
606 echo "#define CONFIG_OSS 1" >> $config_h
607fi
1d14ffa9
FB
608if test "$coreaudio" = "yes" ; then
609 echo "CONFIG_COREAUDIO=yes" >> $config_mak
610 echo "#define CONFIG_COREAUDIO 1" >> $config_h
611fi
612if test "$alsa" = "yes" ; then
613 echo "CONFIG_ALSA=yes" >> $config_mak
614 echo "#define CONFIG_ALSA 1" >> $config_h
615fi
616if test "$dsound" = "yes" ; then
617 echo "CONFIG_DSOUND=yes" >> $config_mak
618 echo "#define CONFIG_DSOUND 1" >> $config_h
619fi
102a52e4
FB
620if test "$fmod" = "yes" ; then
621 echo "CONFIG_FMOD=yes" >> $config_mak
622 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
623 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
624 echo "#define CONFIG_FMOD 1" >> $config_h
625fi
b1a550a0
PB
626qemu_version=`head $source_path/VERSION`
627echo "VERSION=$qemu_version" >>$config_mak
d4b8f039 628echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
97a847bc
FB
629
630echo "SRC_PATH=$source_path" >> $config_mak
ad064840
PB
631if [ "$source_path_used" = "yes" ]; then
632 echo "VPATH=$source_path" >> $config_mak
633fi
97a847bc
FB
634echo "TARGET_DIRS=$target_list" >> $config_mak
635
83fb7adf 636# XXX: suppress that
7d3505c5 637if [ "$bsd" = "yes" ] ; then
43003046 638 echo "#define O_LARGEFILE 0" >> $config_h
43003046 639 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
640 echo "#define _BSD 1" >> $config_h
641fi
642
1d14ffa9 643for target in $target_list; do
97a847bc
FB
644target_dir="$target"
645config_mak=$target_dir/config.mak
646config_h=$target_dir/config.h
647target_cpu=`echo $target | cut -d '-' -f 1`
648target_bigendian="no"
808c4954 649[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1e43adfc 650[ "$target_cpu" = "sparc" ] && target_bigendian=yes
64b3ab24 651[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
67867308 652[ "$target_cpu" = "ppc" ] && target_bigendian=yes
a2458627 653[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
d3258560 654[ "$target_cpu" = "mips" ] && target_bigendian=yes
97a847bc
FB
655target_softmmu="no"
656if expr $target : '.*-softmmu' > /dev/null ; then
657 target_softmmu="yes"
658fi
997344f3
FB
659target_user_only="no"
660if expr $target : '.*-user' > /dev/null ; then
661 target_user_only="yes"
662fi
97a847bc 663
97ccc689 664if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 665 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 666 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 667 echo "To build QEMU without graphical output configure with --disable-gfx-check"
97ccc689
FB
668 echo "Note that this will disable all output from the virtual graphics card."
669 exit 1;
670fi
671
7c1f25b4 672#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc
FB
673
674mkdir -p $target_dir
158142c2 675mkdir -p $target_dir/fpu
808c4954 676if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
69de927c
FB
677 mkdir -p $target_dir/nwfpe
678fi
a7e61ed4
FB
679if test "$target_user_only" = "no" ; then
680 mkdir -p $target_dir/slirp
681fi
69de927c 682
97a847bc
FB
683ln -sf $source_path/Makefile.target $target_dir/Makefile
684
685echo "# Automatically generated by configure - do not modify" > $config_mak
686echo "/* Automatically generated by configure - do not modify */" > $config_h
687
de83cd02 688
97a847bc
FB
689echo "include ../config-host.mak" >> $config_mak
690echo "#include \"../config-host.h\"" >> $config_h
1e43adfc
FB
691
692interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
693echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
97a847bc
FB
694
695if test "$target_cpu" = "i386" ; then
696 echo "TARGET_ARCH=i386" >> $config_mak
697 echo "#define TARGET_ARCH \"i386\"" >> $config_h
698 echo "#define TARGET_I386 1" >> $config_h
07f4ddbf 699 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
824d560f
FB
700 echo "#define USE_KQEMU 1" >> $config_h
701 fi
808c4954 702elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
97a847bc
FB
703 echo "TARGET_ARCH=arm" >> $config_mak
704 echo "#define TARGET_ARCH \"arm\"" >> $config_h
705 echo "#define TARGET_ARM 1" >> $config_h
1e43adfc
FB
706elif test "$target_cpu" = "sparc" ; then
707 echo "TARGET_ARCH=sparc" >> $config_mak
708 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
709 echo "#define TARGET_SPARC 1" >> $config_h
64b3ab24
FB
710elif test "$target_cpu" = "sparc64" ; then
711 echo "TARGET_ARCH=sparc64" >> $config_mak
712 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
713 echo "#define TARGET_SPARC 1" >> $config_h
714 echo "#define TARGET_SPARC64 1" >> $config_h
67867308
FB
715elif test "$target_cpu" = "ppc" ; then
716 echo "TARGET_ARCH=ppc" >> $config_mak
717 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
718 echo "#define TARGET_PPC 1" >> $config_h
a2458627
FB
719elif test "$target_cpu" = "ppc64" ; then
720 echo "TARGET_ARCH=ppc64" >> $config_mak
721 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
722 echo "#define TARGET_PPC 1" >> $config_h
723 echo "#define TARGET_PPC64 1" >> $config_h
0b0babc6
FB
724elif test "$target_cpu" = "x86_64" ; then
725 echo "TARGET_ARCH=x86_64" >> $config_mak
726 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
727 echo "#define TARGET_I386 1" >> $config_h
728 echo "#define TARGET_X86_64 1" >> $config_h
07f4ddbf
FB
729 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
730 echo "#define USE_KQEMU 1" >> $config_h
731 fi
c20eb473 732elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
d3258560
FB
733 echo "TARGET_ARCH=mips" >> $config_mak
734 echo "#define TARGET_ARCH \"mips\"" >> $config_h
735 echo "#define TARGET_MIPS 1" >> $config_h
de83cd02
FB
736else
737 echo "Unsupported target CPU"
738 exit 1
739fi
740if test "$target_bigendian" = "yes" ; then
97a847bc
FB
741 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
742 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 743fi
97a847bc
FB
744if test "$target_softmmu" = "yes" ; then
745 echo "CONFIG_SOFTMMU=yes" >> $config_mak
746 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 747fi
997344f3
FB
748if test "$target_user_only" = "yes" ; then
749 echo "CONFIG_USER_ONLY=yes" >> $config_mak
750 echo "#define CONFIG_USER_ONLY 1" >> $config_h
751fi
97a847bc 752
158142c2
FB
753if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
754 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
755 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
756fi
7c1f25b4
FB
757# sdl defines
758
759if test "$target_user_only" = "no"; then
760 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
dbb2c921 761 sdl1=$sdl_static
7c1f25b4 762 else
dbb2c921
FB
763 sdl1=$sdl
764 fi
765 if test "$sdl1" = "yes" ; then
766 echo "#define CONFIG_SDL 1" >> $config_h
767 echo "CONFIG_SDL=yes" >> $config_mak
768 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
769 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
770 else
7c1f25b4
FB
771 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
772 fi
dbb2c921 773 if [ "${aa}" = "yes" ] ; then
b1a550a0
PB
774 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
775 else
776 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
dbb2c921 777 fi
7c1f25b4 778 fi
7c1f25b4
FB
779fi
780
5b0753e0
FB
781if test "$cocoa" = "yes" ; then
782 echo "#define CONFIG_COCOA 1" >> $config_h
783 echo "CONFIG_COCOA=yes" >> $config_mak
784fi
785
97a847bc 786done # for target in $targets
7d13299d
FB
787
788# build tree in object directory if source path is different from current one
789if test "$source_path_used" = "yes" ; then
790 DIRS="tests"
791 FILES="Makefile tests/Makefile"
792 for dir in $DIRS ; do
793 mkdir -p $dir
794 done
795 for f in $FILES ; do
796 ln -sf $source_path/$f $f
797 done
798fi
7d13299d 799
97a847bc 800rm -f $TMPO $TMPC $TMPE $TMPS