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