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