|
|
1.1 root 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"
1.1.1.7 root 18: TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
19: TMPSDLLOG="${TMPDIR1}/qemu-conf-sdl-$$-${RANDOM}.log"
20:
21: trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG; exit" 0 2 3 15
1.1 root 22:
23: # default parameters
24: prefix=""
25: interp_prefix="/usr/gnemul/qemu-%M"
26: static="no"
27: cross_prefix=""
28: cc="gcc"
1.1.1.7 root 29: audio_drv_list=""
30: audio_card_list="ac97 es1370 sb16"
31: audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
1.1 root 32: host_cc="gcc"
33: ar="ar"
34: make="make"
1.1.1.3 root 35: install="install"
1.1 root 36: strip="strip"
1.1.1.7 root 37:
38: # parse CC options first
39: for opt do
40: optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
41: case "$opt" in
42: --cross-prefix=*) cross_prefix="$optarg"
43: ;;
44: --cc=*) cc="$optarg"
45: ;;
46: esac
47: done
48:
49: # OS specific
50: # Using uname is really, really broken. Once we have the right set of checks
51: # we can eliminate it's usage altogether
52:
53: cc="${cross_prefix}${cc}"
54: ar="${cross_prefix}${ar}"
55: strip="${cross_prefix}${strip}"
56:
57: # check that the C compiler works.
58: cat > $TMPC <<EOF
59: int main(void) {}
60: EOF
61:
62: if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then
63: : C compiler works ok
64: else
65: echo "ERROR: \"$cc\" either does not exist or does not work"
66: exit 1
67: fi
68:
69: check_define() {
70: cat > $TMPC <<EOF
71: #if !defined($1)
72: #error Not defined
73: #endif
74: int main(void) { return 0; }
75: EOF
76: $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null
77: }
78:
79: if check_define __i386__ ; then
80: cpu="i386"
81: elif check_define __x86_64__ ; then
82: cpu="x86_64"
83: elif check_define __sparc__ ; then
84: # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
85: # They must be specified using --sparc_cpu
86: if check_define __arch64__ ; then
87: cpu="sparc64"
88: else
89: cpu="sparc"
90: fi
91: elif check_define _ARCH_PPC ; then
92: if check_define _ARCH_PPC64 ; then
93: cpu="ppc64"
94: else
95: cpu="ppc"
96: fi
97: else
98: cpu=`uname -m`
99: fi
100:
1.1 root 101: target_list=""
102: case "$cpu" in
103: i386|i486|i586|i686|i86pc|BePC)
104: cpu="i386"
105: ;;
1.1.1.7 root 106: x86_64|amd64)
107: cpu="x86_64"
108: ;;
109: alpha)
110: cpu="alpha"
111: ;;
1.1 root 112: armv*b)
113: cpu="armv4b"
114: ;;
115: armv*l)
116: cpu="armv4l"
117: ;;
1.1.1.7 root 118: cris)
119: cpu="cris"
120: ;;
121: parisc|parisc64)
122: cpu="hppa"
1.1 root 123: ;;
1.1.1.7 root 124: ia64)
125: cpu="ia64"
126: ;;
127: m68k)
128: cpu="m68k"
1.1 root 129: ;;
130: mips)
131: cpu="mips"
132: ;;
1.1.1.6 root 133: mips64)
134: cpu="mips64"
135: ;;
1.1.1.7 root 136: ppc)
137: cpu="ppc"
138: ;;
139: ppc64)
140: cpu="ppc64"
1.1.1.6 root 141: ;;
142: s390*)
1.1 root 143: cpu="s390"
144: ;;
1.1.1.6 root 145: sparc|sun4[cdmuv])
1.1 root 146: cpu="sparc"
147: ;;
148: sparc64)
149: cpu="sparc64"
150: ;;
151: *)
152: cpu="unknown"
153: ;;
154: esac
155: gprof="no"
1.1.1.7 root 156: sparse="no"
1.1 root 157: bigendian="no"
158: mingw32="no"
159: EXESUF=""
160: gdbstub="yes"
161: slirp="yes"
1.1.1.7 root 162: vde="yes"
1.1 root 163: fmod_lib=""
164: fmod_inc=""
1.1.1.7 root 165: oss_lib=""
1.1.1.6 root 166: vnc_tls="yes"
1.1.1.3 root 167: bsd="no"
1.1 root 168: linux="no"
1.1.1.7 root 169: solaris="no"
1.1 root 170: kqemu="no"
1.1.1.3 root 171: profiler="no"
1.1 root 172: cocoa="no"
173: check_gfx="yes"
1.1.1.3 root 174: softmmu="yes"
1.1.1.5 root 175: linux_user="no"
176: darwin_user="no"
1.1.1.7 root 177: bsd_user="no"
1.1.1.3 root 178: build_docs="no"
1.1.1.4 root 179: uname_release=""
1.1.1.7 root 180: curses="yes"
181: aio="yes"
182: nptl="yes"
183: mixemu="no"
184: bluez="yes"
185: kvm="yes"
186: kerneldir=""
187: aix="no"
188: blobs="yes"
189: fdt="yes"
190: sdl_x11="no"
1.1 root 191:
192: # OS specific
1.1.1.7 root 193: if check_define __linux__ ; then
194: targetos="Linux"
195: elif check_define _WIN32 ; then
196: targetos='MINGW32'
197: else
198: targetos=`uname -s`
199: fi
1.1 root 200: case $targetos in
201: CYGWIN*)
202: mingw32="yes"
1.1.1.5 root 203: OS_CFLAGS="-mno-cygwin"
1.1.1.6 root 204: if [ "$cpu" = "i386" ] ; then
205: kqemu="yes"
206: fi
1.1.1.7 root 207: audio_possible_drivers="sdl"
1.1 root 208: ;;
209: MINGW32*)
210: mingw32="yes"
1.1.1.6 root 211: if [ "$cpu" = "i386" ] ; then
212: kqemu="yes"
213: fi
1.1.1.7 root 214: audio_possible_drivers="dsound sdl fmod"
1.1.1.6 root 215: ;;
216: GNU/kFreeBSD)
1.1.1.7 root 217: audio_drv_list="oss"
218: audio_possible_drivers="oss sdl esd pa"
1.1.1.6 root 219: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
220: kqemu="yes"
221: fi
1.1 root 222: ;;
223: FreeBSD)
224: bsd="yes"
1.1.1.7 root 225: audio_drv_list="oss"
226: audio_possible_drivers="oss sdl esd pa"
1.1 root 227: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
228: kqemu="yes"
229: fi
230: ;;
231: NetBSD)
232: bsd="yes"
1.1.1.7 root 233: audio_drv_list="oss"
234: audio_possible_drivers="oss sdl esd"
235: oss_lib="-lossaudio"
1.1 root 236: ;;
237: OpenBSD)
238: bsd="yes"
1.1.1.7 root 239: openbsd="yes"
240: audio_drv_list="oss"
241: audio_possible_drivers="oss sdl esd"
242: oss_lib="-lossaudio"
1.1 root 243: ;;
244: Darwin)
245: bsd="yes"
246: darwin="yes"
1.1.1.7 root 247: # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can run 64-bit userspace code
248: if [ "$cpu" = "i386" ] ; then
249: is_x86_64=`sysctl -n hw.optional.x86_64`
250: [ "$is_x86_64" = "1" ] && cpu=x86_64
251: fi
252: if [ "$cpu" = "x86_64" ] ; then
253: OS_CFLAGS="-arch x86_64"
254: LDFLAGS="-arch x86_64"
255: else
256: OS_CFLAGS="-mdynamic-no-pic"
257: fi
1.1.1.5 root 258: darwin_user="yes"
259: cocoa="yes"
1.1.1.7 root 260: audio_drv_list="coreaudio"
261: audio_possible_drivers="coreaudio sdl fmod"
262: OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
1.1 root 263: ;;
1.1.1.3 root 264: SunOS)
1.1.1.6 root 265: solaris="yes"
266: make="gmake"
267: install="ginstall"
268: needs_libsunmath="no"
269: solarisrev=`uname -r | cut -f2 -d.`
270: # have to select again, because `uname -m` returns i86pc
271: # even on an x86_64 box.
272: solariscpu=`isainfo -k`
273: if test "${solariscpu}" = "amd64" ; then
274: cpu="x86_64"
275: fi
276: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
277: if test "$solarisrev" -le 9 ; then
278: if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
279: needs_libsunmath="yes"
280: else
281: echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
282: echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
283: echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
284: echo "Studio 11 can be downloaded from www.sun.com."
285: exit 1
286: fi
287: fi
288: if test "$solarisrev" -ge 9 ; then
289: kqemu="yes"
290: fi
291: fi
292: if test -f /usr/include/sys/soundcard.h ; then
1.1.1.7 root 293: audio_drv_list="oss"
1.1.1.6 root 294: fi
1.1.1.7 root 295: audio_possible_drivers="oss sdl"
296: ;;
297: AIX)
298: aix="yes"
299: make="gmake"
1.1.1.3 root 300: ;;
1.1.1.2 root 301: *)
1.1.1.7 root 302: audio_drv_list="oss"
303: audio_possible_drivers="oss alsa sdl esd pa"
1.1 root 304: linux="yes"
1.1.1.5 root 305: linux_user="yes"
1.1.1.7 root 306: usb="linux"
1.1 root 307: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
308: kqemu="yes"
1.1.1.7 root 309: audio_possible_drivers="$audio_possible_drivers fmod"
1.1 root 310: fi
311: ;;
312: esac
313:
314: if [ "$bsd" = "yes" ] ; then
1.1.1.3 root 315: if [ "$darwin" != "yes" ] ; then
1.1 root 316: make="gmake"
1.1.1.7 root 317: usb="bsd"
1.1 root 318: fi
1.1.1.7 root 319: bsd_user="yes"
1.1 root 320: fi
321:
322: # find source path
1.1.1.3 root 323: source_path=`dirname "$0"`
1.1.1.7 root 324: source_path_used="no"
325: workdir=`pwd`
1.1.1.3 root 326: if [ -z "$source_path" ]; then
1.1.1.7 root 327: source_path=$workdir
1.1.1.3 root 328: else
329: source_path=`cd "$source_path"; pwd`
330: fi
1.1.1.7 root 331: [ -f "$workdir/vl.c" ] || source_path_used="yes"
1.1 root 332:
1.1.1.6 root 333: werror="no"
334: # generate compile errors on warnings for development builds
335: #if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
336: #werror="yes";
337: #fi
338:
1.1 root 339: for opt do
1.1.1.3 root 340: optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
1.1 root 341: case "$opt" in
1.1.1.2 root 342: --help|-h) show_help=yes
343: ;;
1.1.1.3 root 344: --prefix=*) prefix="$optarg"
1.1 root 345: ;;
1.1.1.3 root 346: --interp-prefix=*) interp_prefix="$optarg"
1.1 root 347: ;;
1.1.1.3 root 348: --source-path=*) source_path="$optarg"
349: source_path_used="yes"
1.1 root 350: ;;
1.1.1.7 root 351: --cross-prefix=*)
1.1 root 352: ;;
1.1.1.7 root 353: --cc=*)
1.1 root 354: ;;
1.1.1.3 root 355: --host-cc=*) host_cc="$optarg"
1.1 root 356: ;;
1.1.1.3 root 357: --make=*) make="$optarg"
1.1 root 358: ;;
1.1.1.3 root 359: --install=*) install="$optarg"
1.1 root 360: ;;
1.1.1.3 root 361: --extra-cflags=*) CFLAGS="$optarg"
1.1 root 362: ;;
1.1.1.3 root 363: --extra-ldflags=*) LDFLAGS="$optarg"
1.1 root 364: ;;
1.1.1.3 root 365: --cpu=*) cpu="$optarg"
366: ;;
367: --target-list=*) target_list="$optarg"
1.1 root 368: ;;
369: --enable-gprof) gprof="yes"
370: ;;
371: --static) static="yes"
372: ;;
373: --disable-sdl) sdl="no"
374: ;;
1.1.1.7 root 375: --fmod-lib=*) fmod_lib="$optarg"
1.1.1.2 root 376: ;;
1.1.1.7 root 377: --fmod-inc=*) fmod_inc="$optarg"
1.1.1.2 root 378: ;;
1.1.1.7 root 379: --oss-lib=*) oss_lib="$optarg"
1.1.1.2 root 380: ;;
1.1.1.7 root 381: --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
1.1 root 382: ;;
1.1.1.7 root 383: --audio-drv-list=*) audio_drv_list="$optarg"
1.1 root 384: ;;
1.1.1.7 root 385: --enable-sparse) sparse="yes"
1.1 root 386: ;;
1.1.1.7 root 387: --disable-sparse) sparse="no"
1.1.1.6 root 388: ;;
1.1.1.7 root 389: --disable-vnc-tls) vnc_tls="no"
1.1.1.2 root 390: ;;
1.1 root 391: --disable-slirp) slirp="no"
1.1.1.2 root 392: ;;
1.1.1.7 root 393: --disable-vde) vde="no"
1.1.1.2 root 394: ;;
1.1 root 395: --disable-kqemu) kqemu="no"
1.1.1.2 root 396: ;;
1.1.1.7 root 397: --disable-brlapi) brlapi="no"
398: ;;
399: --disable-bluez) bluez="no"
400: ;;
401: --disable-kvm) kvm="no"
402: ;;
1.1.1.3 root 403: --enable-profiler) profiler="yes"
404: ;;
1.1.1.7 root 405: --enable-cocoa)
406: cocoa="yes" ;
407: sdl="no" ;
408: audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
1.1.1.2 root 409: ;;
1.1 root 410: --disable-gfx-check) check_gfx="no"
411: ;;
1.1.1.3 root 412: --disable-system) softmmu="no"
413: ;;
414: --enable-system) softmmu="yes"
415: ;;
1.1.1.5 root 416: --disable-linux-user) linux_user="no"
1.1.1.3 root 417: ;;
1.1.1.5 root 418: --enable-linux-user) linux_user="yes"
1.1.1.3 root 419: ;;
1.1.1.5 root 420: --disable-darwin-user) darwin_user="no"
421: ;;
422: --enable-darwin-user) darwin_user="yes"
1.1.1.4 root 423: ;;
1.1.1.7 root 424: --disable-bsd-user) bsd_user="no"
425: ;;
426: --enable-bsd-user) bsd_user="yes"
427: ;;
1.1.1.5 root 428: --enable-uname-release=*) uname_release="$optarg"
1.1.1.4 root 429: ;;
1.1.1.6 root 430: --sparc_cpu=*)
431: sparc_cpu="$optarg"
432: case $sparc_cpu in
433: v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
434: target_cpu="sparc"; cpu="sparc" ;;
435: v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
436: target_cpu="sparc"; cpu="sparc" ;;
437: v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
438: target_cpu="sparc64"; cpu="sparc64" ;;
439: *) echo "undefined SPARC architecture. Exiting";exit 1;;
440: esac
441: ;;
442: --enable-werror) werror="yes"
443: ;;
444: --disable-werror) werror="no"
445: ;;
1.1.1.7 root 446: --disable-curses) curses="no"
447: ;;
448: --disable-nptl) nptl="no"
449: ;;
450: --enable-mixemu) mixemu="yes"
451: ;;
452: --disable-aio) aio="no"
453: ;;
454: --disable-blobs) blobs="no"
455: ;;
456: --kerneldir=*) kerneldir="$optarg"
457: ;;
1.1.1.6 root 458: *) echo "ERROR: unknown option $opt"; show_help="yes"
459: ;;
1.1 root 460: esac
461: done
462:
1.1.1.5 root 463: # default flags for all hosts
1.1.1.7 root 464: CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
465: CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls"
1.1.1.5 root 466: LDFLAGS="$LDFLAGS -g"
1.1.1.6 root 467: if test "$werror" = "yes" ; then
468: CFLAGS="$CFLAGS -Werror"
469: fi
470:
1.1.1.7 root 471: if test "$solaris" = "no" ; then
472: if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
473: LDFLAGS="$LDFLAGS -Wl,--warn-common"
474: fi
475: fi
476:
1.1.1.6 root 477: #
478: # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
479: # ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
480: #
1.1.1.7 root 481: case "$cpu" in
1.1.1.6 root 482: sparc) if test -z "$sparc_cpu" ; then
483: ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
484: ARCH_LDFLAGS="-m32"
485: else
486: ARCH_CFLAGS="${SP_CFLAGS}"
487: ARCH_LDFLAGS="${SP_LDFLAGS}"
488: fi
489: ;;
490: sparc64) if test -z "$sparc_cpu" ; then
491: ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
492: ARCH_LDFLAGS="-m64"
493: else
494: ARCH_CFLAGS="${SP_CFLAGS}"
495: ARCH_LDFLAGS="${SP_LDFLAGS}"
496: fi
497: ;;
498: s390)
499: ARCH_CFLAGS="-march=z900"
500: ;;
1.1.1.7 root 501: i386)
502: ARCH_CFLAGS="-m32"
503: ARCH_LDFLAGS="-m32"
504: ;;
505: x86_64)
506: ARCH_CFLAGS="-m64"
507: ARCH_LDFLAGS="-m64"
508: ;;
1.1.1.6 root 509: esac
510:
1.1.1.3 root 511: if test x"$show_help" = x"yes" ; then
512: cat << EOF
513:
514: Usage: configure [options]
515: Options: [defaults in brackets after descriptions]
516:
517: EOF
518: echo "Standard options:"
519: echo " --help print this message"
520: echo " --prefix=PREFIX install in PREFIX [$prefix]"
521: echo " --interp-prefix=PREFIX where to find shared libraries, etc."
522: echo " use %M for cpu name [$interp_prefix]"
523: echo " --target-list=LIST set target list [$target_list]"
524: echo ""
525: echo "kqemu kernel acceleration support:"
526: echo " --disable-kqemu disable kqemu support"
527: echo ""
528: echo "Advanced options (experts only):"
529: echo " --source-path=PATH path of source code [$source_path]"
530: echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
531: echo " --cc=CC use C compiler CC [$cc]"
532: echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
533: echo " --make=MAKE use specified make [$make]"
534: echo " --install=INSTALL use specified install [$install]"
535: echo " --static enable static build [$static]"
1.1.1.7 root 536: echo " --enable-sparse enable sparse checker"
537: echo " --disable-sparse disable sparse checker (default)"
1.1.1.6 root 538: echo " --disable-werror disable compilation abort on warning"
539: echo " --disable-sdl disable SDL"
1.1.1.3 root 540: echo " --enable-cocoa enable COCOA (Mac OS X only)"
1.1.1.7 root 541: echo " --audio-drv-list=LIST set audio drivers list:"
542: echo " Available drivers: $audio_possible_drivers"
543: echo " --audio-card-list=LIST set list of emulated audio cards [$audio_card_list]"
544: echo " Available cards: $audio_possible_cards"
545: echo " --enable-mixemu enable mixer emulation"
546: echo " --disable-brlapi disable BrlAPI"
1.1.1.6 root 547: echo " --disable-vnc-tls disable TLS encryption for VNC server"
1.1.1.7 root 548: echo " --disable-curses disable curses output"
549: echo " --disable-bluez disable bluez stack connectivity"
550: echo " --disable-kvm disable KVM acceleration support"
551: echo " --disable-nptl disable usermode NPTL support"
1.1.1.3 root 552: echo " --enable-system enable all system emulation targets"
553: echo " --disable-system disable all system emulation targets"
1.1.1.5 root 554: echo " --enable-linux-user enable all linux usermode emulation targets"
555: echo " --disable-linux-user disable all linux usermode emulation targets"
556: echo " --enable-darwin-user enable all darwin usermode emulation targets"
557: echo " --disable-darwin-user disable all darwin usermode emulation targets"
1.1.1.7 root 558: echo " --enable-bsd-user enable all BSD usermode emulation targets"
559: echo " --disable-bsd-user disable all BSD usermode emulation targets"
1.1.1.3 root 560: echo " --fmod-lib path to FMOD library"
561: echo " --fmod-inc path to FMOD includes"
1.1.1.7 root 562: echo " --oss-lib path to OSS library"
1.1.1.4 root 563: echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
1.1.1.6 root 564: echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
1.1.1.7 root 565: echo " --disable-vde disable support for vde network"
566: echo " --disable-aio disable AIO support"
567: echo " --disable-blobs disable installing provided firmware blobs"
568: echo " --kerneldir=PATH look for kernel includes in PATH"
1.1.1.3 root 569: echo ""
1.1.1.5 root 570: echo "NOTE: The object files are built at the place where configure is launched"
1.1.1.3 root 571: exit 1
572: fi
573:
1.1 root 574: if test "$mingw32" = "yes" ; then
575: linux="no"
576: EXESUF=".exe"
577: oss="no"
1.1.1.7 root 578: linux_user="no"
579: bsd_user="no"
1.1 root 580: fi
581:
1.1.1.7 root 582: if test ! -x "$(which cgcc 2>/dev/null)"; then
583: sparse="no"
1.1.1.5 root 584: fi
585:
1.1.1.3 root 586: #
587: # Solaris specific configure tool chain decisions
588: #
589: if test "$solaris" = "yes" ; then
590: solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
591: if test -z "$solinst" ; then
592: echo "Solaris install program not found. Use --install=/usr/ucb/install or"
593: echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
594: echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
595: exit 1
596: fi
597: if test "$solinst" = "/usr/sbin/install" ; then
598: echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
599: echo "try ginstall from the GNU fileutils available from www.blastwave.org"
600: echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
601: exit 1
602: fi
603: sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
604: if test -z "$sol_ar" ; then
605: echo "Error: No path includes ar"
606: if test -f /usr/ccs/bin/ar ; then
607: echo "Add /usr/ccs/bin to your path and rerun configure"
608: fi
609: exit 1
610: fi
1.1.1.6 root 611: fi
1.1.1.3 root 612:
613:
1.1 root 614: if test -z "$target_list" ; then
615: # these targets are portable
1.1.1.3 root 616: if [ "$softmmu" = "yes" ] ; then
1.1.1.7 root 617: target_list="\
618: i386-softmmu \
619: x86_64-softmmu \
620: arm-softmmu \
621: cris-softmmu \
622: m68k-softmmu \
623: mips-softmmu \
624: mipsel-softmmu \
625: mips64-softmmu \
626: mips64el-softmmu \
627: ppc-softmmu \
628: ppcemb-softmmu \
629: ppc64-softmmu \
630: sh4-softmmu \
631: sh4eb-softmmu \
632: sparc-softmmu \
633: "
1.1.1.3 root 634: fi
1.1 root 635: # the following are Linux specific
1.1.1.5 root 636: if [ "$linux_user" = "yes" ] ; then
1.1.1.7 root 637: target_list="${target_list}\
638: i386-linux-user \
639: x86_64-linux-user \
640: alpha-linux-user \
641: arm-linux-user \
642: armeb-linux-user \
643: cris-linux-user \
644: m68k-linux-user \
645: mips-linux-user \
646: mipsel-linux-user \
647: ppc-linux-user \
648: ppc64-linux-user \
649: ppc64abi32-linux-user \
650: sh4-linux-user \
651: sh4eb-linux-user \
652: sparc-linux-user \
653: sparc64-linux-user \
654: sparc32plus-linux-user \
655: "
1.1.1.5 root 656: fi
657: # the following are Darwin specific
658: if [ "$darwin_user" = "yes" ] ; then
1.1.1.7 root 659: target_list="$target_list i386-darwin-user ppc-darwin-user "
660: fi
661: # the following are BSD specific
662: if [ "$bsd_user" = "yes" ] ; then
663: target_list="${target_list}\
664: sparc64-bsd-user \
665: "
1.1 root 666: fi
667: else
1.1.1.3 root 668: target_list=`echo "$target_list" | sed -e 's/,/ /g'`
669: fi
670: if test -z "$target_list" ; then
671: echo "No targets enabled"
672: exit 1
1.1 root 673: fi
674:
675: if test -z "$cross_prefix" ; then
676:
677: # ---
678: # big/little endian test
679: cat > $TMPC << EOF
680: #include <inttypes.h>
681: int main(int argc, char ** argv){
1.1.1.2 root 682: volatile uint32_t i=0x01234567;
683: return (*((uint8_t*)(&i))) == 0x67;
1.1 root 684: }
685: EOF
686:
1.1.1.7 root 687: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
1.1 root 688: $TMPE && bigendian="yes"
689: else
690: echo big/little test failed
691: fi
692:
693: else
694:
695: # if cross compiling, cannot launch a program, so make a static guess
1.1.1.7 root 696: if test "$cpu" = "armv4b" \
697: -o "$cpu" = "hppa" \
698: -o "$cpu" = "m68k" \
699: -o "$cpu" = "mips" \
700: -o "$cpu" = "mips64" \
701: -o "$cpu" = "ppc" \
702: -o "$cpu" = "ppc64" \
703: -o "$cpu" = "s390" \
704: -o "$cpu" = "sparc" \
705: -o "$cpu" = "sparc64"; then
1.1 root 706: bigendian="yes"
707: fi
708:
709: fi
710:
711: # host long bits test
712: hostlongbits="32"
1.1.1.7 root 713: if test "$cpu" = "x86_64" \
714: -o "$cpu" = "alpha" \
715: -o "$cpu" = "ia64" \
716: -o "$cpu" = "sparc64" \
717: -o "$cpu" = "ppc64"; then
1.1 root 718: hostlongbits="64"
719: fi
720:
721: # check gcc options support
722: cat > $TMPC <<EOF
723: int main(void) {
724: }
725: EOF
726:
1.1.1.7 root 727: # Check host NPTL support
728: cat > $TMPC <<EOF
729: #include <sched.h>
730: #include <linux/futex.h>
731: void foo()
732: {
733: #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
734: #error bork
735: #endif
736: }
737: EOF
738:
739: if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then
740: :
741: else
742: nptl="no"
743: fi
744:
745: ##########################################
746: # zlib check
747:
748: cat > $TMPC << EOF
749: #include <zlib.h>
750: int main(void) { zlibVersion(); return 0; }
751: EOF
752: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz > /dev/null 2> /dev/null ; then
753: :
754: else
755: echo
756: echo "Error: zlib check failed"
757: echo "Make sure to have the zlib libs and headers installed."
758: echo
759: exit 1
760: fi
761:
1.1 root 762: ##########################################
763: # SDL probe
764:
765: sdl_too_old=no
766:
767: if test -z "$sdl" ; then
1.1.1.6 root 768: sdl_config="sdl-config"
769: sdl=no
770: sdl_static=no
771:
1.1 root 772: cat > $TMPC << EOF
773: #include <SDL.h>
774: #undef main /* We don't want SDL to override our main() */
775: int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
776: EOF
1.1.1.7 root 777: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > $TMPSDLLOG 2>&1 ; then
778: _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
779: if test "$_sdlversion" -lt 121 ; then
780: sdl_too_old=yes
781: else
782: if test "$cocoa" = "no" ; then
783: sdl=yes
784: fi
785: fi
786:
787: # static link with sdl ?
788: if test "$sdl" = "yes" ; then
789: aa="no"
790: `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
791: sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
792: if [ "$aa" = "yes" ] ; then
793: sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
1.1.1.6 root 794: fi
795:
1.1.1.7 root 796: if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs > /dev/null 2> /dev/null; then
797: sdl_static=yes
798: fi
799: fi # static link
800: fi # sdl compile test
1.1 root 801: else
1.1.1.6 root 802: # Make sure to disable cocoa if sdl was set
803: if test "$sdl" = "yes" ; then
804: cocoa="no"
1.1.1.7 root 805: audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
1.1.1.6 root 806: fi
807: fi # -z $sdl
1.1 root 808:
1.1.1.7 root 809: if test "$sdl" = "yes" ; then
810: cat > $TMPC <<EOF
811: #include <SDL.h>
812: #if defined(SDL_VIDEO_DRIVER_X11)
813: #include <X11/XKBlib.h>
814: #else
815: #error No x11 support
816: #endif
817: int main(void) { return 0; }
818: EOF
819: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > /dev/null 2>&1 ; then
820: sdl_x11="yes"
821: fi
822: fi
823:
1.1.1.6 root 824: ##########################################
825: # VNC TLS detection
826: if test "$vnc_tls" = "yes" ; then
1.1.1.7 root 827: cat > $TMPC <<EOF
828: #include <gnutls/gnutls.h>
829: int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
830: EOF
831: vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
832: vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
833: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
834: $vnc_tls_libs > /dev/null 2> /dev/null ; then
835: :
836: else
837: vnc_tls="no"
838: fi
1.1.1.6 root 839: fi
1.1.1.7 root 840:
841: ##########################################
842: # vde libraries probe
843: if test "$vde" = "yes" ; then
844: cat > $TMPC << EOF
845: #include <libvdeplug.h>
846: int main(void)
847: {
848: struct vde_open_args a = {0, 0, 0};
849: vde_open("", "", &a);
850: return 0;
851: }
852: EOF
853: if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug > /dev/null 2> /dev/null ; then
854: :
855: else
856: vde="no"
857: fi
1.1 root 858: fi
859:
1.1.1.5 root 860: ##########################################
1.1.1.7 root 861: # Sound support libraries probe
1.1.1.5 root 862:
1.1.1.7 root 863: audio_drv_probe()
864: {
865: drv=$1
866: hdr=$2
867: lib=$3
868: exp=$4
869: cfl=$5
870: cat > $TMPC << EOF
871: #include <$hdr>
872: int main(void) { $exp }
873: EOF
874: if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib > /dev/null 2> /dev/null ; then
875: :
876: else
877: echo
878: echo "Error: $drv check failed"
879: echo "Make sure to have the $drv libs and headers installed."
880: echo
881: exit 1
882: fi
883: }
884:
885: audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
886: for drv in $audio_drv_list; do
887: case $drv in
888: alsa)
889: audio_drv_probe $drv alsa/asoundlib.h -lasound \
890: "snd_pcm_t **handle; return snd_pcm_close(*handle);"
891: ;;
892:
893: fmod)
894: if test -z $fmod_lib || test -z $fmod_inc; then
895: echo
896: echo "Error: You must specify path to FMOD library and headers"
897: echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
898: echo
899: exit 1
900: fi
901: audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
902: ;;
903:
904: esd)
905: audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
906: ;;
907:
908: pa)
909: audio_drv_probe $drv pulse/simple.h -lpulse-simple \
910: "pa_simple *s = NULL; pa_simple_free(s); return 0;"
911: ;;
912:
913: oss|sdl|core|wav|dsound)
914: # XXX: Probes for CoreAudio, DirectSound, SDL(?)
915: ;;
916:
917: *)
918: echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
919: echo
920: echo "Error: Unknown driver '$drv' selected"
921: echo "Possible drivers are: $audio_possible_drivers"
922: echo
923: exit 1
924: }
925: ;;
926: esac
927: done
928:
929: ##########################################
930: # BrlAPI probe
931:
932: if test -z "$brlapi" ; then
933: brlapi=no
934: cat > $TMPC << EOF
935: #include <brlapi.h>
936: int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
937: EOF
938: if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi > /dev/null 2> /dev/null ; then
939: brlapi=yes
940: fi # brlapi compile test
941: fi # -z $brlapi
942:
943: ##########################################
944: # curses probe
945:
946: if test "$curses" = "yes" ; then
947: curses=no
1.1.1.5 root 948: cat > $TMPC << EOF
1.1.1.7 root 949: #include <curses.h>
950: int main(void) { return curses_version(); }
1.1.1.5 root 951: EOF
1.1.1.7 root 952: if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses > /dev/null 2> /dev/null ; then
953: curses=yes
954: fi
955: fi # test "$curses"
956:
957: ##########################################
958: # bluez support probe
959: if test "$bluez" = "yes" ; then
960: `pkg-config bluez` || bluez="no"
961: fi
962: if test "$bluez" = "yes" ; then
963: cat > $TMPC << EOF
964: #include <bluetooth/bluetooth.h>
965: int main(void) { return bt_error(0); }
966: EOF
967: bluez_cflags=`pkg-config --cflags bluez`
968: bluez_libs=`pkg-config --libs bluez`
969: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
970: $bluez_libs > /dev/null 2> /dev/null ; then
1.1.1.5 root 971: :
972: else
1.1.1.7 root 973: bluez="no"
974: fi
975: fi
976:
977: ##########################################
978: # kvm probe
979: if test "$kvm" = "yes" ; then
980: cat > $TMPC <<EOF
981: #include <linux/kvm.h>
982: #if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
983: #error Invalid KVM version
984: #endif
985: #if !defined(KVM_CAP_USER_MEMORY)
986: #error Missing KVM capability KVM_CAP_USER_MEMORY
987: #endif
988: #if !defined(KVM_CAP_SET_TSS_ADDR)
989: #error Missing KVM capability KVM_CAP_SET_TSS_ADDR
990: #endif
991: #if !defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS)
992: #error Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS
993: #endif
994: int main(void) { return 0; }
995: EOF
996: if test "$kerneldir" != "" ; then
997: kvm_cflags=-I"$kerneldir"/include
998: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \
999: -a -d "$kerneldir/arch/x86/include" ; then
1000: kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include"
1001: elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then
1002: kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include"
1003: elif test -d "$kerneldir/arch/$cpu/include" ; then
1004: kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
1005: fi
1006: else
1007: kvm_cflags=""
1008: fi
1009: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
1010: > /dev/null 2>/dev/null ; then
1011: :
1012: else
1013: kvm="no";
1014: if [ -x "`which awk 2>/dev/null`" ] && \
1015: [ -x "`which grep 2>/dev/null`" ]; then
1.1.1.8 ! root 1016: kvmerr=`LANG=C $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC 2>&1 \
1.1.1.7 root 1017: | grep "error: " \
1018: | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
1019: if test "$kvmerr" != "" ; then
1020: kvm="no - (${kvmerr})"
1021: fi
1022: fi
1023: fi
1024: fi
1025:
1026: ##########################################
1027: # AIO probe
1028: AIOLIBS=""
1029:
1030: if test "$aio" = "yes" ; then
1031: aio=no
1032: cat > $TMPC << EOF
1033: #include <pthread.h>
1034: int main(void) { pthread_mutex_t lock; return 0; }
1035: EOF
1036: if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
1037: aio=yes
1038: AIOLIBS="-lpthread"
1039: fi
1040: fi
1041:
1042: ##########################################
1043: # iovec probe
1044: cat > $TMPC <<EOF
1045: #include <sys/types.h>
1046: #include <sys/uio.h>
1047: #include <unistd.h>
1048: int main(void) { struct iovec iov; return 0; }
1049: EOF
1050: iovec=no
1051: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
1052: iovec=yes
1053: fi
1054:
1055: ##########################################
1056: # fdt probe
1057: if test "$fdt" = "yes" ; then
1058: fdt=no
1059: cat > $TMPC << EOF
1060: int main(void) { return 0; }
1061: EOF
1062: if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lfdt 2> /dev/null ; then
1063: fdt=yes
1.1.1.5 root 1064: fi
1065: fi
1066:
1.1.1.3 root 1067: # Check if tools are available to build documentation.
1.1.1.6 root 1068: if [ -x "`which texi2html 2>/dev/null`" ] && \
1069: [ -x "`which pod2man 2>/dev/null`" ]; then
1.1.1.3 root 1070: build_docs="yes"
1.1 root 1071: fi
1072:
1.1.1.7 root 1073: ##########################################
1074: # Do we need librt
1075: cat > $TMPC <<EOF
1076: #include <signal.h>
1077: #include <time.h>
1078: int main(void) { clockid_t id; return clock_gettime(id, NULL); }
1079: EOF
1080:
1081: rt=no
1082: if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
1083: :
1084: elif $cc $ARCH_CFLAGS -o $TMPE $TMPC -lrt > /dev/null 2> /dev/null ; then
1085: rt=yes
1086: fi
1087:
1088: if test "$rt" = "yes" ; then
1089: # Hack, we should have a general purpose LIBS for this sort of thing
1090: AIOLIBS="$AIOLIBS -lrt"
1091: fi
1092:
1.1 root 1093: if test "$mingw32" = "yes" ; then
1.1.1.6 root 1094: if test -z "$prefix" ; then
1.1.1.7 root 1095: prefix="c:\\\\Program Files\\\\Qemu"
1.1.1.6 root 1096: fi
1097: mansuffix=""
1098: datasuffix=""
1099: docsuffix=""
1100: binsuffix=""
1101: else
1102: if test -z "$prefix" ; then
1103: prefix="/usr/local"
1104: fi
1105: mansuffix="/share/man"
1106: datasuffix="/share/qemu"
1107: docsuffix="/share/doc/qemu"
1108: binsuffix="/bin"
1.1 root 1109: fi
1110:
1111: echo "Install prefix $prefix"
1.1.1.6 root 1112: echo "BIOS directory $prefix$datasuffix"
1113: echo "binary directory $prefix$binsuffix"
1.1 root 1114: if test "$mingw32" = "no" ; then
1.1.1.6 root 1115: echo "Manual directory $prefix$mansuffix"
1.1 root 1116: echo "ELF interp prefix $interp_prefix"
1117: fi
1118: echo "Source path $source_path"
1119: echo "C compiler $cc"
1120: echo "Host C compiler $host_cc"
1.1.1.7 root 1121: echo "ARCH_CFLAGS $ARCH_CFLAGS"
1.1 root 1122: echo "make $make"
1.1.1.3 root 1123: echo "install $install"
1.1 root 1124: echo "host CPU $cpu"
1125: echo "host big endian $bigendian"
1126: echo "target list $target_list"
1127: echo "gprof enabled $gprof"
1.1.1.7 root 1128: echo "sparse enabled $sparse"
1.1.1.3 root 1129: echo "profiler $profiler"
1.1 root 1130: echo "static build $static"
1.1.1.6 root 1131: echo "-Werror enabled $werror"
1.1 root 1132: if test "$darwin" = "yes" ; then
1133: echo "Cocoa support $cocoa"
1134: fi
1135: echo "SDL support $sdl"
1136: if test "$sdl" != "no" ; then
1137: echo "SDL static link $sdl_static"
1138: fi
1.1.1.7 root 1139: echo "curses support $curses"
1.1 root 1140: echo "mingw32 support $mingw32"
1.1.1.7 root 1141: echo "Audio drivers $audio_drv_list"
1142: echo "Extra audio cards $audio_card_list"
1143: echo "Mixer emulation $mixemu"
1.1.1.6 root 1144: echo "VNC TLS support $vnc_tls"
1145: if test "$vnc_tls" = "yes" ; then
1146: echo " TLS CFLAGS $vnc_tls_cflags"
1147: echo " TLS LIBS $vnc_tls_libs"
1148: fi
1149: if test -n "$sparc_cpu"; then
1150: echo "Target Sparc Arch $sparc_cpu"
1151: fi
1.1.1.3 root 1152: echo "kqemu support $kqemu"
1.1.1.7 root 1153: echo "brlapi support $brlapi"
1.1.1.3 root 1154: echo "Documentation $build_docs"
1.1.1.4 root 1155: [ ! -z "$uname_release" ] && \
1156: echo "uname -r $uname_release"
1.1.1.7 root 1157: echo "NPTL support $nptl"
1158: echo "vde support $vde"
1159: echo "AIO support $aio"
1160: echo "Install blobs $blobs"
1161: echo "KVM support $kvm"
1162: echo "fdt support $fdt"
1.1 root 1163:
1164: if test $sdl_too_old = "yes"; then
1165: echo "-> Your SDL version is too old - please upgrade to have SDL support"
1166: fi
1.1.1.7 root 1167: if [ -s $TMPSDLLOG ]; then
1.1.1.6 root 1168: echo "The error log from compiling the libSDL test is: "
1.1.1.7 root 1169: cat $TMPSDLLOG
1.1.1.6 root 1170: fi
1.1 root 1171: #if test "$sdl_static" = "no"; then
1172: # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1173: #fi
1174: config_mak="config-host.mak"
1175: config_h="config-host.h"
1176:
1177: #echo "Creating $config_mak and $config_h"
1178:
1.1.1.6 root 1179: test -f $config_h && mv $config_h ${config_h}~
1180:
1.1 root 1181: echo "# Automatically generated by configure - do not modify" > $config_mak
1.1.1.7 root 1182: printf "# Configured with:" >> $config_mak
1183: printf " '%s'" "$0" "$@" >> $config_mak
1184: echo >> $config_mak
1.1 root 1185: echo "/* Automatically generated by configure - do not modify */" > $config_h
1186:
1187: echo "prefix=$prefix" >> $config_mak
1.1.1.6 root 1188: echo "bindir=\${prefix}$binsuffix" >> $config_mak
1189: echo "mandir=\${prefix}$mansuffix" >> $config_mak
1190: echo "datadir=\${prefix}$datasuffix" >> $config_mak
1191: echo "docdir=\${prefix}$docsuffix" >> $config_mak
1192: echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1.1 root 1193: echo "MAKE=$make" >> $config_mak
1.1.1.3 root 1194: echo "INSTALL=$install" >> $config_mak
1.1 root 1195: echo "CC=$cc" >> $config_mak
1196: echo "HOST_CC=$host_cc" >> $config_mak
1197: echo "AR=$ar" >> $config_mak
1198: echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
1.1.1.7 root 1199: # XXX: only use CFLAGS and LDFLAGS ?
1200: # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1201: # compilation of dyngen tool (useful for win32 build on Linux host)
1.1.1.5 root 1202: echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1.1.1.6 root 1203: echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1204: echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1205: echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1.1 root 1206: echo "CFLAGS=$CFLAGS" >> $config_mak
1207: echo "LDFLAGS=$LDFLAGS" >> $config_mak
1208: echo "EXESUF=$EXESUF" >> $config_mak
1.1.1.6 root 1209: echo "AIOLIBS=$AIOLIBS" >> $config_mak
1.1.1.7 root 1210: case "$cpu" in
1211: i386)
1212: echo "ARCH=i386" >> $config_mak
1213: echo "#define HOST_I386 1" >> $config_h
1214: ;;
1215: x86_64)
1216: echo "ARCH=x86_64" >> $config_mak
1217: echo "#define HOST_X86_64 1" >> $config_h
1218: ;;
1219: alpha)
1220: echo "ARCH=alpha" >> $config_mak
1221: echo "#define HOST_ALPHA 1" >> $config_h
1222: ;;
1223: armv4b)
1224: echo "ARCH=arm" >> $config_mak
1225: echo "#define HOST_ARM 1" >> $config_h
1226: ;;
1227: armv4l)
1228: echo "ARCH=arm" >> $config_mak
1229: echo "#define HOST_ARM 1" >> $config_h
1230: ;;
1231: cris)
1232: echo "ARCH=cris" >> $config_mak
1233: echo "#define HOST_CRIS 1" >> $config_h
1234: ;;
1235: hppa)
1236: echo "ARCH=hppa" >> $config_mak
1237: echo "#define HOST_HPPA 1" >> $config_h
1238: ;;
1239: ia64)
1240: echo "ARCH=ia64" >> $config_mak
1241: echo "#define HOST_IA64 1" >> $config_h
1242: ;;
1243: m68k)
1244: echo "ARCH=m68k" >> $config_mak
1245: echo "#define HOST_M68K 1" >> $config_h
1246: ;;
1247: mips)
1248: echo "ARCH=mips" >> $config_mak
1249: echo "#define HOST_MIPS 1" >> $config_h
1250: ;;
1251: mips64)
1252: echo "ARCH=mips64" >> $config_mak
1253: echo "#define HOST_MIPS64 1" >> $config_h
1254: ;;
1255: ppc)
1256: echo "ARCH=ppc" >> $config_mak
1257: echo "#define HOST_PPC 1" >> $config_h
1258: ;;
1259: ppc64)
1260: echo "ARCH=ppc64" >> $config_mak
1261: echo "#define HOST_PPC64 1" >> $config_h
1262: ;;
1263: s390)
1264: echo "ARCH=s390" >> $config_mak
1265: echo "#define HOST_S390 1" >> $config_h
1266: ;;
1267: sparc)
1268: echo "ARCH=sparc" >> $config_mak
1269: echo "#define HOST_SPARC 1" >> $config_h
1270: ;;
1271: sparc64)
1272: echo "ARCH=sparc64" >> $config_mak
1273: echo "#define HOST_SPARC64 1" >> $config_h
1274: ;;
1275: *)
1276: echo "Unsupported CPU = $cpu"
1277: exit 1
1278: ;;
1279: esac
1280: if test "$sparse" = "yes" ; then
1281: echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
1282: echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
1283: echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
1.1 root 1284: fi
1285: if test "$bigendian" = "yes" ; then
1286: echo "WORDS_BIGENDIAN=yes" >> $config_mak
1287: echo "#define WORDS_BIGENDIAN 1" >> $config_h
1288: fi
1289: echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1290: if test "$mingw32" = "yes" ; then
1291: echo "CONFIG_WIN32=yes" >> $config_mak
1292: echo "#define CONFIG_WIN32 1" >> $config_h
1.1.1.6 root 1293: else
1294: cat > $TMPC << EOF
1295: #include <byteswap.h>
1296: int main(void) { return bswap_32(0); }
1297: EOF
1.1.1.7 root 1298: if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
1.1.1.6 root 1299: echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1300: fi
1.1.1.7 root 1301: cat > $TMPC << EOF
1302: #include <sys/endian.h>
1303: #include <sys/types.h>
1304: #include <machine/bswap.h>
1305: int main(void) { return bswap32(0); }
1306: EOF
1307: if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
1308: echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_h
1309: fi
1310: fi
1311:
1312: if [ "$openbsd" = "yes" ] ; then
1313: echo "#define ENOTSUP 4096" >> $config_h
1.1 root 1314: fi
1.1.1.7 root 1315:
1.1 root 1316: if test "$darwin" = "yes" ; then
1317: echo "CONFIG_DARWIN=yes" >> $config_mak
1318: echo "#define CONFIG_DARWIN 1" >> $config_h
1319: fi
1.1.1.7 root 1320:
1321: if test "$aix" = "yes" ; then
1322: echo "CONFIG_AIX=yes" >> $config_mak
1323: echo "#define CONFIG_AIX 1" >> $config_h
1324: fi
1325:
1.1.1.3 root 1326: if test "$solaris" = "yes" ; then
1327: echo "CONFIG_SOLARIS=yes" >> $config_mak
1328: echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1.1.1.6 root 1329: if test "$needs_libsunmath" = "yes" ; then
1330: echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1331: echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1332: fi
1333: fi
1334: if test -n "$sparc_cpu"; then
1335: echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1336: echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1.1.1.3 root 1337: fi
1.1 root 1338: if test "$gdbstub" = "yes" ; then
1339: echo "CONFIG_GDBSTUB=yes" >> $config_mak
1340: echo "#define CONFIG_GDBSTUB 1" >> $config_h
1341: fi
1342: if test "$gprof" = "yes" ; then
1343: echo "TARGET_GPROF=yes" >> $config_mak
1344: echo "#define HAVE_GPROF 1" >> $config_h
1345: fi
1346: if test "$static" = "yes" ; then
1347: echo "CONFIG_STATIC=yes" >> $config_mak
1348: echo "#define CONFIG_STATIC 1" >> $config_h
1349: fi
1.1.1.3 root 1350: if test $profiler = "yes" ; then
1351: echo "#define CONFIG_PROFILER 1" >> $config_h
1352: fi
1.1 root 1353: if test "$slirp" = "yes" ; then
1354: echo "CONFIG_SLIRP=yes" >> $config_mak
1355: echo "#define CONFIG_SLIRP 1" >> $config_h
1356: fi
1.1.1.7 root 1357: if test "$vde" = "yes" ; then
1358: echo "CONFIG_VDE=yes" >> $config_mak
1359: echo "#define CONFIG_VDE 1" >> $config_h
1360: echo "VDE_LIBS=-lvdeplug" >> $config_mak
1361: fi
1362: for card in $audio_card_list; do
1363: def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1364: echo "$def=yes" >> $config_mak
1365: echo "#define $def 1" >> $config_h
1366: done
1367: echo "#define AUDIO_DRIVERS \\" >> $config_h
1368: for drv in $audio_drv_list; do
1369: echo " &${drv}_audio_driver, \\" >>$config_h
1370: def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1371: echo "$def=yes" >> $config_mak
1372: if test "$drv" = "fmod"; then
1373: echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1374: echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1375: elif test "$drv" = "oss"; then
1376: echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1377: fi
1378: done
1379: echo "" >>$config_h
1380: if test "$mixemu" = "yes" ; then
1381: echo "CONFIG_MIXEMU=yes" >> $config_mak
1382: echo "#define CONFIG_MIXEMU 1" >> $config_h
1.1 root 1383: fi
1.1.1.6 root 1384: if test "$vnc_tls" = "yes" ; then
1385: echo "CONFIG_VNC_TLS=yes" >> $config_mak
1386: echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1387: echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1388: echo "#define CONFIG_VNC_TLS 1" >> $config_h
1389: fi
1.1.1.3 root 1390: qemu_version=`head $source_path/VERSION`
1391: echo "VERSION=$qemu_version" >>$config_mak
1392: echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1393:
1.1 root 1394: echo "SRC_PATH=$source_path" >> $config_mak
1.1.1.3 root 1395: if [ "$source_path_used" = "yes" ]; then
1396: echo "VPATH=$source_path" >> $config_mak
1397: fi
1.1 root 1398: echo "TARGET_DIRS=$target_list" >> $config_mak
1.1.1.3 root 1399: if [ "$build_docs" = "yes" ] ; then
1400: echo "BUILD_DOCS=yes" >> $config_mak
1401: fi
1.1.1.6 root 1402: if test "$static" = "yes"; then
1403: sdl1=$sdl_static
1404: else
1405: sdl1=$sdl
1406: fi
1407: if test "$sdl1" = "yes" ; then
1408: echo "#define CONFIG_SDL 1" >> $config_h
1409: echo "CONFIG_SDL=yes" >> $config_mak
1410: if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1411: echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1.1.1.7 root 1412: elif test "$sdl_x11" = "yes" ; then
1413: echo "SDL_LIBS=`$sdl_config --libs` -lX11" >> $config_mak
1.1.1.6 root 1414: else
1415: echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1416: fi
1417: if [ "${aa}" = "yes" ] ; then
1418: echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1419: else
1420: echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1421: fi
1422: fi
1423: if test "$cocoa" = "yes" ; then
1.1.1.7 root 1424: echo "#define CONFIG_COCOA 1" >> $config_h
1425: echo "CONFIG_COCOA=yes" >> $config_mak
1426: fi
1427: if test "$curses" = "yes" ; then
1428: echo "#define CONFIG_CURSES 1" >> $config_h
1429: echo "CONFIG_CURSES=yes" >> $config_mak
1430: echo "CURSES_LIBS=-lcurses" >> $config_mak
1431: fi
1432: if test "$brlapi" = "yes" ; then
1433: echo "CONFIG_BRLAPI=yes" >> $config_mak
1434: echo "#define CONFIG_BRLAPI 1" >> $config_h
1435: echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1436: fi
1437: if test "$bluez" = "yes" ; then
1438: echo "CONFIG_BLUEZ=yes" >> $config_mak
1439: echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1440: echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1441: echo "#define CONFIG_BLUEZ 1" >> $config_h
1442: fi
1443: if test "$aio" = "yes" ; then
1444: echo "#define CONFIG_AIO 1" >> $config_h
1445: echo "CONFIG_AIO=yes" >> $config_mak
1446: fi
1447: if test "$blobs" = "yes" ; then
1448: echo "INSTALL_BLOBS=yes" >> $config_mak
1449: fi
1450: if test "$iovec" = "yes" ; then
1451: echo "#define HAVE_IOVEC 1" >> $config_h
1452: fi
1453: if test "$fdt" = "yes" ; then
1454: echo "#define HAVE_FDT 1" >> $config_h
1455: echo "FDT_LIBS=-lfdt" >> $config_mak
1.1.1.6 root 1456: fi
1.1 root 1457:
1458: # XXX: suppress that
1459: if [ "$bsd" = "yes" ] ; then
1460: echo "#define O_LARGEFILE 0" >> $config_h
1461: echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1462: echo "#define _BSD 1" >> $config_h
1463: fi
1464:
1.1.1.4 root 1465: echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1466:
1.1.1.7 root 1467: # USB host support
1468: case "$usb" in
1469: linux)
1470: echo "HOST_USB=linux" >> $config_mak
1471: ;;
1472: bsd)
1473: echo "HOST_USB=bsd" >> $config_mak
1474: ;;
1475: *)
1476: echo "HOST_USB=stub" >> $config_mak
1477: ;;
1478: esac
1479:
1.1.1.6 root 1480: tools=
1481: if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1482: tools="qemu-img\$(EXESUF) $tools"
1.1.1.7 root 1483: if [ "$linux" = "yes" ] ; then
1484: tools="qemu-nbd\$(EXESUF) $tools"
1485: fi
1.1.1.6 root 1486: fi
1487: echo "TOOLS=$tools" >> $config_mak
1488:
1489: test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1490:
1.1.1.2 root 1491: for target in $target_list; do
1.1 root 1492: target_dir="$target"
1493: config_mak=$target_dir/config.mak
1494: config_h=$target_dir/config.h
1495: target_cpu=`echo $target | cut -d '-' -f 1`
1496: target_bigendian="no"
1497: [ "$target_cpu" = "armeb" ] && target_bigendian=yes
1.1.1.7 root 1498: [ "$target_cpu" = "m68k" ] && target_bigendian=yes
1499: [ "$target_cpu" = "mips" ] && target_bigendian=yes
1500: [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1501: [ "$target_cpu" = "mips64" ] && target_bigendian=yes
1.1 root 1502: [ "$target_cpu" = "ppc" ] && target_bigendian=yes
1.1.1.6 root 1503: [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1.1 root 1504: [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1.1.1.6 root 1505: [ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1.1.1.4 root 1506: [ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1.1.1.7 root 1507: [ "$target_cpu" = "sparc" ] && target_bigendian=yes
1508: [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1509: [ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1.1 root 1510: target_softmmu="no"
1511: target_user_only="no"
1.1.1.5 root 1512: target_linux_user="no"
1513: target_darwin_user="no"
1.1.1.7 root 1514: target_bsd_user="no"
1.1.1.6 root 1515: case "$target" in
1516: ${target_cpu}-softmmu)
1517: target_softmmu="yes"
1518: ;;
1519: ${target_cpu}-linux-user)
1520: target_user_only="yes"
1521: target_linux_user="yes"
1522: ;;
1523: ${target_cpu}-darwin-user)
1524: target_user_only="yes"
1525: target_darwin_user="yes"
1526: ;;
1.1.1.7 root 1527: ${target_cpu}-bsd-user)
1528: target_user_only="yes"
1529: target_bsd_user="yes"
1530: ;;
1.1.1.6 root 1531: *)
1532: echo "ERROR: Target '$target' not recognised"
1533: exit 1
1534: ;;
1535: esac
1.1.1.5 root 1536:
1.1 root 1537: if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1.1.1.2 root 1538: -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1.1 root 1539: echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1.1.1.3 root 1540: echo "To build QEMU without graphical output configure with --disable-gfx-check"
1.1.1.7 root 1541: echo "Note that this will disable all output from the virtual graphics card"
1542: echo "except through VNC or curses."
1.1 root 1543: exit 1;
1544: fi
1545:
1546: #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1547:
1.1.1.6 root 1548: test -f $config_h && mv $config_h ${config_h}~
1549:
1.1 root 1550: mkdir -p $target_dir
1551: mkdir -p $target_dir/fpu
1.1.1.7 root 1552: mkdir -p $target_dir/tcg
1553: if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
1.1 root 1554: mkdir -p $target_dir/nwfpe
1555: fi
1556:
1.1.1.3 root 1557: #
1558: # don't use ln -sf as not all "ln -sf" over write the file/link
1559: #
1560: rm -f $target_dir/Makefile
1561: ln -s $source_path/Makefile.target $target_dir/Makefile
1562:
1.1 root 1563:
1564: echo "# Automatically generated by configure - do not modify" > $config_mak
1565: echo "/* Automatically generated by configure - do not modify */" > $config_h
1566:
1567:
1568: echo "include ../config-host.mak" >> $config_mak
1569: echo "#include \"../config-host.h\"" >> $config_h
1570:
1.1.1.4 root 1571: bflt="no"
1.1.1.6 root 1572: elfload32="no"
1.1.1.7 root 1573: target_nptl="no"
1.1 root 1574: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1575: echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1.1.1.7 root 1576: gdb_xml_files=""
1.1 root 1577:
1.1.1.7 root 1578: # Make sure the target and host cpus are compatible
1579: if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
1580: \( "$target_cpu" = "ppcemb" -a "$cpu" = "ppc" \) -o \
1581: \( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
1582: \( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
1583: kvm="no"
1584: fi
1585: # Disable KVM for linux-user
1586: if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
1587: kvm="no"
1588: fi
1589:
1590: case "$target_cpu" in
1591: i386)
1592: echo "TARGET_ARCH=i386" >> $config_mak
1593: echo "#define TARGET_ARCH \"i386\"" >> $config_h
1594: echo "#define TARGET_I386 1" >> $config_h
1595: if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1596: then
1597: echo "#define USE_KQEMU 1" >> $config_h
1598: fi
1599: if test "$kvm" = "yes" ; then
1600: echo "CONFIG_KVM=yes" >> $config_mak
1601: echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1602: echo "#define CONFIG_KVM 1" >> $config_h
1603: fi
1604: ;;
1605: x86_64)
1606: echo "TARGET_ARCH=x86_64" >> $config_mak
1607: echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1608: echo "#define TARGET_I386 1" >> $config_h
1609: echo "#define TARGET_X86_64 1" >> $config_h
1610: if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1611: then
1612: echo "#define USE_KQEMU 1" >> $config_h
1613: fi
1614: if test "$kvm" = "yes" ; then
1615: echo "CONFIG_KVM=yes" >> $config_mak
1616: echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1617: echo "#define CONFIG_KVM 1" >> $config_h
1618: fi
1619: ;;
1620: alpha)
1621: echo "TARGET_ARCH=alpha" >> $config_mak
1622: echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1623: echo "#define TARGET_ALPHA 1" >> $config_h
1624: ;;
1625: arm|armeb)
1626: echo "TARGET_ARCH=arm" >> $config_mak
1627: echo "#define TARGET_ARCH \"arm\"" >> $config_h
1628: echo "#define TARGET_ARM 1" >> $config_h
1629: bflt="yes"
1630: target_nptl="yes"
1631: gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
1632: ;;
1633: cris)
1634: echo "TARGET_ARCH=cris" >> $config_mak
1635: echo "#define TARGET_ARCH \"cris\"" >> $config_h
1636: echo "#define TARGET_CRIS 1" >> $config_h
1637: target_nptl="yes"
1638: ;;
1639: m68k)
1640: echo "TARGET_ARCH=m68k" >> $config_mak
1641: echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1642: echo "#define TARGET_M68K 1" >> $config_h
1643: bflt="yes"
1644: gdb_xml_files="cf-core.xml cf-fp.xml"
1645: ;;
1646: mips|mipsel)
1647: echo "TARGET_ARCH=mips" >> $config_mak
1648: echo "#define TARGET_ARCH \"mips\"" >> $config_h
1649: echo "#define TARGET_MIPS 1" >> $config_h
1650: echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1651: ;;
1652: mipsn32|mipsn32el)
1653: echo "TARGET_ARCH=mipsn32" >> $config_mak
1654: echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1655: echo "#define TARGET_MIPS 1" >> $config_h
1656: echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1657: ;;
1658: mips64|mips64el)
1659: echo "TARGET_ARCH=mips64" >> $config_mak
1660: echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1661: echo "#define TARGET_MIPS 1" >> $config_h
1662: echo "#define TARGET_MIPS64 1" >> $config_h
1663: echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1664: ;;
1665: ppc)
1666: echo "TARGET_ARCH=ppc" >> $config_mak
1667: echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1668: echo "#define TARGET_PPC 1" >> $config_h
1669: gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1670: ;;
1671: ppcemb)
1672: echo "TARGET_ARCH=ppcemb" >> $config_mak
1673: echo "TARGET_ABI_DIR=ppc" >> $config_mak
1674: echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1675: echo "#define TARGET_PPC 1" >> $config_h
1676: echo "#define TARGET_PPCEMB 1" >> $config_h
1677: if test "$kvm" = "yes" ; then
1678: echo "CONFIG_KVM=yes" >> $config_mak
1679: echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1680: echo "#define CONFIG_KVM 1" >> $config_h
1681: fi
1682: gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1683: ;;
1684: ppc64)
1685: echo "TARGET_ARCH=ppc64" >> $config_mak
1686: echo "TARGET_ABI_DIR=ppc" >> $config_mak
1687: echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1688: echo "#define TARGET_PPC 1" >> $config_h
1689: echo "#define TARGET_PPC64 1" >> $config_h
1690: gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1691: ;;
1692: ppc64abi32)
1693: echo "TARGET_ARCH=ppc64" >> $config_mak
1694: echo "TARGET_ABI_DIR=ppc" >> $config_mak
1695: echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1696: echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1697: echo "#define TARGET_PPC 1" >> $config_h
1698: echo "#define TARGET_PPC64 1" >> $config_h
1699: echo "#define TARGET_ABI32 1" >> $config_h
1700: gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1701: ;;
1702: sh4|sh4eb)
1703: echo "TARGET_ARCH=sh4" >> $config_mak
1704: echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1705: echo "#define TARGET_SH4 1" >> $config_h
1706: bflt="yes"
1707: target_nptl="yes"
1708: ;;
1709: sparc)
1710: echo "TARGET_ARCH=sparc" >> $config_mak
1711: echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1712: echo "#define TARGET_SPARC 1" >> $config_h
1713: ;;
1714: sparc64)
1715: echo "TARGET_ARCH=sparc64" >> $config_mak
1716: echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1717: echo "#define TARGET_SPARC 1" >> $config_h
1718: echo "#define TARGET_SPARC64 1" >> $config_h
1719: elfload32="yes"
1720: ;;
1721: sparc32plus)
1722: echo "TARGET_ARCH=sparc64" >> $config_mak
1723: echo "TARGET_ABI_DIR=sparc" >> $config_mak
1724: echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1725: echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1726: echo "#define TARGET_SPARC 1" >> $config_h
1727: echo "#define TARGET_SPARC64 1" >> $config_h
1728: echo "#define TARGET_ABI32 1" >> $config_h
1729: ;;
1730: *)
1731: echo "Unsupported target CPU"
1732: exit 1
1733: ;;
1734: esac
1.1 root 1735: if test "$target_bigendian" = "yes" ; then
1736: echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1737: echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1738: fi
1739: if test "$target_softmmu" = "yes" ; then
1740: echo "CONFIG_SOFTMMU=yes" >> $config_mak
1741: echo "#define CONFIG_SOFTMMU 1" >> $config_h
1742: fi
1743: if test "$target_user_only" = "yes" ; then
1744: echo "CONFIG_USER_ONLY=yes" >> $config_mak
1745: echo "#define CONFIG_USER_ONLY 1" >> $config_h
1746: fi
1.1.1.5 root 1747: if test "$target_linux_user" = "yes" ; then
1748: echo "CONFIG_LINUX_USER=yes" >> $config_mak
1749: echo "#define CONFIG_LINUX_USER 1" >> $config_h
1750: fi
1751: if test "$target_darwin_user" = "yes" ; then
1752: echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1753: echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1754: fi
1.1.1.7 root 1755: list=""
1756: if test ! -z "$gdb_xml_files" ; then
1757: for x in $gdb_xml_files; do
1758: list="$list $source_path/gdb-xml/$x"
1759: done
1760: fi
1761: echo "TARGET_XML_FILES=$list" >> $config_mak
1762:
1763: if test "$target_cpu" = "arm" \
1764: -o "$target_cpu" = "armeb" \
1765: -o "$target_cpu" = "m68k" \
1766: -o "$target_cpu" = "mips" \
1767: -o "$target_cpu" = "mipsel" \
1768: -o "$target_cpu" = "mipsn32" \
1769: -o "$target_cpu" = "mipsn32el" \
1770: -o "$target_cpu" = "mips64" \
1771: -o "$target_cpu" = "mips64el" \
1772: -o "$target_cpu" = "ppc" \
1773: -o "$target_cpu" = "ppc64" \
1774: -o "$target_cpu" = "ppc64abi32" \
1775: -o "$target_cpu" = "ppcemb" \
1776: -o "$target_cpu" = "sparc" \
1777: -o "$target_cpu" = "sparc64" \
1778: -o "$target_cpu" = "sparc32plus"; then
1.1 root 1779: echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1780: echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1781: fi
1.1.1.4 root 1782: if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1783: echo "TARGET_HAS_BFLT=yes" >> $config_mak
1784: echo "#define TARGET_HAS_BFLT 1" >> $config_h
1785: fi
1.1.1.7 root 1786: if test "$target_user_only" = "yes" \
1787: -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1788: echo "#define USE_NPTL 1" >> $config_h
1789: fi
1.1.1.6 root 1790: # 32 bit ELF loader in addition to native 64 bit loader?
1791: if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1792: echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1793: echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1.1 root 1794: fi
1.1.1.7 root 1795: if test "$target_bsd_user" = "yes" ; then
1796: echo "CONFIG_BSD_USER=yes" >> $config_mak
1797: echo "#define CONFIG_BSD_USER 1" >> $config_h
1798: fi
1.1 root 1799:
1.1.1.6 root 1800: test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1.1 root 1801:
1802: done # for target in $targets
1803:
1804: # build tree in object directory if source path is different from current one
1805: if test "$source_path_used" = "yes" ; then
1.1.1.6 root 1806: DIRS="tests tests/cris slirp audio"
1.1 root 1807: FILES="Makefile tests/Makefile"
1.1.1.6 root 1808: FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1.1.1.7 root 1809: FILES="$FILES tests/test-mmap.c"
1.1 root 1810: for dir in $DIRS ; do
1811: mkdir -p $dir
1812: done
1.1.1.3 root 1813: # remove the link and recreate it, as not all "ln -sf" overwrite the link
1.1 root 1814: for f in $FILES ; do
1.1.1.3 root 1815: rm -f $f
1816: ln -s $source_path/$f $f
1.1 root 1817: done
1818: fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.