]> git.proxmox.com Git - qemu.git/blob - configure
use the TCG code generator
[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 gcc3_search="yes"
26 gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
27 host_cc="gcc"
28 ar="ar"
29 make="make"
30 install="install"
31 strip="strip"
32 cpu=`uname -m`
33 target_list=""
34 case "$cpu" in
35 i386|i486|i586|i686|i86pc|BePC)
36 cpu="i386"
37 ;;
38 armv*b)
39 cpu="armv4b"
40 ;;
41 armv*l)
42 cpu="armv4l"
43 ;;
44 alpha)
45 cpu="alpha"
46 ;;
47 "Power Macintosh"|ppc|ppc64)
48 cpu="powerpc"
49 ;;
50 mips)
51 cpu="mips"
52 ;;
53 mips64)
54 cpu="mips64"
55 ;;
56 cris)
57 cpu="cris"
58 ;;
59 s390*)
60 cpu="s390"
61 ;;
62 sparc|sun4[cdmuv])
63 cpu="sparc"
64 ;;
65 sparc64)
66 cpu="sparc64"
67 ;;
68 ia64)
69 cpu="ia64"
70 ;;
71 m68k)
72 cpu="m68k"
73 ;;
74 x86_64|amd64)
75 cpu="x86_64"
76 ;;
77 *)
78 cpu="unknown"
79 ;;
80 esac
81 gprof="no"
82 bigendian="no"
83 mingw32="no"
84 EXESUF=""
85 gdbstub="yes"
86 slirp="yes"
87 adlib="no"
88 ac97="no"
89 gus="no"
90 oss="no"
91 dsound="no"
92 coreaudio="no"
93 alsa="no"
94 esd="no"
95 fmod="no"
96 fmod_lib=""
97 fmod_inc=""
98 vnc_tls="yes"
99 bsd="no"
100 linux="no"
101 kqemu="no"
102 profiler="no"
103 cocoa="no"
104 check_gfx="yes"
105 check_gcc="yes"
106 softmmu="yes"
107 linux_user="no"
108 darwin_user="no"
109 build_docs="no"
110 uname_release=""
111
112 # OS specific
113 targetos=`uname -s`
114 case $targetos in
115 CYGWIN*)
116 mingw32="yes"
117 OS_CFLAGS="-mno-cygwin"
118 if [ "$cpu" = "i386" ] ; then
119 kqemu="yes"
120 fi
121 ;;
122 MINGW32*)
123 mingw32="yes"
124 if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
126 fi
127 ;;
128 GNU/kFreeBSD)
129 oss="yes"
130 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
131 kqemu="yes"
132 fi
133 ;;
134 FreeBSD)
135 bsd="yes"
136 oss="yes"
137 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
138 kqemu="yes"
139 fi
140 ;;
141 NetBSD)
142 bsd="yes"
143 oss="yes"
144 ;;
145 OpenBSD)
146 bsd="yes"
147 oss="yes"
148 ;;
149 Darwin)
150 bsd="yes"
151 darwin="yes"
152 darwin_user="yes"
153 cocoa="yes"
154 coreaudio="yes"
155 OS_CFLAGS="-mdynamic-no-pic"
156 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
157 ;;
158 SunOS)
159 solaris="yes"
160 make="gmake"
161 install="ginstall"
162 needs_libsunmath="no"
163 solarisrev=`uname -r | cut -f2 -d.`
164 # have to select again, because `uname -m` returns i86pc
165 # even on an x86_64 box.
166 solariscpu=`isainfo -k`
167 if test "${solariscpu}" = "amd64" ; then
168 cpu="x86_64"
169 fi
170 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
171 if test "$solarisrev" -le 9 ; then
172 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
173 needs_libsunmath="yes"
174 else
175 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
176 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
177 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
178 echo "Studio 11 can be downloaded from www.sun.com."
179 exit 1
180 fi
181 fi
182 if test "$solarisrev" -ge 9 ; then
183 kqemu="yes"
184 fi
185 fi
186 if test -f /usr/include/sys/soundcard.h ; then
187 oss=yes
188 fi
189 ;;
190 *)
191 oss="yes"
192 linux="yes"
193 linux_user="yes"
194 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
195 kqemu="yes"
196 fi
197 ;;
198 esac
199
200 if [ "$bsd" = "yes" ] ; then
201 if [ "$darwin" != "yes" ] ; then
202 make="gmake"
203 fi
204 fi
205
206 # find source path
207 source_path=`dirname "$0"`
208 if [ -z "$source_path" ]; then
209 source_path=`pwd`
210 else
211 source_path=`cd "$source_path"; pwd`
212 fi
213 if test "$source_path" = `pwd` ; then
214 source_path_used="no"
215 else
216 source_path_used="yes"
217 fi
218
219 werror="no"
220 # generate compile errors on warnings for development builds
221 #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
222 #werror="yes";
223 #fi
224
225 for opt do
226 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
227 case "$opt" in
228 --help|-h) show_help=yes
229 ;;
230 --prefix=*) prefix="$optarg"
231 ;;
232 --interp-prefix=*) interp_prefix="$optarg"
233 ;;
234 --source-path=*) source_path="$optarg"
235 source_path_used="yes"
236 ;;
237 --cross-prefix=*) cross_prefix="$optarg"
238 ;;
239 --cc=*) cc="$optarg"
240 gcc3_search="no"
241 ;;
242 --host-cc=*) host_cc="$optarg"
243 ;;
244 --make=*) make="$optarg"
245 ;;
246 --install=*) install="$optarg"
247 ;;
248 --extra-cflags=*) CFLAGS="$optarg"
249 ;;
250 --extra-ldflags=*) LDFLAGS="$optarg"
251 ;;
252 --cpu=*) cpu="$optarg"
253 ;;
254 --target-list=*) target_list="$optarg"
255 ;;
256 --enable-gprof) gprof="yes"
257 ;;
258 --static) static="yes"
259 ;;
260 --disable-sdl) sdl="no"
261 ;;
262 --enable-coreaudio) coreaudio="yes"
263 ;;
264 --enable-alsa) alsa="yes"
265 ;;
266 --enable-esd) esd="yes"
267 ;;
268 --enable-dsound) dsound="yes"
269 ;;
270 --enable-fmod) fmod="yes"
271 ;;
272 --fmod-lib=*) fmod_lib="$optarg"
273 ;;
274 --fmod-inc=*) fmod_inc="$optarg"
275 ;;
276 --disable-vnc-tls) vnc_tls="no"
277 ;;
278 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
279 ;;
280 --disable-slirp) slirp="no"
281 ;;
282 --enable-adlib) adlib="yes"
283 ;;
284 --enable-ac97) ac97="yes"
285 ;;
286 --enable-gus) gus="yes"
287 ;;
288 --disable-kqemu) kqemu="no"
289 ;;
290 --enable-profiler) profiler="yes"
291 ;;
292 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
293 ;;
294 --disable-gfx-check) check_gfx="no"
295 ;;
296 --disable-gcc-check) check_gcc="no"
297 ;;
298 --disable-system) softmmu="no"
299 ;;
300 --enable-system) softmmu="yes"
301 ;;
302 --disable-linux-user) linux_user="no"
303 ;;
304 --enable-linux-user) linux_user="yes"
305 ;;
306 --disable-darwin-user) darwin_user="no"
307 ;;
308 --enable-darwin-user) darwin_user="yes"
309 ;;
310 --enable-uname-release=*) uname_release="$optarg"
311 ;;
312 --sparc_cpu=*)
313 sparc_cpu="$optarg"
314 case $sparc_cpu in
315 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
316 target_cpu="sparc"; cpu="sparc" ;;
317 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
318 target_cpu="sparc"; cpu="sparc" ;;
319 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
320 target_cpu="sparc64"; cpu="sparc64" ;;
321 *) echo "undefined SPARC architecture. Exiting";exit 1;;
322 esac
323 ;;
324 --enable-werror) werror="yes"
325 ;;
326 --disable-werror) werror="no"
327 ;;
328 *) echo "ERROR: unknown option $opt"; show_help="yes"
329 ;;
330 esac
331 done
332
333 if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
334 AIOLIBS=
335 else
336 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
337 AIOLIBS="-lrt -lpthread"
338 fi
339
340 # default flags for all hosts
341 CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
342 LDFLAGS="$LDFLAGS -g"
343 if test "$werror" = "yes" ; then
344 CFLAGS="$CFLAGS -Werror"
345 fi
346
347 #
348 # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
349 # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
350 #
351 case "$cpu" in
352 sparc) if test -z "$sparc_cpu" ; then
353 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
354 ARCH_LDFLAGS="-m32"
355 else
356 ARCH_CFLAGS="${SP_CFLAGS}"
357 ARCH_LDFLAGS="${SP_LDFLAGS}"
358 fi
359 ;;
360 sparc64) if test -z "$sparc_cpu" ; then
361 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
362 ARCH_LDFLAGS="-m64"
363 else
364 ARCH_CFLAGS="${SP_CFLAGS}"
365 ARCH_LDFLAGS="${SP_LDFLAGS}"
366 fi
367 ;;
368 s390)
369 ARCH_CFLAGS="-march=z900"
370 ;;
371 i386)
372 ARCH_CFLAGS="-m32"
373 ARCH_LDFLAGS="-m32"
374 ;;
375 x86_64)
376 ARCH_CFLAGS="-m64"
377 ARCH_LDFLAGS="-m64"
378 ;;
379 esac
380
381 if test x"$show_help" = x"yes" ; then
382 cat << EOF
383
384 Usage: configure [options]
385 Options: [defaults in brackets after descriptions]
386
387 EOF
388 echo "Standard options:"
389 echo " --help print this message"
390 echo " --prefix=PREFIX install in PREFIX [$prefix]"
391 echo " --interp-prefix=PREFIX where to find shared libraries, etc."
392 echo " use %M for cpu name [$interp_prefix]"
393 echo " --target-list=LIST set target list [$target_list]"
394 echo ""
395 echo "kqemu kernel acceleration support:"
396 echo " --disable-kqemu disable kqemu support"
397 echo ""
398 echo "Advanced options (experts only):"
399 echo " --source-path=PATH path of source code [$source_path]"
400 echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
401 echo " --cc=CC use C compiler CC [$cc]"
402 echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
403 echo " --make=MAKE use specified make [$make]"
404 echo " --install=INSTALL use specified install [$install]"
405 echo " --static enable static build [$static]"
406 echo " --disable-werror disable compilation abort on warning"
407 echo " --disable-sdl disable SDL"
408 echo " --enable-cocoa enable COCOA (Mac OS X only)"
409 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
410 echo " --enable-adlib enable Adlib emulation"
411 echo " --enable-ac97 enable AC97 emulation"
412 echo " --enable-gus enable Gravis Ultrasound emulation"
413 echo " --enable-coreaudio enable Coreaudio audio driver"
414 echo " --enable-alsa enable ALSA audio driver"
415 echo " --enable-esd enable EsoundD audio driver"
416 echo " --enable-fmod enable FMOD audio driver"
417 echo " --enable-dsound enable DirectSound audio driver"
418 echo " --disable-vnc-tls disable TLS encryption for VNC server"
419 echo " --enable-system enable all system emulation targets"
420 echo " --disable-system disable all system emulation targets"
421 echo " --enable-linux-user enable all linux usermode emulation targets"
422 echo " --disable-linux-user disable all linux usermode emulation targets"
423 echo " --enable-darwin-user enable all darwin usermode emulation targets"
424 echo " --disable-darwin-user disable all darwin usermode emulation targets"
425 echo " --fmod-lib path to FMOD library"
426 echo " --fmod-inc path to FMOD includes"
427 echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
428 echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
429 echo ""
430 echo "NOTE: The object files are built at the place where configure is launched"
431 exit 1
432 fi
433
434 cc="${cross_prefix}${cc}"
435 ar="${cross_prefix}${ar}"
436 strip="${cross_prefix}${strip}"
437
438 # check that the C compiler works.
439 cat > $TMPC <<EOF
440 int main(void) {}
441 EOF
442
443 if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
444 : C compiler works ok
445 else
446 echo "ERROR: \"$cc\" either does not exist or does not work"
447 exit 1
448 fi
449
450 if test "$mingw32" = "yes" ; then
451 linux="no"
452 EXESUF=".exe"
453 oss="no"
454 fi
455
456 # Check for gcc4, error if pre-gcc4
457 if test "$check_gcc" = "yes" ; then
458 cat > $TMPC <<EOF
459 #if __GNUC__ < 4
460 #error gcc3
461 #endif
462 int main(){return 0;}
463 EOF
464 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
465 echo "WARNING: \"$cc\" looks like gcc 4.x"
466 found_compat_cc="no"
467 if test "$gcc3_search" = "yes" ; then
468 echo "Looking for gcc 3.x"
469 for compat_cc in $gcc3_list ; do
470 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
471 echo "Found \"$compat_cc\""
472 cc="$cross_prefix$compat_cc"
473 found_compat_cc="yes"
474 break
475 fi
476 done
477 if test "$found_compat_cc" = "no" ; then
478 echo "gcc 3.x not found!"
479 fi
480 fi
481 if test "$found_compat_cc" = "no" ; then
482 echo "QEMU is known to have problems when compiled with gcc 4.x"
483 echo "It is recommended that you use gcc 3.x to build QEMU"
484 echo "To use this compiler anyway, configure with --disable-gcc-check"
485 exit 1;
486 fi
487 fi
488 fi
489
490 #
491 # Solaris specific configure tool chain decisions
492 #
493 if test "$solaris" = "yes" ; then
494 #
495 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
496 # override the check with --disable-gcc-check
497 #
498 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
499 solgcc=`which $cc`
500 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
501 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
502 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
503 echo "or get the latest patch from SunSolve for gcc"
504 exit 1
505 fi
506 fi
507 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
508 if test -z "$solinst" ; then
509 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
510 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
511 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
512 exit 1
513 fi
514 if test "$solinst" = "/usr/sbin/install" ; then
515 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
516 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
517 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
518 exit 1
519 fi
520 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
521 if test -z "$sol_ar" ; then
522 echo "Error: No path includes ar"
523 if test -f /usr/ccs/bin/ar ; then
524 echo "Add /usr/ccs/bin to your path and rerun configure"
525 fi
526 exit 1
527 fi
528 fi
529
530
531 if test -z "$target_list" ; then
532 # these targets are portable
533 if [ "$softmmu" = "yes" ] ; then
534 target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu"
535 fi
536 # the following are Linux specific
537 if [ "$linux_user" = "yes" ] ; then
538 target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user sh4eb-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
539 fi
540 # the following are Darwin specific
541 if [ "$darwin_user" = "yes" ] ; then
542 target_list="i386-darwin-user ppc-darwin-user $target_list"
543 fi
544 else
545 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
546 fi
547 if test -z "$target_list" ; then
548 echo "No targets enabled"
549 exit 1
550 fi
551
552 if test -z "$cross_prefix" ; then
553
554 # ---
555 # big/little endian test
556 cat > $TMPC << EOF
557 #include <inttypes.h>
558 int main(int argc, char ** argv){
559 volatile uint32_t i=0x01234567;
560 return (*((uint8_t*)(&i))) == 0x67;
561 }
562 EOF
563
564 if $cc -o $TMPE $TMPC 2> /dev/null ; then
565 $TMPE && bigendian="yes"
566 else
567 echo big/little test failed
568 fi
569
570 else
571
572 # if cross compiling, cannot launch a program, so make a static guess
573 if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
574 bigendian="yes"
575 fi
576
577 fi
578
579 # host long bits test
580 hostlongbits="32"
581 if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
582 hostlongbits="64"
583 fi
584
585 # check gcc options support
586 cat > $TMPC <<EOF
587 int main(void) {
588 }
589 EOF
590
591 ##########################################
592 # SDL probe
593
594 sdl_too_old=no
595
596 if test -z "$sdl" ; then
597 sdl_config="sdl-config"
598 sdl=no
599 sdl_static=no
600
601 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
602 # win32 cross compilation case
603 sdl_config="i386-mingw32msvc-sdl-config"
604 sdl=yes
605 else
606 # normal SDL probe
607 cat > $TMPC << EOF
608 #include <SDL.h>
609 #undef main /* We don't want SDL to override our main() */
610 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
611 EOF
612 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
613 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
614 if test "$_sdlversion" -lt 121 ; then
615 sdl_too_old=yes
616 else
617 if test "$cocoa" = "no" ; then
618 sdl=yes
619 fi
620 fi
621
622 # static link with sdl ?
623 if test "$sdl" = "yes" ; then
624 aa="no"
625 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
626 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
627 if [ "$aa" = "yes" ] ; then
628 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
629 fi
630
631 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
632 sdl_static=yes
633 fi
634 fi # static link
635 fi # sdl compile test
636 fi # cross compilation
637 else
638 # Make sure to disable cocoa if sdl was set
639 if test "$sdl" = "yes" ; then
640 cocoa="no"
641 coreaudio="no"
642 fi
643 fi # -z $sdl
644
645 ##########################################
646 # VNC TLS detection
647 if test "$vnc_tls" = "yes" ; then
648 `pkg-config gnutls` || vnc_tls="no"
649 fi
650 if test "$vnc_tls" = "yes" ; then
651 vnc_tls_cflags=`pkg-config --cflags gnutls`
652 vnc_tls_libs=`pkg-config --libs gnutls`
653 fi
654
655 ##########################################
656 # alsa sound support libraries
657
658 if test "$alsa" = "yes" ; then
659 cat > $TMPC << EOF
660 #include <alsa/asoundlib.h>
661 int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
662 EOF
663 if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
664 :
665 else
666 echo
667 echo "Error: Could not find alsa"
668 echo "Make sure to have the alsa libs and headers installed."
669 echo
670 exit 1
671 fi
672 fi
673
674 # Check if tools are available to build documentation.
675 if [ -x "`which texi2html 2>/dev/null`" ] && \
676 [ -x "`which pod2man 2>/dev/null`" ]; then
677 build_docs="yes"
678 fi
679
680 if test "$mingw32" = "yes" ; then
681 if test -z "$prefix" ; then
682 prefix="/c/Program Files/Qemu"
683 fi
684 mansuffix=""
685 datasuffix=""
686 docsuffix=""
687 binsuffix=""
688 else
689 if test -z "$prefix" ; then
690 prefix="/usr/local"
691 fi
692 mansuffix="/share/man"
693 datasuffix="/share/qemu"
694 docsuffix="/share/doc/qemu"
695 binsuffix="/bin"
696 fi
697
698 echo "Install prefix $prefix"
699 echo "BIOS directory $prefix$datasuffix"
700 echo "binary directory $prefix$binsuffix"
701 if test "$mingw32" = "no" ; then
702 echo "Manual directory $prefix$mansuffix"
703 echo "ELF interp prefix $interp_prefix"
704 fi
705 echo "Source path $source_path"
706 echo "C compiler $cc"
707 echo "Host C compiler $host_cc"
708 echo "make $make"
709 echo "install $install"
710 echo "host CPU $cpu"
711 echo "host big endian $bigendian"
712 echo "target list $target_list"
713 echo "gprof enabled $gprof"
714 echo "profiler $profiler"
715 echo "static build $static"
716 echo "-Werror enabled $werror"
717 if test "$darwin" = "yes" ; then
718 echo "Cocoa support $cocoa"
719 fi
720 echo "SDL support $sdl"
721 if test "$sdl" != "no" ; then
722 echo "SDL static link $sdl_static"
723 fi
724 echo "mingw32 support $mingw32"
725 echo "Adlib support $adlib"
726 echo "AC97 support $ac97"
727 echo "GUS support $gus"
728 echo "CoreAudio support $coreaudio"
729 echo "ALSA support $alsa"
730 echo "EsounD support $esd"
731 echo "DSound support $dsound"
732 if test "$fmod" = "yes"; then
733 if test -z $fmod_lib || test -z $fmod_inc; then
734 echo
735 echo "Error: You must specify path to FMOD library and headers"
736 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
737 echo
738 exit 1
739 fi
740 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
741 else
742 fmod_support=""
743 fi
744 echo "FMOD support $fmod $fmod_support"
745 echo "OSS support $oss"
746 echo "VNC TLS support $vnc_tls"
747 if test "$vnc_tls" = "yes" ; then
748 echo " TLS CFLAGS $vnc_tls_cflags"
749 echo " TLS LIBS $vnc_tls_libs"
750 fi
751 if test -n "$sparc_cpu"; then
752 echo "Target Sparc Arch $sparc_cpu"
753 fi
754 echo "kqemu support $kqemu"
755 echo "Documentation $build_docs"
756 [ ! -z "$uname_release" ] && \
757 echo "uname -r $uname_release"
758
759 if test $sdl_too_old = "yes"; then
760 echo "-> Your SDL version is too old - please upgrade to have SDL support"
761 fi
762 if [ -s /tmp/qemu-$$-sdl-config.log ]; then
763 echo "The error log from compiling the libSDL test is: "
764 cat /tmp/qemu-$$-sdl-config.log
765 fi
766 rm -f /tmp/qemu-$$-sdl-config.log
767 #if test "$sdl_static" = "no"; then
768 # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
769 #fi
770 config_mak="config-host.mak"
771 config_h="config-host.h"
772
773 #echo "Creating $config_mak and $config_h"
774
775 test -f $config_h && mv $config_h ${config_h}~
776
777 echo "# Automatically generated by configure - do not modify" > $config_mak
778 echo "# Configured with: $0 $@" >> $config_mak
779 echo "/* Automatically generated by configure - do not modify */" > $config_h
780
781 echo "prefix=$prefix" >> $config_mak
782 echo "bindir=\${prefix}$binsuffix" >> $config_mak
783 echo "mandir=\${prefix}$mansuffix" >> $config_mak
784 echo "datadir=\${prefix}$datasuffix" >> $config_mak
785 echo "docdir=\${prefix}$docsuffix" >> $config_mak
786 echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
787 echo "MAKE=$make" >> $config_mak
788 echo "INSTALL=$install" >> $config_mak
789 echo "CC=$cc" >> $config_mak
790 echo "HOST_CC=$host_cc" >> $config_mak
791 echo "AR=$ar" >> $config_mak
792 echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
793 # XXX: only use CFLAGS and LDFLAGS ?
794 # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
795 # compilation of dyngen tool (useful for win32 build on Linux host)
796 echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
797 echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
798 echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
799 echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
800 echo "CFLAGS=$CFLAGS" >> $config_mak
801 echo "LDFLAGS=$LDFLAGS" >> $config_mak
802 echo "EXESUF=$EXESUF" >> $config_mak
803 echo "AIOLIBS=$AIOLIBS" >> $config_mak
804 if test "$cpu" = "i386" ; then
805 echo "ARCH=i386" >> $config_mak
806 echo "#define HOST_I386 1" >> $config_h
807 elif test "$cpu" = "x86_64" ; then
808 echo "ARCH=x86_64" >> $config_mak
809 echo "#define HOST_X86_64 1" >> $config_h
810 elif test "$cpu" = "armv4b" ; then
811 echo "ARCH=arm" >> $config_mak
812 echo "#define HOST_ARM 1" >> $config_h
813 elif test "$cpu" = "armv4l" ; then
814 echo "ARCH=arm" >> $config_mak
815 echo "#define HOST_ARM 1" >> $config_h
816 elif test "$cpu" = "powerpc" ; then
817 echo "ARCH=ppc" >> $config_mak
818 echo "#define HOST_PPC 1" >> $config_h
819 elif test "$cpu" = "mips" ; then
820 echo "ARCH=mips" >> $config_mak
821 echo "#define HOST_MIPS 1" >> $config_h
822 elif test "$cpu" = "mips64" ; then
823 echo "ARCH=mips64" >> $config_mak
824 echo "#define HOST_MIPS64 1" >> $config_h
825 elif test "$cpu" = "cris" ; then
826 echo "ARCH=cris" >> $config_mak
827 echo "#define HOST_CRIS 1" >> $config_h
828 elif test "$cpu" = "s390" ; then
829 echo "ARCH=s390" >> $config_mak
830 echo "#define HOST_S390 1" >> $config_h
831 elif test "$cpu" = "alpha" ; then
832 echo "ARCH=alpha" >> $config_mak
833 echo "#define HOST_ALPHA 1" >> $config_h
834 elif test "$cpu" = "sparc" ; then
835 echo "ARCH=sparc" >> $config_mak
836 echo "#define HOST_SPARC 1" >> $config_h
837 elif test "$cpu" = "sparc64" ; then
838 echo "ARCH=sparc64" >> $config_mak
839 echo "#define HOST_SPARC64 1" >> $config_h
840 elif test "$cpu" = "ia64" ; then
841 echo "ARCH=ia64" >> $config_mak
842 echo "#define HOST_IA64 1" >> $config_h
843 elif test "$cpu" = "m68k" ; then
844 echo "ARCH=m68k" >> $config_mak
845 echo "#define HOST_M68K 1" >> $config_h
846 else
847 echo "Unsupported CPU = $cpu"
848 exit 1
849 fi
850 if test "$bigendian" = "yes" ; then
851 echo "WORDS_BIGENDIAN=yes" >> $config_mak
852 echo "#define WORDS_BIGENDIAN 1" >> $config_h
853 fi
854 echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
855 if test "$mingw32" = "yes" ; then
856 echo "CONFIG_WIN32=yes" >> $config_mak
857 echo "#define CONFIG_WIN32 1" >> $config_h
858 else
859 cat > $TMPC << EOF
860 #include <byteswap.h>
861 int main(void) { return bswap_32(0); }
862 EOF
863 if $cc -o $TMPE $TMPC 2> /dev/null ; then
864 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
865 fi
866 fi
867 if test "$darwin" = "yes" ; then
868 echo "CONFIG_DARWIN=yes" >> $config_mak
869 echo "#define CONFIG_DARWIN 1" >> $config_h
870 fi
871 if test "$solaris" = "yes" ; then
872 echo "CONFIG_SOLARIS=yes" >> $config_mak
873 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
874 if test "$needs_libsunmath" = "yes" ; then
875 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
876 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
877 fi
878 fi
879 if test -n "$sparc_cpu"; then
880 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
881 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
882 fi
883 if test "$gdbstub" = "yes" ; then
884 echo "CONFIG_GDBSTUB=yes" >> $config_mak
885 echo "#define CONFIG_GDBSTUB 1" >> $config_h
886 fi
887 if test "$gprof" = "yes" ; then
888 echo "TARGET_GPROF=yes" >> $config_mak
889 echo "#define HAVE_GPROF 1" >> $config_h
890 fi
891 if test "$static" = "yes" ; then
892 echo "CONFIG_STATIC=yes" >> $config_mak
893 echo "#define CONFIG_STATIC 1" >> $config_h
894 fi
895 if test $profiler = "yes" ; then
896 echo "#define CONFIG_PROFILER 1" >> $config_h
897 fi
898 if test "$slirp" = "yes" ; then
899 echo "CONFIG_SLIRP=yes" >> $config_mak
900 echo "#define CONFIG_SLIRP 1" >> $config_h
901 fi
902 if test "$adlib" = "yes" ; then
903 echo "CONFIG_ADLIB=yes" >> $config_mak
904 echo "#define CONFIG_ADLIB 1" >> $config_h
905 fi
906 if test "$ac97" = "yes" ; then
907 echo "CONFIG_AC97=yes" >> $config_mak
908 echo "#define CONFIG_AC97 1" >> $config_h
909 fi
910 if test "$gus" = "yes" ; then
911 echo "CONFIG_GUS=yes" >> $config_mak
912 echo "#define CONFIG_GUS 1" >> $config_h
913 fi
914 if test "$oss" = "yes" ; then
915 echo "CONFIG_OSS=yes" >> $config_mak
916 echo "#define CONFIG_OSS 1" >> $config_h
917 fi
918 if test "$coreaudio" = "yes" ; then
919 echo "CONFIG_COREAUDIO=yes" >> $config_mak
920 echo "#define CONFIG_COREAUDIO 1" >> $config_h
921 fi
922 if test "$alsa" = "yes" ; then
923 echo "CONFIG_ALSA=yes" >> $config_mak
924 echo "#define CONFIG_ALSA 1" >> $config_h
925 fi
926 if test "$esd" = "yes" ; then
927 echo "CONFIG_ESD=yes" >> $config_mak
928 echo "#define CONFIG_ESD 1" >> $config_h
929 fi
930 if test "$dsound" = "yes" ; then
931 echo "CONFIG_DSOUND=yes" >> $config_mak
932 echo "#define CONFIG_DSOUND 1" >> $config_h
933 fi
934 if test "$fmod" = "yes" ; then
935 echo "CONFIG_FMOD=yes" >> $config_mak
936 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
937 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
938 echo "#define CONFIG_FMOD 1" >> $config_h
939 fi
940 if test "$vnc_tls" = "yes" ; then
941 echo "CONFIG_VNC_TLS=yes" >> $config_mak
942 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
943 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
944 echo "#define CONFIG_VNC_TLS 1" >> $config_h
945 fi
946 qemu_version=`head $source_path/VERSION`
947 echo "VERSION=$qemu_version" >>$config_mak
948 echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
949
950 echo "SRC_PATH=$source_path" >> $config_mak
951 if [ "$source_path_used" = "yes" ]; then
952 echo "VPATH=$source_path" >> $config_mak
953 fi
954 echo "TARGET_DIRS=$target_list" >> $config_mak
955 if [ "$build_docs" = "yes" ] ; then
956 echo "BUILD_DOCS=yes" >> $config_mak
957 fi
958 if test "$static" = "yes"; then
959 sdl1=$sdl_static
960 else
961 sdl1=$sdl
962 fi
963 if test "$sdl1" = "yes" ; then
964 echo "#define CONFIG_SDL 1" >> $config_h
965 echo "CONFIG_SDL=yes" >> $config_mak
966 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
967 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
968 else
969 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
970 fi
971 if [ "${aa}" = "yes" ] ; then
972 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
973 else
974 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
975 fi
976 fi
977 if test "$cocoa" = "yes" ; then
978 echo "#define CONFIG_COCOA 1" >> $config_h
979 echo "CONFIG_COCOA=yes" >> $config_mak
980 fi
981
982 # XXX: suppress that
983 if [ "$bsd" = "yes" ] ; then
984 echo "#define O_LARGEFILE 0" >> $config_h
985 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
986 echo "#define _BSD 1" >> $config_h
987 fi
988
989 echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
990
991 tools=
992 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
993 tools="qemu-img\$(EXESUF) $tools"
994 fi
995 echo "TOOLS=$tools" >> $config_mak
996
997 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
998
999 for target in $target_list; do
1000 target_dir="$target"
1001 config_mak=$target_dir/config.mak
1002 config_h=$target_dir/config.h
1003 target_cpu=`echo $target | cut -d '-' -f 1`
1004 target_bigendian="no"
1005 [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1006 [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1007 [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1008 [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1009 [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1010 [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1011 [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1012 [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1013 [ "$target_cpu" = "mips" ] && target_bigendian=yes
1014 [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1015 [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1016 [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1017 [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1018 target_softmmu="no"
1019 target_user_only="no"
1020 target_linux_user="no"
1021 target_darwin_user="no"
1022 case "$target" in
1023 ${target_cpu}-softmmu)
1024 target_softmmu="yes"
1025 ;;
1026 ${target_cpu}-linux-user)
1027 target_user_only="yes"
1028 target_linux_user="yes"
1029 ;;
1030 ${target_cpu}-darwin-user)
1031 target_user_only="yes"
1032 target_darwin_user="yes"
1033 ;;
1034 *)
1035 echo "ERROR: Target '$target' not recognised"
1036 exit 1
1037 ;;
1038 esac
1039
1040 if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1041 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1042 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1043 echo "To build QEMU without graphical output configure with --disable-gfx-check"
1044 echo "Note that this will disable all output from the virtual graphics card."
1045 exit 1;
1046 fi
1047
1048 #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1049
1050 test -f $config_h && mv $config_h ${config_h}~
1051
1052 mkdir -p $target_dir
1053 mkdir -p $target_dir/fpu
1054 mkdir -p $target_dir/tcg
1055 if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1056 mkdir -p $target_dir/nwfpe
1057 fi
1058
1059 #
1060 # don't use ln -sf as not all "ln -sf" over write the file/link
1061 #
1062 rm -f $target_dir/Makefile
1063 ln -s $source_path/Makefile.target $target_dir/Makefile
1064
1065
1066 echo "# Automatically generated by configure - do not modify" > $config_mak
1067 echo "/* Automatically generated by configure - do not modify */" > $config_h
1068
1069
1070 echo "include ../config-host.mak" >> $config_mak
1071 echo "#include \"../config-host.h\"" >> $config_h
1072
1073 bflt="no"
1074 elfload32="no"
1075 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1076 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1077
1078 if test "$target_cpu" = "i386" ; then
1079 echo "TARGET_ARCH=i386" >> $config_mak
1080 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1081 echo "#define TARGET_I386 1" >> $config_h
1082 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1083 echo "#define USE_KQEMU 1" >> $config_h
1084 fi
1085 elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1086 echo "TARGET_ARCH=arm" >> $config_mak
1087 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1088 echo "#define TARGET_ARM 1" >> $config_h
1089 bflt="yes"
1090 elif test "$target_cpu" = "sparc" ; then
1091 echo "TARGET_ARCH=sparc" >> $config_mak
1092 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1093 echo "#define TARGET_SPARC 1" >> $config_h
1094 elif test "$target_cpu" = "sparc64" ; then
1095 echo "TARGET_ARCH=sparc64" >> $config_mak
1096 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1097 echo "#define TARGET_SPARC 1" >> $config_h
1098 echo "#define TARGET_SPARC64 1" >> $config_h
1099 elfload32="yes"
1100 elif test "$target_cpu" = "sparc32plus" ; then
1101 echo "TARGET_ARCH=sparc64" >> $config_mak
1102 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1103 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1104 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1105 echo "#define TARGET_SPARC 1" >> $config_h
1106 echo "#define TARGET_SPARC64 1" >> $config_h
1107 echo "#define TARGET_ABI32 1" >> $config_h
1108 elif test "$target_cpu" = "ppc" ; then
1109 echo "TARGET_ARCH=ppc" >> $config_mak
1110 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1111 echo "#define TARGET_PPC 1" >> $config_h
1112 elif test "$target_cpu" = "ppcemb" ; then
1113 echo "TARGET_ARCH=ppcemb" >> $config_mak
1114 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1115 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1116 echo "#define TARGET_PPC 1" >> $config_h
1117 echo "#define TARGET_PPCEMB 1" >> $config_h
1118 elif test "$target_cpu" = "ppc64" ; then
1119 echo "TARGET_ARCH=ppc64" >> $config_mak
1120 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1121 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1122 echo "#define TARGET_PPC 1" >> $config_h
1123 echo "#define TARGET_PPC64 1" >> $config_h
1124 elif test "$target_cpu" = "ppc64abi32" ; then
1125 echo "TARGET_ARCH=ppc64" >> $config_mak
1126 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1127 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1128 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1129 echo "#define TARGET_PPC 1" >> $config_h
1130 echo "#define TARGET_PPC64 1" >> $config_h
1131 echo "#define TARGET_ABI32 1" >> $config_h
1132 elif test "$target_cpu" = "x86_64" ; then
1133 echo "TARGET_ARCH=x86_64" >> $config_mak
1134 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1135 echo "#define TARGET_I386 1" >> $config_h
1136 echo "#define TARGET_X86_64 1" >> $config_h
1137 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1138 echo "#define USE_KQEMU 1" >> $config_h
1139 fi
1140 elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1141 echo "TARGET_ARCH=mips" >> $config_mak
1142 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1143 echo "#define TARGET_MIPS 1" >> $config_h
1144 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1145 elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1146 echo "TARGET_ARCH=mipsn32" >> $config_mak
1147 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1148 echo "#define TARGET_MIPS 1" >> $config_h
1149 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1150 elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1151 echo "TARGET_ARCH=mips64" >> $config_mak
1152 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1153 echo "#define TARGET_MIPS 1" >> $config_h
1154 echo "#define TARGET_MIPS64 1" >> $config_h
1155 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1156 elif test "$target_cpu" = "cris" ; then
1157 echo "TARGET_ARCH=cris" >> $config_mak
1158 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1159 echo "#define TARGET_CRIS 1" >> $config_h
1160 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1161 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1162 elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1163 echo "TARGET_ARCH=sh4" >> $config_mak
1164 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1165 echo "#define TARGET_SH4 1" >> $config_h
1166 bflt="yes"
1167 elif test "$target_cpu" = "m68k" ; then
1168 echo "TARGET_ARCH=m68k" >> $config_mak
1169 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1170 echo "#define TARGET_M68K 1" >> $config_h
1171 bflt="yes"
1172 elif test "$target_cpu" = "alpha" ; then
1173 echo "TARGET_ARCH=alpha" >> $config_mak
1174 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1175 echo "#define TARGET_ALPHA 1" >> $config_h
1176 else
1177 echo "Unsupported target CPU"
1178 exit 1
1179 fi
1180 if test "$target_bigendian" = "yes" ; then
1181 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1182 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1183 fi
1184 if test "$target_softmmu" = "yes" ; then
1185 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1186 echo "#define CONFIG_SOFTMMU 1" >> $config_h
1187 fi
1188 if test "$target_user_only" = "yes" ; then
1189 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1190 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1191 fi
1192 if test "$target_linux_user" = "yes" ; then
1193 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1194 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1195 fi
1196 if test "$target_darwin_user" = "yes" ; then
1197 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1198 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1199 fi
1200
1201 if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then
1202 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1203 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1204 fi
1205 if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1206 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1207 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1208 fi
1209 # 32 bit ELF loader in addition to native 64 bit loader?
1210 if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1211 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1212 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1213 fi
1214
1215 test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1216
1217 done # for target in $targets
1218
1219 # build tree in object directory if source path is different from current one
1220 if test "$source_path_used" = "yes" ; then
1221 DIRS="tests tests/cris slirp audio"
1222 FILES="Makefile tests/Makefile"
1223 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1224 for dir in $DIRS ; do
1225 mkdir -p $dir
1226 done
1227 # remove the link and recreate it, as not all "ln -sf" overwrite the link
1228 for f in $FILES ; do
1229 rm -f $f
1230 ln -s $source_path/$f $f
1231 done
1232 fi
1233
1234 rm -f $TMPO $TMPC $TMPE $TMPS