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