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