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