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