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