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