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