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