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