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