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