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