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