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