|
|
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"
1.1.1.11 root 16: TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe"
1.1.1.7 root 17:
1.1.1.14! root 18: # NB: do not call "exit" in the trap handler; this is buggy with some shells;
! 19: # see <[email protected]>
! 20: trap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM
! 21: rm -f config.log
1.1.1.11 root 22:
23: compile_object() {
1.1.1.14! root 24: echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
! 25: $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
1.1.1.11 root 26: }
27:
28: compile_prog() {
29: local_cflags="$1"
30: local_ldflags="$2"
1.1.1.14! root 31: echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
! 32: $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
! 33: }
! 34:
! 35: # symbolically link $1 to $2. Portable version of "ln -sf".
! 36: symlink() {
! 37: rm -f $2
! 38: ln -s $1 $2
1.1.1.11 root 39: }
1.1 root 40:
1.1.1.13 root 41: # check whether a command is available to this shell (may be either an
42: # executable or a builtin)
43: has() {
44: type "$1" >/dev/null 2>&1
45: }
46:
47: # search for an executable in PATH
48: path_of() {
49: local_command="$1"
50: local_ifs="$IFS"
51: local_dir=""
52:
53: # pathname has a dir component?
54: if [ "${local_command#*/}" != "$local_command" ]; then
55: if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then
56: echo "$local_command"
57: return 0
58: fi
59: fi
60: if [ -z "$local_command" ]; then
61: return 1
62: fi
63:
64: IFS=:
65: for local_dir in $PATH; do
66: if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then
67: echo "$local_dir/$local_command"
68: IFS="${local_ifs:-$(printf ' \t\n')}"
69: return 0
70: fi
71: done
72: # not found
73: IFS="${local_ifs:-$(printf ' \t\n')}"
74: return 1
75: }
76:
1.1 root 77: # default parameters
1.1.1.14! root 78: source_path=`dirname "$0"`
1.1.1.11 root 79: cpu=""
1.1 root 80: interp_prefix="/usr/gnemul/qemu-%M"
81: static="no"
1.1.1.11 root 82: sparc_cpu=""
1.1 root 83: cross_prefix=""
1.1.1.7 root 84: audio_drv_list=""
1.1.1.14! root 85: audio_card_list="ac97 es1370 sb16 hda"
! 86: audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus hda"
1.1.1.11 root 87: block_drv_whitelist=""
1.1 root 88: host_cc="gcc"
1.1.1.11 root 89: helper_cflags=""
90: libs_softmmu=""
91: libs_tools=""
92: audio_pt_int=""
93: audio_win_int=""
1.1.1.14! root 94: cc_i386=i386-pc-linux-gnu-gcc
! 95:
! 96: target_list=""
! 97:
! 98: # Default value for a variable defining feature "foo".
! 99: # * foo="no" feature will only be used if --enable-foo arg is given
! 100: # * foo="" feature will be searched for, and if found, will be used
! 101: # unless --disable-foo is given
! 102: # * foo="yes" this value will only be set by --enable-foo flag.
! 103: # feature will searched for,
! 104: # if not found, configure exits with error
! 105: #
! 106: # Always add --enable-foo and --disable-foo command line args.
! 107: # Distributions want to ensure that several features are compiled in, and it
! 108: # is impossible without a --enable-foo that exits if a feature is not found.
! 109:
! 110: bluez=""
! 111: brlapi=""
! 112: curl=""
! 113: curses=""
! 114: docs=""
! 115: fdt=""
! 116: kvm=""
! 117: kvm_para=""
! 118: nptl=""
! 119: sdl=""
! 120: sparse="no"
! 121: uuid=""
! 122: vde=""
! 123: vnc_tls=""
! 124: vnc_sasl=""
! 125: vnc_jpeg=""
! 126: vnc_png=""
! 127: vnc_thread="no"
! 128: xen=""
! 129: linux_aio=""
! 130: attr=""
! 131: vhost_net=""
! 132: xfs=""
! 133:
! 134: gprof="no"
! 135: debug_tcg="no"
! 136: debug_mon="no"
! 137: debug="no"
! 138: strip_opt="yes"
! 139: bigendian="no"
! 140: mingw32="no"
! 141: EXESUF=""
! 142: prefix="/usr/local"
! 143: mandir="\${prefix}/share/man"
! 144: datadir="\${prefix}/share/qemu"
! 145: docdir="\${prefix}/share/doc/qemu"
! 146: bindir="\${prefix}/bin"
! 147: sysconfdir="\${prefix}/etc"
! 148: confsuffix="/qemu"
! 149: slirp="yes"
! 150: fmod_lib=""
! 151: fmod_inc=""
! 152: oss_lib=""
! 153: bsd="no"
! 154: linux="no"
! 155: solaris="no"
! 156: profiler="no"
! 157: cocoa="no"
! 158: softmmu="yes"
! 159: linux_user="no"
! 160: darwin_user="no"
! 161: bsd_user="no"
! 162: guest_base=""
! 163: uname_release=""
! 164: io_thread="no"
! 165: mixemu="no"
! 166: kerneldir=""
! 167: aix="no"
! 168: blobs="yes"
! 169: pkgversion=""
! 170: check_utests="no"
! 171: user_pie="no"
! 172: zero_malloc=""
! 173: trace_backend="nop"
! 174: trace_file="trace"
! 175: spice=""
! 176: rbd=""
1.1.1.7 root 177:
178: # parse CC options first
179: for opt do
180: optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
181: case "$opt" in
182: --cross-prefix=*) cross_prefix="$optarg"
183: ;;
1.1.1.14! root 184: --cc=*) CC="$optarg"
! 185: ;;
! 186: --source-path=*) source_path="$optarg"
1.1.1.7 root 187: ;;
1.1.1.11 root 188: --cpu=*) cpu="$optarg"
189: ;;
190: --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
191: ;;
192: --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
193: ;;
194: --sparc_cpu=*)
195: sparc_cpu="$optarg"
196: case $sparc_cpu in
197: v7|v8|v8plus|v8plusa)
198: cpu="sparc"
199: ;;
200: v9)
201: cpu="sparc64"
202: ;;
203: *)
204: echo "undefined SPARC architecture. Exiting";
205: exit 1
206: ;;
207: esac
208: ;;
1.1.1.7 root 209: esac
210: done
211: # OS specific
212: # Using uname is really, really broken. Once we have the right set of checks
213: # we can eliminate it's usage altogether
214:
1.1.1.14! root 215: cc="${cross_prefix}${CC-gcc}"
! 216: ar="${cross_prefix}${AR-ar}"
! 217: objcopy="${cross_prefix}${OBJCOPY-objcopy}"
! 218: ld="${cross_prefix}${LD-ld}"
! 219: strip="${cross_prefix}${STRIP-strip}"
! 220: windres="${cross_prefix}${WINDRES-windres}"
! 221: pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
! 222: sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
1.1.1.7 root 223:
1.1.1.11 root 224: # default flags for all hosts
225: QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
226: CFLAGS="-g $CFLAGS"
227: QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
228: QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
229: QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
1.1.1.13 root 230: QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
1.1.1.14! root 231: QEMU_INCLUDES="-I. -I\$(SRC_PATH)"
1.1.1.11 root 232: LDFLAGS="-g $LDFLAGS"
233:
1.1.1.14! root 234: # make source path absolute
! 235: source_path=`cd "$source_path"; pwd`
1.1.1.7 root 236:
237: check_define() {
238: cat > $TMPC <<EOF
239: #if !defined($1)
240: #error Not defined
241: #endif
242: int main(void) { return 0; }
243: EOF
1.1.1.11 root 244: compile_object
1.1.1.7 root 245: }
246:
1.1.1.11 root 247: if test ! -z "$cpu" ; then
248: # command line argument
249: :
250: elif check_define __i386__ ; then
1.1.1.7 root 251: cpu="i386"
252: elif check_define __x86_64__ ; then
253: cpu="x86_64"
254: elif check_define __sparc__ ; then
255: # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
256: # They must be specified using --sparc_cpu
257: if check_define __arch64__ ; then
258: cpu="sparc64"
259: else
260: cpu="sparc"
261: fi
262: elif check_define _ARCH_PPC ; then
263: if check_define _ARCH_PPC64 ; then
264: cpu="ppc64"
265: else
266: cpu="ppc"
267: fi
1.1.1.11 root 268: elif check_define __mips__ ; then
269: cpu="mips"
1.1.1.13 root 270: elif check_define __ia64__ ; then
271: cpu="ia64"
272: elif check_define __s390__ ; then
273: if check_define __s390x__ ; then
274: cpu="s390x"
275: else
276: cpu="s390"
277: fi
1.1.1.7 root 278: else
279: cpu=`uname -m`
280: fi
281:
1.1 root 282: case "$cpu" in
1.1.1.11 root 283: alpha|cris|ia64|m68k|microblaze|ppc|ppc64|sparc64)
284: cpu="$cpu"
285: ;;
1.1 root 286: i386|i486|i586|i686|i86pc|BePC)
287: cpu="i386"
288: ;;
1.1.1.7 root 289: x86_64|amd64)
290: cpu="x86_64"
291: ;;
1.1 root 292: armv*b)
293: cpu="armv4b"
294: ;;
295: armv*l)
296: cpu="armv4l"
297: ;;
1.1.1.7 root 298: parisc|parisc64)
299: cpu="hppa"
1.1 root 300: ;;
1.1.1.11 root 301: mips*)
1.1 root 302: cpu="mips"
303: ;;
1.1.1.11 root 304: s390)
1.1 root 305: cpu="s390"
306: ;;
1.1.1.11 root 307: s390x)
308: cpu="s390x"
309: ;;
1.1.1.6 root 310: sparc|sun4[cdmuv])
1.1 root 311: cpu="sparc"
312: ;;
313: *)
1.1.1.13 root 314: echo "Unsupported CPU = $cpu"
315: exit 1
1.1 root 316: ;;
317: esac
1.1.1.11 root 318:
1.1 root 319: # OS specific
1.1.1.7 root 320: if check_define __linux__ ; then
321: targetos="Linux"
322: elif check_define _WIN32 ; then
323: targetos='MINGW32'
1.1.1.9 root 324: elif check_define __OpenBSD__ ; then
325: targetos='OpenBSD'
326: elif check_define __sun__ ; then
327: targetos='SunOS'
1.1.1.14! root 328: elif check_define __HAIKU__ ; then
! 329: targetos='Haiku'
1.1.1.7 root 330: else
331: targetos=`uname -s`
332: fi
1.1.1.11 root 333:
1.1 root 334: case $targetos in
335: CYGWIN*)
1.1.1.11 root 336: mingw32="yes"
337: QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
338: audio_possible_drivers="winwave sdl"
339: audio_drv_list="winwave"
1.1 root 340: ;;
341: MINGW32*)
1.1.1.11 root 342: mingw32="yes"
343: audio_possible_drivers="winwave dsound sdl fmod"
344: audio_drv_list="winwave"
1.1.1.6 root 345: ;;
346: GNU/kFreeBSD)
1.1.1.11 root 347: bsd="yes"
348: audio_drv_list="oss"
349: audio_possible_drivers="oss sdl esd pa"
1.1 root 350: ;;
351: FreeBSD)
1.1.1.11 root 352: bsd="yes"
1.1.1.14! root 353: make="${MAKE-gmake}"
1.1.1.11 root 354: audio_drv_list="oss"
355: audio_possible_drivers="oss sdl esd pa"
1.1.1.13 root 356: # needed for kinfo_getvmmap(3) in libutil.h
357: LIBS="-lutil $LIBS"
1.1 root 358: ;;
1.1.1.9 root 359: DragonFly)
1.1.1.11 root 360: bsd="yes"
1.1.1.14! root 361: make="${MAKE-gmake}"
1.1.1.11 root 362: audio_drv_list="oss"
363: audio_possible_drivers="oss sdl esd pa"
1.1.1.9 root 364: ;;
1.1 root 365: NetBSD)
1.1.1.11 root 366: bsd="yes"
1.1.1.14! root 367: make="${MAKE-gmake}"
1.1.1.11 root 368: audio_drv_list="oss"
369: audio_possible_drivers="oss sdl esd"
370: oss_lib="-lossaudio"
1.1 root 371: ;;
372: OpenBSD)
1.1.1.11 root 373: bsd="yes"
1.1.1.14! root 374: make="${MAKE-gmake}"
1.1.1.11 root 375: audio_drv_list="oss"
376: audio_possible_drivers="oss sdl esd"
377: oss_lib="-lossaudio"
1.1 root 378: ;;
379: Darwin)
1.1.1.11 root 380: bsd="yes"
381: darwin="yes"
382: # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can
383: # run 64-bit userspace code
384: if [ "$cpu" = "i386" ] ; then
1.1.1.7 root 385: is_x86_64=`sysctl -n hw.optional.x86_64`
386: [ "$is_x86_64" = "1" ] && cpu=x86_64
1.1.1.11 root 387: fi
388: if [ "$cpu" = "x86_64" ] ; then
389: QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
390: LDFLAGS="-arch x86_64 $LDFLAGS"
391: else
392: QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS"
393: fi
394: darwin_user="yes"
395: cocoa="yes"
396: audio_drv_list="coreaudio"
397: audio_possible_drivers="coreaudio sdl fmod"
398: LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
399: libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
1.1 root 400: ;;
1.1.1.3 root 401: SunOS)
1.1.1.11 root 402: solaris="yes"
1.1.1.14! root 403: make="${MAKE-gmake}"
! 404: install="${INSTALL-ginstall}"
1.1.1.11 root 405: ld="gld"
406: needs_libsunmath="no"
407: solarisrev=`uname -r | cut -f2 -d.`
408: # have to select again, because `uname -m` returns i86pc
409: # even on an x86_64 box.
410: solariscpu=`isainfo -k`
411: if test "${solariscpu}" = "amd64" ; then
412: cpu="x86_64"
413: fi
414: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
415: if test "$solarisrev" -le 9 ; then
416: if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
417: needs_libsunmath="yes"
418: QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
419: LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
420: LIBS="-lsunmath $LIBS"
421: else
422: echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
423: echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
424: echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
425: echo "Studio 11 can be downloaded from www.sun.com."
426: exit 1
427: fi
1.1.1.6 root 428: fi
1.1.1.11 root 429: fi
430: if test -f /usr/include/sys/soundcard.h ; then
431: audio_drv_list="oss"
432: fi
433: audio_possible_drivers="oss sdl"
434: # needed for CMSG_ macros in sys/socket.h
435: QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
436: # needed for TIOCWIN* defines in termios.h
437: QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
438: QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
439: LIBS="-lsocket -lnsl -lresolv $LIBS"
1.1.1.7 root 440: ;;
441: AIX)
1.1.1.11 root 442: aix="yes"
1.1.1.14! root 443: make="${MAKE-gmake}"
! 444: ;;
! 445: Haiku)
! 446: haiku="yes"
! 447: QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
! 448: LIBS="-lposix_error_mapper -lnetwork $LIBS"
1.1.1.3 root 449: ;;
1.1.1.2 root 450: *)
1.1.1.11 root 451: audio_drv_list="oss"
452: audio_possible_drivers="oss alsa sdl esd pa"
453: linux="yes"
454: linux_user="yes"
455: usb="linux"
456: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
1.1.1.7 root 457: audio_possible_drivers="$audio_possible_drivers fmod"
1.1.1.11 root 458: fi
1.1 root 459: ;;
460: esac
461:
462: if [ "$bsd" = "yes" ] ; then
1.1.1.3 root 463: if [ "$darwin" != "yes" ] ; then
1.1.1.7 root 464: usb="bsd"
1.1 root 465: fi
1.1.1.7 root 466: bsd_user="yes"
1.1 root 467: fi
468:
1.1.1.14! root 469: : ${make=${MAKE-make}}
! 470: : ${install=${INSTALL-install}}
! 471:
1.1.1.11 root 472: if test "$mingw32" = "yes" ; then
473: EXESUF=".exe"
474: QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
1.1.1.13 root 475: # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
476: QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
1.1.1.11 root 477: LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
1.1.1.13 root 478: prefix="c:/Program Files/Qemu"
479: mandir="\${prefix}"
480: datadir="\${prefix}"
481: docdir="\${prefix}"
482: bindir="\${prefix}"
483: sysconfdir="\${prefix}"
484: confsuffix=""
1.1.1.11 root 485: fi
486:
1.1.1.9 root 487: werror=""
1.1.1.6 root 488:
1.1 root 489: for opt do
1.1.1.3 root 490: optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
1.1 root 491: case "$opt" in
1.1.1.2 root 492: --help|-h) show_help=yes
493: ;;
1.1.1.3 root 494: --prefix=*) prefix="$optarg"
1.1 root 495: ;;
1.1.1.3 root 496: --interp-prefix=*) interp_prefix="$optarg"
1.1 root 497: ;;
1.1.1.14! root 498: --source-path=*)
1.1 root 499: ;;
1.1.1.7 root 500: --cross-prefix=*)
1.1 root 501: ;;
1.1.1.7 root 502: --cc=*)
1.1 root 503: ;;
1.1.1.3 root 504: --host-cc=*) host_cc="$optarg"
1.1 root 505: ;;
1.1.1.3 root 506: --make=*) make="$optarg"
1.1 root 507: ;;
1.1.1.3 root 508: --install=*) install="$optarg"
1.1 root 509: ;;
1.1.1.11 root 510: --extra-cflags=*)
1.1 root 511: ;;
1.1.1.11 root 512: --extra-ldflags=*)
1.1 root 513: ;;
1.1.1.11 root 514: --cpu=*)
1.1.1.3 root 515: ;;
516: --target-list=*) target_list="$optarg"
1.1 root 517: ;;
1.1.1.14! root 518: --enable-trace-backend=*) trace_backend="$optarg"
! 519: ;;
! 520: --with-trace-file=*) trace_file="$optarg"
! 521: ;;
1.1 root 522: --enable-gprof) gprof="yes"
523: ;;
1.1.1.13 root 524: --static)
525: static="yes"
526: LDFLAGS="-static $LDFLAGS"
527: ;;
528: --mandir=*) mandir="$optarg"
529: ;;
530: --bindir=*) bindir="$optarg"
531: ;;
532: --datadir=*) datadir="$optarg"
533: ;;
534: --docdir=*) docdir="$optarg"
535: ;;
536: --sysconfdir=*) sysconfdir="$optarg"
1.1 root 537: ;;
538: --disable-sdl) sdl="no"
539: ;;
1.1.1.11 root 540: --enable-sdl) sdl="yes"
541: ;;
1.1.1.7 root 542: --fmod-lib=*) fmod_lib="$optarg"
1.1.1.2 root 543: ;;
1.1.1.7 root 544: --fmod-inc=*) fmod_inc="$optarg"
1.1.1.2 root 545: ;;
1.1.1.7 root 546: --oss-lib=*) oss_lib="$optarg"
1.1.1.2 root 547: ;;
1.1.1.7 root 548: --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
1.1 root 549: ;;
1.1.1.7 root 550: --audio-drv-list=*) audio_drv_list="$optarg"
1.1 root 551: ;;
1.1.1.11 root 552: --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
553: ;;
1.1.1.9 root 554: --enable-debug-tcg) debug_tcg="yes"
555: ;;
556: --disable-debug-tcg) debug_tcg="no"
557: ;;
1.1.1.13 root 558: --enable-debug-mon) debug_mon="yes"
559: ;;
560: --disable-debug-mon) debug_mon="no"
561: ;;
1.1.1.9 root 562: --enable-debug)
563: # Enable debugging options that aren't excessively noisy
564: debug_tcg="yes"
1.1.1.13 root 565: debug_mon="yes"
1.1.1.9 root 566: debug="yes"
567: strip_opt="no"
568: ;;
1.1.1.7 root 569: --enable-sparse) sparse="yes"
1.1 root 570: ;;
1.1.1.7 root 571: --disable-sparse) sparse="no"
1.1.1.6 root 572: ;;
1.1.1.9 root 573: --disable-strip) strip_opt="no"
574: ;;
1.1.1.7 root 575: --disable-vnc-tls) vnc_tls="no"
1.1.1.2 root 576: ;;
1.1.1.11 root 577: --enable-vnc-tls) vnc_tls="yes"
578: ;;
1.1.1.9 root 579: --disable-vnc-sasl) vnc_sasl="no"
580: ;;
1.1.1.11 root 581: --enable-vnc-sasl) vnc_sasl="yes"
582: ;;
1.1.1.13 root 583: --disable-vnc-jpeg) vnc_jpeg="no"
584: ;;
585: --enable-vnc-jpeg) vnc_jpeg="yes"
586: ;;
587: --disable-vnc-png) vnc_png="no"
588: ;;
589: --enable-vnc-png) vnc_png="yes"
590: ;;
591: --disable-vnc-thread) vnc_thread="no"
592: ;;
593: --enable-vnc-thread) vnc_thread="yes"
594: ;;
1.1 root 595: --disable-slirp) slirp="no"
1.1.1.2 root 596: ;;
1.1.1.11 root 597: --disable-uuid) uuid="no"
598: ;;
599: --enable-uuid) uuid="yes"
600: ;;
1.1.1.7 root 601: --disable-vde) vde="no"
1.1.1.2 root 602: ;;
1.1.1.11 root 603: --enable-vde) vde="yes"
1.1.1.2 root 604: ;;
1.1.1.9 root 605: --disable-xen) xen="no"
606: ;;
1.1.1.11 root 607: --enable-xen) xen="yes"
608: ;;
1.1.1.7 root 609: --disable-brlapi) brlapi="no"
610: ;;
1.1.1.11 root 611: --enable-brlapi) brlapi="yes"
612: ;;
1.1.1.7 root 613: --disable-bluez) bluez="no"
614: ;;
1.1.1.11 root 615: --enable-bluez) bluez="yes"
616: ;;
1.1.1.7 root 617: --disable-kvm) kvm="no"
618: ;;
1.1.1.11 root 619: --enable-kvm) kvm="yes"
620: ;;
1.1.1.14! root 621: --disable-spice) spice="no"
! 622: ;;
! 623: --enable-spice) spice="yes"
! 624: ;;
1.1.1.3 root 625: --enable-profiler) profiler="yes"
626: ;;
1.1.1.7 root 627: --enable-cocoa)
628: cocoa="yes" ;
629: sdl="no" ;
630: audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
1.1.1.2 root 631: ;;
1.1.1.3 root 632: --disable-system) softmmu="no"
633: ;;
634: --enable-system) softmmu="yes"
635: ;;
1.1.1.11 root 636: --disable-user)
637: linux_user="no" ;
638: bsd_user="no" ;
639: darwin_user="no"
640: ;;
641: --enable-user) ;;
1.1.1.5 root 642: --disable-linux-user) linux_user="no"
1.1.1.3 root 643: ;;
1.1.1.5 root 644: --enable-linux-user) linux_user="yes"
1.1.1.3 root 645: ;;
1.1.1.5 root 646: --disable-darwin-user) darwin_user="no"
647: ;;
648: --enable-darwin-user) darwin_user="yes"
1.1.1.4 root 649: ;;
1.1.1.7 root 650: --disable-bsd-user) bsd_user="no"
651: ;;
652: --enable-bsd-user) bsd_user="yes"
653: ;;
1.1.1.11 root 654: --enable-guest-base) guest_base="yes"
655: ;;
656: --disable-guest-base) guest_base="no"
657: ;;
658: --enable-user-pie) user_pie="yes"
659: ;;
660: --disable-user-pie) user_pie="no"
661: ;;
1.1.1.5 root 662: --enable-uname-release=*) uname_release="$optarg"
1.1.1.4 root 663: ;;
1.1.1.6 root 664: --sparc_cpu=*)
665: ;;
666: --enable-werror) werror="yes"
667: ;;
668: --disable-werror) werror="no"
669: ;;
1.1.1.7 root 670: --disable-curses) curses="no"
671: ;;
1.1.1.11 root 672: --enable-curses) curses="yes"
673: ;;
1.1.1.9 root 674: --disable-curl) curl="no"
675: ;;
1.1.1.11 root 676: --enable-curl) curl="yes"
677: ;;
678: --disable-fdt) fdt="no"
679: ;;
680: --enable-fdt) fdt="yes"
681: ;;
682: --disable-check-utests) check_utests="no"
683: ;;
684: --enable-check-utests) check_utests="yes"
685: ;;
1.1.1.7 root 686: --disable-nptl) nptl="no"
687: ;;
1.1.1.11 root 688: --enable-nptl) nptl="yes"
689: ;;
1.1.1.7 root 690: --enable-mixemu) mixemu="yes"
691: ;;
1.1.1.11 root 692: --disable-linux-aio) linux_aio="no"
1.1.1.9 root 693: ;;
1.1.1.11 root 694: --enable-linux-aio) linux_aio="yes"
1.1.1.7 root 695: ;;
1.1.1.13 root 696: --disable-attr) attr="no"
697: ;;
698: --enable-attr) attr="yes"
699: ;;
1.1.1.9 root 700: --enable-io-thread) io_thread="yes"
701: ;;
1.1.1.7 root 702: --disable-blobs) blobs="no"
703: ;;
704: --kerneldir=*) kerneldir="$optarg"
705: ;;
1.1.1.9 root 706: --with-pkgversion=*) pkgversion=" ($optarg)"
707: ;;
1.1.1.11 root 708: --disable-docs) docs="no"
709: ;;
710: --enable-docs) docs="yes"
1.1.1.9 root 711: ;;
1.1.1.13 root 712: --disable-vhost-net) vhost_net="no"
713: ;;
714: --enable-vhost-net) vhost_net="yes"
715: ;;
716: --*dir)
717: ;;
1.1.1.14! root 718: --disable-rbd) rbd="no"
! 719: ;;
! 720: --enable-rbd) rbd="yes"
! 721: ;;
1.1.1.6 root 722: *) echo "ERROR: unknown option $opt"; show_help="yes"
723: ;;
1.1 root 724: esac
725: done
726:
1.1.1.6 root 727: #
728: # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
1.1.1.11 root 729: # QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
1.1.1.6 root 730: #
1.1.1.11 root 731: host_guest_base="no"
1.1.1.7 root 732: case "$cpu" in
1.1.1.11 root 733: sparc) case $sparc_cpu in
734: v7|v8)
735: QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
736: ;;
737: v8plus|v8plusa)
738: QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
739: ;;
740: *) # sparc_cpu not defined in the command line
741: QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
742: esac
743: LDFLAGS="-m32 $LDFLAGS"
744: QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
1.1.1.9 root 745: if test "$solaris" = "no" ; then
1.1.1.11 root 746: QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS"
747: helper_cflags="-ffixed-i0"
1.1.1.9 root 748: fi
1.1.1.6 root 749: ;;
1.1.1.11 root 750: sparc64)
751: QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
752: LDFLAGS="-m64 $LDFLAGS"
753: QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
754: if test "$solaris" != "no" ; then
755: QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
1.1.1.9 root 756: fi
1.1.1.6 root 757: ;;
758: s390)
1.1.1.13 root 759: QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS"
760: LDFLAGS="-m31 $LDFLAGS"
761: host_guest_base="yes"
762: ;;
763: s390x)
764: QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS"
765: LDFLAGS="-m64 $LDFLAGS"
766: host_guest_base="yes"
1.1.1.6 root 767: ;;
1.1.1.7 root 768: i386)
1.1.1.11 root 769: QEMU_CFLAGS="-m32 $QEMU_CFLAGS"
770: LDFLAGS="-m32 $LDFLAGS"
1.1.1.14! root 771: cc_i386='$(CC) -m32'
1.1.1.11 root 772: helper_cflags="-fomit-frame-pointer"
773: host_guest_base="yes"
1.1.1.7 root 774: ;;
775: x86_64)
1.1.1.11 root 776: QEMU_CFLAGS="-m64 $QEMU_CFLAGS"
777: LDFLAGS="-m64 $LDFLAGS"
1.1.1.14! root 778: cc_i386='$(CC) -m32'
1.1.1.11 root 779: host_guest_base="yes"
780: ;;
781: arm*)
782: host_guest_base="yes"
783: ;;
784: ppc*)
785: host_guest_base="yes"
1.1.1.7 root 786: ;;
1.1.1.13 root 787: mips*)
788: host_guest_base="yes"
789: ;;
790: ia64*)
791: host_guest_base="yes"
792: ;;
793: hppa*)
794: host_guest_base="yes"
795: ;;
1.1.1.6 root 796: esac
797:
1.1.1.11 root 798: [ -z "$guest_base" ] && guest_base="$host_guest_base"
799:
1.1.1.3 root 800: if test x"$show_help" = x"yes" ; then
801: cat << EOF
802:
803: Usage: configure [options]
804: Options: [defaults in brackets after descriptions]
805:
806: EOF
807: echo "Standard options:"
808: echo " --help print this message"
809: echo " --prefix=PREFIX install in PREFIX [$prefix]"
810: echo " --interp-prefix=PREFIX where to find shared libraries, etc."
811: echo " use %M for cpu name [$interp_prefix]"
812: echo " --target-list=LIST set target list [$target_list]"
813: echo ""
814: echo "Advanced options (experts only):"
815: echo " --source-path=PATH path of source code [$source_path]"
816: echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
817: echo " --cc=CC use C compiler CC [$cc]"
1.1.1.13 root 818: echo " --host-cc=CC use C compiler CC [$host_cc] for code run at"
819: echo " build time"
1.1.1.11 root 820: echo " --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS"
1.1.1.9 root 821: echo " --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS"
1.1.1.3 root 822: echo " --make=MAKE use specified make [$make]"
823: echo " --install=INSTALL use specified install [$install]"
824: echo " --static enable static build [$static]"
1.1.1.13 root 825: echo " --mandir=PATH install man pages in PATH"
826: echo " --datadir=PATH install firmware in PATH"
827: echo " --docdir=PATH install documentation in PATH"
828: echo " --bindir=PATH install binaries in PATH"
829: echo " --sysconfdir=PATH install config in PATH/qemu"
1.1.1.9 root 830: echo " --enable-debug-tcg enable TCG debugging"
831: echo " --disable-debug-tcg disable TCG debugging (default)"
832: echo " --enable-debug enable common debug build options"
1.1.1.7 root 833: echo " --enable-sparse enable sparse checker"
834: echo " --disable-sparse disable sparse checker (default)"
1.1.1.9 root 835: echo " --disable-strip disable stripping binaries"
1.1.1.6 root 836: echo " --disable-werror disable compilation abort on warning"
837: echo " --disable-sdl disable SDL"
1.1.1.11 root 838: echo " --enable-sdl enable SDL"
1.1.1.3 root 839: echo " --enable-cocoa enable COCOA (Mac OS X only)"
1.1.1.7 root 840: echo " --audio-drv-list=LIST set audio drivers list:"
841: echo " Available drivers: $audio_possible_drivers"
842: echo " --audio-card-list=LIST set list of emulated audio cards [$audio_card_list]"
843: echo " Available cards: $audio_possible_cards"
1.1.1.11 root 844: echo " --block-drv-whitelist=L set block driver whitelist"
845: echo " (affects only QEMU, not qemu-img)"
1.1.1.7 root 846: echo " --enable-mixemu enable mixer emulation"
1.1.1.9 root 847: echo " --disable-xen disable xen backend driver support"
1.1.1.11 root 848: echo " --enable-xen enable xen backend driver support"
1.1.1.7 root 849: echo " --disable-brlapi disable BrlAPI"
1.1.1.11 root 850: echo " --enable-brlapi enable BrlAPI"
1.1.1.6 root 851: echo " --disable-vnc-tls disable TLS encryption for VNC server"
1.1.1.11 root 852: echo " --enable-vnc-tls enable TLS encryption for VNC server"
1.1.1.9 root 853: echo " --disable-vnc-sasl disable SASL encryption for VNC server"
1.1.1.11 root 854: echo " --enable-vnc-sasl enable SASL encryption for VNC server"
1.1.1.13 root 855: echo " --disable-vnc-jpeg disable JPEG lossy compression for VNC server"
856: echo " --enable-vnc-jpeg enable JPEG lossy compression for VNC server"
857: echo " --disable-vnc-png disable PNG compression for VNC server (default)"
858: echo " --enable-vnc-png enable PNG compression for VNC server"
859: echo " --disable-vnc-thread disable threaded VNC server"
860: echo " --enable-vnc-thread enable threaded VNC server"
1.1.1.7 root 861: echo " --disable-curses disable curses output"
1.1.1.11 root 862: echo " --enable-curses enable curses output"
1.1.1.9 root 863: echo " --disable-curl disable curl connectivity"
1.1.1.11 root 864: echo " --enable-curl enable curl connectivity"
865: echo " --disable-fdt disable fdt device tree"
866: echo " --enable-fdt enable fdt device tree"
867: echo " --disable-check-utests disable check unit-tests"
868: echo " --enable-check-utests enable check unit-tests"
1.1.1.7 root 869: echo " --disable-bluez disable bluez stack connectivity"
1.1.1.11 root 870: echo " --enable-bluez enable bluez stack connectivity"
1.1.1.7 root 871: echo " --disable-kvm disable KVM acceleration support"
1.1.1.11 root 872: echo " --enable-kvm enable KVM acceleration support"
1.1.1.7 root 873: echo " --disable-nptl disable usermode NPTL support"
1.1.1.11 root 874: echo " --enable-nptl enable usermode NPTL support"
1.1.1.3 root 875: echo " --enable-system enable all system emulation targets"
876: echo " --disable-system disable all system emulation targets"
1.1.1.11 root 877: echo " --enable-user enable supported user emulation targets"
878: echo " --disable-user disable all user emulation targets"
1.1.1.5 root 879: echo " --enable-linux-user enable all linux usermode emulation targets"
880: echo " --disable-linux-user disable all linux usermode emulation targets"
881: echo " --enable-darwin-user enable all darwin usermode emulation targets"
882: echo " --disable-darwin-user disable all darwin usermode emulation targets"
1.1.1.7 root 883: echo " --enable-bsd-user enable all BSD usermode emulation targets"
884: echo " --disable-bsd-user disable all BSD usermode emulation targets"
1.1.1.11 root 885: echo " --enable-guest-base enable GUEST_BASE support for usermode"
886: echo " emulation targets"
887: echo " --disable-guest-base disable GUEST_BASE support"
888: echo " --enable-user-pie build usermode emulation targets as PIE"
889: echo " --disable-user-pie do not build usermode emulation targets as PIE"
1.1.1.3 root 890: echo " --fmod-lib path to FMOD library"
891: echo " --fmod-inc path to FMOD includes"
1.1.1.7 root 892: echo " --oss-lib path to OSS library"
1.1.1.4 root 893: echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
1.1.1.6 root 894: echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
1.1.1.11 root 895: echo " --disable-uuid disable uuid support"
896: echo " --enable-uuid enable uuid support"
1.1.1.7 root 897: echo " --disable-vde disable support for vde network"
1.1.1.11 root 898: echo " --enable-vde enable support for vde network"
899: echo " --disable-linux-aio disable Linux AIO support"
900: echo " --enable-linux-aio enable Linux AIO support"
1.1.1.13 root 901: echo " --disable-attr disables attr and xattr support"
902: echo " --enable-attr enable attr and xattr support"
1.1.1.9 root 903: echo " --enable-io-thread enable IO thread"
1.1.1.7 root 904: echo " --disable-blobs disable installing provided firmware blobs"
905: echo " --kerneldir=PATH look for kernel includes in PATH"
1.1.1.13 root 906: echo " --enable-docs enable documentation build"
907: echo " --disable-docs disable documentation build"
908: echo " --disable-vhost-net disable vhost-net acceleration support"
909: echo " --enable-vhost-net enable vhost-net acceleration support"
1.1.1.14! root 910: echo " --enable-trace-backend=B Set trace backend"
! 911: echo " Available backends:" $("$source_path"/scripts/tracetool --list-backends)
! 912: echo " --with-trace-file=NAME Full PATH,NAME of file to store traces"
! 913: echo " Default:trace-<pid>"
! 914: echo " --disable-spice disable spice"
! 915: echo " --enable-spice enable spice"
! 916: echo " --enable-rbd enable building the rados block device (rbd)"
1.1.1.3 root 917: echo ""
1.1.1.5 root 918: echo "NOTE: The object files are built at the place where configure is launched"
1.1.1.3 root 919: exit 1
920: fi
921:
1.1.1.14! root 922: # check that the C compiler works.
! 923: cat > $TMPC <<EOF
! 924: int main(void) {}
! 925: EOF
! 926:
! 927: if compile_object ; then
! 928: : C compiler works ok
! 929: else
! 930: echo "ERROR: \"$cc\" either does not exist or does not work"
! 931: exit 1
! 932: fi
! 933:
! 934: gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
! 935: gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
! 936: gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
! 937: gcc_flags="-fstack-protector-all $gcc_flags"
! 938: cat > $TMPC << EOF
! 939: int main(void) { return 0; }
! 940: EOF
! 941: for flag in $gcc_flags; do
! 942: if compile_prog "-Werror $QEMU_CFLAGS" "-Werror $flag" ; then
! 943: QEMU_CFLAGS="$QEMU_CFLAGS $flag"
! 944: fi
! 945: done
! 946:
1.1.1.3 root 947: #
948: # Solaris specific configure tool chain decisions
949: #
950: if test "$solaris" = "yes" ; then
1.1.1.13 root 951: if has $install; then
952: :
953: else
1.1.1.3 root 954: echo "Solaris install program not found. Use --install=/usr/ucb/install or"
955: echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
956: echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
957: exit 1
958: fi
1.1.1.13 root 959: if test "`path_of $install`" = "/usr/sbin/install" ; then
1.1.1.3 root 960: echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
961: echo "try ginstall from the GNU fileutils available from www.blastwave.org"
962: echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
963: exit 1
964: fi
1.1.1.13 root 965: if has ar; then
966: :
967: else
1.1.1.3 root 968: echo "Error: No path includes ar"
969: if test -f /usr/ccs/bin/ar ; then
970: echo "Add /usr/ccs/bin to your path and rerun configure"
971: fi
972: exit 1
973: fi
1.1.1.6 root 974: fi
1.1.1.3 root 975:
976:
1.1 root 977: if test -z "$target_list" ; then
978: # these targets are portable
1.1.1.3 root 979: if [ "$softmmu" = "yes" ] ; then
1.1.1.7 root 980: target_list="\
981: i386-softmmu \
982: x86_64-softmmu \
983: arm-softmmu \
984: cris-softmmu \
985: m68k-softmmu \
1.1.1.9 root 986: microblaze-softmmu \
1.1.1.7 root 987: mips-softmmu \
988: mipsel-softmmu \
989: mips64-softmmu \
990: mips64el-softmmu \
991: ppc-softmmu \
992: ppcemb-softmmu \
993: ppc64-softmmu \
994: sh4-softmmu \
995: sh4eb-softmmu \
996: sparc-softmmu \
1.1.1.9 root 997: sparc64-softmmu \
1.1.1.7 root 998: "
1.1.1.3 root 999: fi
1.1 root 1000: # the following are Linux specific
1.1.1.5 root 1001: if [ "$linux_user" = "yes" ] ; then
1.1.1.7 root 1002: target_list="${target_list}\
1003: i386-linux-user \
1004: x86_64-linux-user \
1005: alpha-linux-user \
1006: arm-linux-user \
1007: armeb-linux-user \
1008: cris-linux-user \
1009: m68k-linux-user \
1.1.1.9 root 1010: microblaze-linux-user \
1.1.1.7 root 1011: mips-linux-user \
1012: mipsel-linux-user \
1013: ppc-linux-user \
1014: ppc64-linux-user \
1015: ppc64abi32-linux-user \
1016: sh4-linux-user \
1017: sh4eb-linux-user \
1018: sparc-linux-user \
1019: sparc64-linux-user \
1020: sparc32plus-linux-user \
1021: "
1.1.1.5 root 1022: fi
1023: # the following are Darwin specific
1024: if [ "$darwin_user" = "yes" ] ; then
1.1.1.7 root 1025: target_list="$target_list i386-darwin-user ppc-darwin-user "
1026: fi
1027: # the following are BSD specific
1028: if [ "$bsd_user" = "yes" ] ; then
1029: target_list="${target_list}\
1.1.1.9 root 1030: i386-bsd-user \
1031: x86_64-bsd-user \
1032: sparc-bsd-user \
1.1.1.7 root 1033: sparc64-bsd-user \
1034: "
1.1 root 1035: fi
1036: else
1.1.1.3 root 1037: target_list=`echo "$target_list" | sed -e 's/,/ /g'`
1038: fi
1039: if test -z "$target_list" ; then
1040: echo "No targets enabled"
1041: exit 1
1.1 root 1042: fi
1.1.1.13 root 1043: # see if system emulation was really requested
1044: case " $target_list " in
1045: *"-softmmu "*) softmmu=yes
1046: ;;
1047: *) softmmu=no
1048: ;;
1049: esac
1.1 root 1050:
1.1.1.11 root 1051: feature_not_found() {
1052: feature=$1
1053:
1054: echo "ERROR"
1055: echo "ERROR: User requested feature $feature"
1056: echo "ERROR: configure was not able to find it"
1057: echo "ERROR"
1058: exit 1;
1059: }
1060:
1.1 root 1061: if test -z "$cross_prefix" ; then
1062:
1063: # ---
1064: # big/little endian test
1065: cat > $TMPC << EOF
1066: #include <inttypes.h>
1067: int main(int argc, char ** argv){
1.1.1.2 root 1068: volatile uint32_t i=0x01234567;
1069: return (*((uint8_t*)(&i))) == 0x67;
1.1 root 1070: }
1071: EOF
1072:
1.1.1.11 root 1073: if compile_prog "" "" ; then
1.1 root 1074: $TMPE && bigendian="yes"
1075: else
1076: echo big/little test failed
1077: fi
1078:
1079: else
1080:
1081: # if cross compiling, cannot launch a program, so make a static guess
1.1.1.11 root 1082: case "$cpu" in
1083: armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
1084: bigendian=yes
1085: ;;
1086: esac
1.1 root 1087:
1088: fi
1089:
1.1.1.14! root 1090: # host long bits test, actually a pointer size test
! 1091: cat > $TMPC << EOF
! 1092: int sizeof_pointer_is_8[sizeof(void *) == 8 ? 1 : -1];
! 1093: EOF
! 1094: if compile_object; then
! 1095: hostlongbits=64
! 1096: else
! 1097: hostlongbits=32
! 1098: fi
1.1 root 1099:
1.1.1.11 root 1100:
1101: ##########################################
1102: # NPTL probe
1103:
1104: if test "$nptl" != "no" ; then
1105: cat > $TMPC <<EOF
1.1.1.7 root 1106: #include <sched.h>
1107: #include <linux/futex.h>
1108: void foo()
1109: {
1110: #if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
1111: #error bork
1112: #endif
1113: }
1114: EOF
1115:
1.1.1.11 root 1116: if compile_object ; then
1117: nptl=yes
1118: else
1119: if test "$nptl" = "yes" ; then
1120: feature_not_found "nptl"
1121: fi
1122: nptl=no
1123: fi
1.1.1.7 root 1124: fi
1125:
1126: ##########################################
1127: # zlib check
1128:
1129: cat > $TMPC << EOF
1130: #include <zlib.h>
1131: int main(void) { zlibVersion(); return 0; }
1132: EOF
1.1.1.11 root 1133: if compile_prog "" "-lz" ; then
1.1.1.7 root 1134: :
1135: else
1136: echo
1137: echo "Error: zlib check failed"
1138: echo "Make sure to have the zlib libs and headers installed."
1139: echo
1140: exit 1
1141: fi
1142:
1.1 root 1143: ##########################################
1.1.1.9 root 1144: # xen probe
1145:
1.1.1.11 root 1146: if test "$xen" != "no" ; then
1147: xen_libs="-lxenstore -lxenctrl -lxenguest"
1148: cat > $TMPC <<EOF
1.1.1.9 root 1149: #include <xenctrl.h>
1150: #include <xs.h>
1151: int main(void) { xs_daemon_open(); xc_interface_open(); return 0; }
1152: EOF
1.1.1.11 root 1153: if compile_prog "" "$xen_libs" ; then
1154: xen=yes
1155: libs_softmmu="$xen_libs $libs_softmmu"
1156: else
1157: if test "$xen" = "yes" ; then
1158: feature_not_found "xen"
1159: fi
1160: xen=no
1161: fi
1162: fi
1163:
1164: ##########################################
1.1.1.14! root 1165: # pkg-config probe
1.1.1.13 root 1166:
1.1.1.14! root 1167: if ! has $pkg_config; then
! 1168: echo warning: proceeding without "$pkg_config" >&2
! 1169: pkg_config=/bin/false
1.1.1.13 root 1170: fi
1171:
1172: ##########################################
1.1.1.11 root 1173: # Sparse probe
1174: if test "$sparse" != "no" ; then
1.1.1.13 root 1175: if has cgcc; then
1.1.1.11 root 1176: sparse=yes
1177: else
1178: if test "$sparse" = "yes" ; then
1179: feature_not_found "sparse"
1180: fi
1181: sparse=no
1182: fi
1.1.1.9 root 1183: fi
1184:
1185: ##########################################
1.1 root 1186: # SDL probe
1187:
1.1.1.14! root 1188: # Look for sdl configuration program (pkg-config or sdl-config). Try
! 1189: # sdl-config even without cross prefix, and favour pkg-config over sdl-config.
! 1190: if test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then
! 1191: sdl_config=sdl-config
! 1192: fi
! 1193:
! 1194: if $pkg_config sdl --modversion >/dev/null 2>&1; then
! 1195: sdlconfig="$pkg_config sdl"
1.1.1.13 root 1196: _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
1.1.1.14! root 1197: elif has ${sdl_config}; then
! 1198: sdlconfig="$sdl_config"
1.1.1.13 root 1199: _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
1200: else
1201: if test "$sdl" = "yes" ; then
1202: feature_not_found "sdl"
1203: fi
1204: sdl=no
1205: fi
1.1.1.14! root 1206: if test -n "$cross_prefix" && test "`basename $sdlconfig`" = sdl-config; then
! 1207: echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
! 1208: fi
1.1 root 1209:
1.1.1.13 root 1210: sdl_too_old=no
1.1.1.11 root 1211: if test "$sdl" != "no" ; then
1212: cat > $TMPC << EOF
1.1 root 1213: #include <SDL.h>
1214: #undef main /* We don't want SDL to override our main() */
1215: int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
1216: EOF
1.1.1.13 root 1217: sdl_cflags=`$sdlconfig --cflags 2> /dev/null`
1218: if test "$static" = "yes" ; then
1219: sdl_libs=`$sdlconfig --static-libs 2>/dev/null`
1220: else
1221: sdl_libs=`$sdlconfig --libs 2> /dev/null`
1222: fi
1.1.1.11 root 1223: if compile_prog "$sdl_cflags" "$sdl_libs" ; then
1224: if test "$_sdlversion" -lt 121 ; then
1225: sdl_too_old=yes
1226: else
1227: if test "$cocoa" = "no" ; then
1228: sdl=yes
1229: fi
1230: fi
1.1.1.7 root 1231:
1.1.1.13 root 1232: # static link with sdl ? (note: sdl.pc's --static --libs is broken)
1.1.1.11 root 1233: if test "$sdl" = "yes" -a "$static" = "yes" ; then
1.1.1.13 root 1234: if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then
1235: sdl_libs="$sdl_libs `aalib-config --static-libs 2>/dev/null`"
1236: sdl_cflags="$sdl_cflags `aalib-config --cflags 2>/dev/null`"
1.1.1.11 root 1237: fi
1238: if compile_prog "$sdl_cflags" "$sdl_libs" ; then
1239: :
1240: else
1241: sdl=no
1242: fi
1243: fi # static link
1244: else # sdl not found
1.1.1.6 root 1245: if test "$sdl" = "yes" ; then
1.1.1.11 root 1246: feature_not_found "sdl"
1.1.1.6 root 1247: fi
1.1.1.11 root 1248: sdl=no
1249: fi # sdl compile test
1250: fi
1.1 root 1251:
1.1.1.7 root 1252: if test "$sdl" = "yes" ; then
1.1.1.11 root 1253: cat > $TMPC <<EOF
1.1.1.7 root 1254: #include <SDL.h>
1255: #if defined(SDL_VIDEO_DRIVER_X11)
1256: #include <X11/XKBlib.h>
1257: #else
1258: #error No x11 support
1259: #endif
1260: int main(void) { return 0; }
1261: EOF
1.1.1.11 root 1262: if compile_prog "$sdl_cflags" "$sdl_libs" ; then
1263: sdl_libs="$sdl_libs -lX11"
1264: fi
1265: if test "$mingw32" = "yes" ; then
1266: sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole"
1267: fi
1268: libs_softmmu="$sdl_libs $libs_softmmu"
1.1.1.7 root 1269: fi
1270:
1.1.1.6 root 1271: ##########################################
1272: # VNC TLS detection
1.1.1.11 root 1273: if test "$vnc_tls" != "no" ; then
1274: cat > $TMPC <<EOF
1.1.1.7 root 1275: #include <gnutls/gnutls.h>
1276: int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
1277: EOF
1.1.1.14! root 1278: vnc_tls_cflags=`$pkg_config --cflags gnutls 2> /dev/null`
! 1279: vnc_tls_libs=`$pkg_config --libs gnutls 2> /dev/null`
1.1.1.11 root 1280: if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
1281: vnc_tls=yes
1282: libs_softmmu="$vnc_tls_libs $libs_softmmu"
1283: else
1284: if test "$vnc_tls" = "yes" ; then
1285: feature_not_found "vnc-tls"
1.1.1.7 root 1286: fi
1.1.1.11 root 1287: vnc_tls=no
1288: fi
1.1.1.6 root 1289: fi
1.1.1.7 root 1290:
1291: ##########################################
1.1.1.9 root 1292: # VNC SASL detection
1.1.1.11 root 1293: if test "$vnc_sasl" != "no" ; then
1294: cat > $TMPC <<EOF
1.1.1.9 root 1295: #include <sasl/sasl.h>
1296: #include <stdio.h>
1297: int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
1298: EOF
1.1.1.11 root 1299: # Assuming Cyrus-SASL installed in /usr prefix
1300: vnc_sasl_cflags=""
1301: vnc_sasl_libs="-lsasl2"
1302: if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
1303: vnc_sasl=yes
1304: libs_softmmu="$vnc_sasl_libs $libs_softmmu"
1305: else
1306: if test "$vnc_sasl" = "yes" ; then
1307: feature_not_found "vnc-sasl"
1.1.1.9 root 1308: fi
1.1.1.11 root 1309: vnc_sasl=no
1310: fi
1.1.1.9 root 1311: fi
1312:
1313: ##########################################
1.1.1.13 root 1314: # VNC JPEG detection
1315: if test "$vnc_jpeg" != "no" ; then
1316: cat > $TMPC <<EOF
1317: #include <stdio.h>
1318: #include <jpeglib.h>
1319: int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
1320: EOF
1321: vnc_jpeg_cflags=""
1322: vnc_jpeg_libs="-ljpeg"
1323: if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
1324: vnc_jpeg=yes
1325: libs_softmmu="$vnc_jpeg_libs $libs_softmmu"
1326: else
1327: if test "$vnc_jpeg" = "yes" ; then
1328: feature_not_found "vnc-jpeg"
1329: fi
1330: vnc_jpeg=no
1331: fi
1332: fi
1333:
1334: ##########################################
1335: # VNC PNG detection
1336: if test "$vnc_png" != "no" ; then
1337: cat > $TMPC <<EOF
1338: //#include <stdio.h>
1339: #include <png.h>
1.1.1.14! root 1340: #include <stddef.h>
1.1.1.13 root 1341: int main(void) {
1342: png_structp png_ptr;
1343: png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
1344: return 0;
1345: }
1346: EOF
1347: vnc_png_cflags=""
1348: vnc_png_libs="-lpng"
1349: if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then
1350: vnc_png=yes
1351: libs_softmmu="$vnc_png_libs $libs_softmmu"
1352: else
1353: if test "$vnc_png" = "yes" ; then
1354: feature_not_found "vnc-png"
1355: fi
1356: vnc_png=no
1357: fi
1358: fi
1359:
1360: ##########################################
1.1.1.9 root 1361: # fnmatch() probe, used for ACL routines
1362: fnmatch="no"
1363: cat > $TMPC << EOF
1364: #include <fnmatch.h>
1365: int main(void)
1366: {
1367: fnmatch("foo", "foo", 0);
1368: return 0;
1369: }
1370: EOF
1.1.1.11 root 1371: if compile_prog "" "" ; then
1.1.1.9 root 1372: fnmatch="yes"
1373: fi
1374:
1375: ##########################################
1.1.1.11 root 1376: # uuid_generate() probe, used for vdi block driver
1377: if test "$uuid" != "no" ; then
1378: uuid_libs="-luuid"
1379: cat > $TMPC << EOF
1380: #include <uuid/uuid.h>
1381: int main(void)
1382: {
1383: uuid_t my_uuid;
1384: uuid_generate(my_uuid);
1385: return 0;
1386: }
1387: EOF
1388: if compile_prog "" "$uuid_libs" ; then
1389: uuid="yes"
1390: libs_softmmu="$uuid_libs $libs_softmmu"
1391: libs_tools="$uuid_libs $libs_tools"
1392: else
1393: if test "$uuid" = "yes" ; then
1394: feature_not_found "uuid"
1395: fi
1396: uuid=no
1397: fi
1398: fi
1399:
1400: ##########################################
1.1.1.14! root 1401: # xfsctl() probe, used for raw-posix
! 1402: if test "$xfs" != "no" ; then
! 1403: cat > $TMPC << EOF
! 1404: #include <xfs/xfs.h>
! 1405: int main(void)
! 1406: {
! 1407: xfsctl(NULL, 0, 0, NULL);
! 1408: return 0;
! 1409: }
! 1410: EOF
! 1411: if compile_prog "" "" ; then
! 1412: xfs="yes"
! 1413: else
! 1414: if test "$xfs" = "yes" ; then
! 1415: feature_not_found "xfs"
! 1416: fi
! 1417: xfs=no
! 1418: fi
! 1419: fi
! 1420:
! 1421: ##########################################
1.1.1.7 root 1422: # vde libraries probe
1.1.1.11 root 1423: if test "$vde" != "no" ; then
1424: vde_libs="-lvdeplug"
1.1.1.7 root 1425: cat > $TMPC << EOF
1426: #include <libvdeplug.h>
1427: int main(void)
1428: {
1429: struct vde_open_args a = {0, 0, 0};
1430: vde_open("", "", &a);
1431: return 0;
1432: }
1433: EOF
1.1.1.11 root 1434: if compile_prog "" "$vde_libs" ; then
1435: vde=yes
1436: libs_softmmu="$vde_libs $libs_softmmu"
1437: libs_tools="$vde_libs $libs_tools"
1438: else
1439: if test "$vde" = "yes" ; then
1440: feature_not_found "vde"
1.1.1.7 root 1441: fi
1.1.1.11 root 1442: vde=no
1443: fi
1.1 root 1444: fi
1445:
1.1.1.5 root 1446: ##########################################
1.1.1.7 root 1447: # Sound support libraries probe
1.1.1.5 root 1448:
1.1.1.7 root 1449: audio_drv_probe()
1450: {
1451: drv=$1
1452: hdr=$2
1453: lib=$3
1454: exp=$4
1455: cfl=$5
1456: cat > $TMPC << EOF
1457: #include <$hdr>
1458: int main(void) { $exp }
1459: EOF
1.1.1.11 root 1460: if compile_prog "$cfl" "$lib" ; then
1.1.1.7 root 1461: :
1462: else
1463: echo
1464: echo "Error: $drv check failed"
1465: echo "Make sure to have the $drv libs and headers installed."
1466: echo
1467: exit 1
1468: fi
1469: }
1470:
1471: audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
1472: for drv in $audio_drv_list; do
1473: case $drv in
1474: alsa)
1475: audio_drv_probe $drv alsa/asoundlib.h -lasound \
1476: "snd_pcm_t **handle; return snd_pcm_close(*handle);"
1.1.1.11 root 1477: libs_softmmu="-lasound $libs_softmmu"
1.1.1.7 root 1478: ;;
1479:
1480: fmod)
1481: if test -z $fmod_lib || test -z $fmod_inc; then
1482: echo
1483: echo "Error: You must specify path to FMOD library and headers"
1484: echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
1485: echo
1486: exit 1
1487: fi
1488: audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
1.1.1.11 root 1489: libs_softmmu="$fmod_lib $libs_softmmu"
1.1.1.7 root 1490: ;;
1491:
1492: esd)
1493: audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
1.1.1.11 root 1494: libs_softmmu="-lesd $libs_softmmu"
1495: audio_pt_int="yes"
1.1.1.7 root 1496: ;;
1497:
1498: pa)
1.1.1.11 root 1499: audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \
1.1.1.7 root 1500: "pa_simple *s = NULL; pa_simple_free(s); return 0;"
1.1.1.11 root 1501: libs_softmmu="-lpulse -lpulse-simple $libs_softmmu"
1502: audio_pt_int="yes"
1503: ;;
1504:
1505: coreaudio)
1506: libs_softmmu="-framework CoreAudio $libs_softmmu"
1507: ;;
1508:
1509: dsound)
1510: libs_softmmu="-lole32 -ldxguid $libs_softmmu"
1511: audio_win_int="yes"
1512: ;;
1513:
1514: oss)
1515: libs_softmmu="$oss_lib $libs_softmmu"
1.1.1.7 root 1516: ;;
1517:
1.1.1.11 root 1518: sdl|wav)
1.1.1.7 root 1519: # XXX: Probes for CoreAudio, DirectSound, SDL(?)
1520: ;;
1521:
1.1.1.11 root 1522: winwave)
1523: libs_softmmu="-lwinmm $libs_softmmu"
1524: audio_win_int="yes"
1525: ;;
1526:
1.1.1.7 root 1527: *)
1528: echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
1529: echo
1530: echo "Error: Unknown driver '$drv' selected"
1531: echo "Possible drivers are: $audio_possible_drivers"
1532: echo
1533: exit 1
1534: }
1535: ;;
1536: esac
1537: done
1538:
1539: ##########################################
1540: # BrlAPI probe
1541:
1.1.1.11 root 1542: if test "$brlapi" != "no" ; then
1543: brlapi_libs="-lbrlapi"
1544: cat > $TMPC << EOF
1.1.1.7 root 1545: #include <brlapi.h>
1.1.1.14! root 1546: #include <stddef.h>
1.1.1.7 root 1547: int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
1548: EOF
1.1.1.11 root 1549: if compile_prog "" "$brlapi_libs" ; then
1550: brlapi=yes
1551: libs_softmmu="$brlapi_libs $libs_softmmu"
1552: else
1553: if test "$brlapi" = "yes" ; then
1554: feature_not_found "brlapi"
1555: fi
1556: brlapi=no
1557: fi
1558: fi
1.1.1.7 root 1559:
1560: ##########################################
1561: # curses probe
1.1.1.11 root 1562: curses_list="-lncurses -lcurses"
1.1.1.7 root 1563:
1.1.1.11 root 1564: if test "$curses" != "no" ; then
1565: curses_found=no
1.1.1.5 root 1566: cat > $TMPC << EOF
1.1.1.7 root 1567: #include <curses.h>
1.1.1.9 root 1568: #ifdef __OpenBSD__
1569: #define resize_term resizeterm
1570: #endif
1571: int main(void) { resize_term(0, 0); return curses_version(); }
1.1.1.5 root 1572: EOF
1.1.1.11 root 1573: for curses_lib in $curses_list; do
1574: if compile_prog "" "$curses_lib" ; then
1575: curses_found=yes
1576: libs_softmmu="$curses_lib $libs_softmmu"
1577: break
1578: fi
1579: done
1580: if test "$curses_found" = "yes" ; then
1.1.1.7 root 1581: curses=yes
1.1.1.11 root 1582: else
1583: if test "$curses" = "yes" ; then
1584: feature_not_found "curses"
1585: fi
1586: curses=no
1.1.1.7 root 1587: fi
1.1.1.11 root 1588: fi
1.1.1.7 root 1589:
1590: ##########################################
1.1.1.9 root 1591: # curl probe
1592:
1.1.1.14! root 1593: if $pkg_config libcurl --modversion >/dev/null 2>&1; then
! 1594: curlconfig="$pkg_config libcurl"
1.1.1.13 root 1595: else
1596: curlconfig=curl-config
1597: fi
1598:
1.1.1.11 root 1599: if test "$curl" != "no" ; then
1.1.1.9 root 1600: cat > $TMPC << EOF
1601: #include <curl/curl.h>
1602: int main(void) { return curl_easy_init(); }
1603: EOF
1.1.1.13 root 1604: curl_cflags=`$curlconfig --cflags 2>/dev/null`
1605: curl_libs=`$curlconfig --libs 2>/dev/null`
1.1.1.11 root 1606: if compile_prog "$curl_cflags" "$curl_libs" ; then
1.1.1.9 root 1607: curl=yes
1.1.1.11 root 1608: libs_tools="$curl_libs $libs_tools"
1609: libs_softmmu="$curl_libs $libs_softmmu"
1610: else
1611: if test "$curl" = "yes" ; then
1612: feature_not_found "curl"
1613: fi
1614: curl=no
1.1.1.9 root 1615: fi
1616: fi # test "$curl"
1617:
1618: ##########################################
1.1.1.11 root 1619: # check framework probe
1620:
1621: if test "$check_utests" != "no" ; then
1.1.1.7 root 1622: cat > $TMPC << EOF
1.1.1.11 root 1623: #include <check.h>
1624: int main(void) { suite_create("qemu test"); return 0; }
1.1.1.7 root 1625: EOF
1.1.1.14! root 1626: check_libs=`$pkg_config --libs check`
1.1.1.11 root 1627: if compile_prog "" $check_libs ; then
1628: check_utests=yes
1629: libs_tools="$check_libs $libs_tools"
1.1.1.5 root 1630: else
1.1.1.11 root 1631: if test "$check_utests" = "yes" ; then
1632: feature_not_found "check"
1633: fi
1634: check_utests=no
1635: fi
1636: fi # test "$check_utests"
1637:
1638: ##########################################
1639: # bluez support probe
1640: if test "$bluez" != "no" ; then
1641: cat > $TMPC << EOF
1642: #include <bluetooth/bluetooth.h>
1643: int main(void) { return bt_error(0); }
1644: EOF
1.1.1.14! root 1645: bluez_cflags=`$pkg_config --cflags bluez 2> /dev/null`
! 1646: bluez_libs=`$pkg_config --libs bluez 2> /dev/null`
1.1.1.11 root 1647: if compile_prog "$bluez_cflags" "$bluez_libs" ; then
1648: bluez=yes
1649: libs_softmmu="$bluez_libs $libs_softmmu"
1650: else
1651: if test "$bluez" = "yes" ; then
1652: feature_not_found "bluez"
1653: fi
1.1.1.7 root 1654: bluez="no"
1655: fi
1656: fi
1657:
1658: ##########################################
1659: # kvm probe
1.1.1.11 root 1660: if test "$kvm" != "no" ; then
1.1.1.7 root 1661: cat > $TMPC <<EOF
1662: #include <linux/kvm.h>
1663: #if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
1664: #error Invalid KVM version
1665: #endif
1.1.1.14! root 1666: EOF
! 1667: must_have_caps="KVM_CAP_USER_MEMORY \
! 1668: KVM_CAP_DESTROY_MEMORY_REGION_WORKS \
! 1669: KVM_CAP_COALESCED_MMIO \
! 1670: KVM_CAP_SYNC_MMU \
! 1671: "
! 1672: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) ; then
! 1673: must_have_caps="$caps \
! 1674: KVM_CAP_SET_TSS_ADDR \
! 1675: KVM_CAP_EXT_CPUID \
! 1676: KVM_CAP_CLOCKSOURCE \
! 1677: KVM_CAP_NOP_IO_DELAY \
! 1678: KVM_CAP_PV_MMU \
! 1679: KVM_CAP_MP_STATE \
! 1680: KVM_CAP_USER_NMI \
! 1681: "
! 1682: fi
! 1683: for c in $must_have_caps ; do
! 1684: cat >> $TMPC <<EOF
! 1685: #if !defined($c)
! 1686: #error Missing KVM capability $c
1.1.1.7 root 1687: #endif
1.1.1.14! root 1688: EOF
! 1689: done
! 1690: cat >> $TMPC <<EOF
1.1.1.7 root 1691: int main(void) { return 0; }
1692: EOF
1693: if test "$kerneldir" != "" ; then
1694: kvm_cflags=-I"$kerneldir"/include
1695: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \
1696: -a -d "$kerneldir/arch/x86/include" ; then
1697: kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include"
1698: elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then
1699: kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include"
1.1.1.11 root 1700: elif test "$cpu" = "s390x" -a -d "$kerneldir/arch/s390/include" ; then
1701: kvm_cflags="$kvm_cflags -I$kerneldir/arch/s390/include"
1.1.1.7 root 1702: elif test -d "$kerneldir/arch/$cpu/include" ; then
1703: kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
1704: fi
1705: else
1.1.1.14! root 1706: kvm_cflags=`$pkg_config --cflags kvm-kmod 2>/dev/null`
1.1.1.7 root 1707: fi
1.1.1.11 root 1708: if compile_prog "$kvm_cflags" "" ; then
1709: kvm=yes
1.1.1.13 root 1710: cat > $TMPC <<EOF
1711: #include <linux/kvm_para.h>
1712: int main(void) { return 0; }
1713: EOF
1714: if compile_prog "$kvm_cflags" "" ; then
1715: kvm_para=yes
1716: fi
1.1.1.7 root 1717: else
1.1.1.11 root 1718: if test "$kvm" = "yes" ; then
1.1.1.13 root 1719: if has awk && has grep; then
1.1.1.11 root 1720: kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \
1.1.1.7 root 1721: | grep "error: " \
1722: | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
1.1.1.11 root 1723: if test "$kvmerr" != "" ; then
1724: echo -e "${kvmerr}\n\
1.1.1.14! root 1725: NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \
! 1726: recent kvm-kmod from http://sourceforge.net/projects/kvm."
1.1.1.11 root 1727: fi
1.1.1.7 root 1728: fi
1.1.1.11 root 1729: feature_not_found "kvm"
1.1.1.7 root 1730: fi
1.1.1.11 root 1731: kvm=no
1.1.1.7 root 1732: fi
1733: fi
1734:
1735: ##########################################
1.1.1.13 root 1736: # test for vhost net
1737:
1738: if test "$vhost_net" != "no"; then
1739: if test "$kvm" != "no"; then
1740: cat > $TMPC <<EOF
1741: #include <linux/vhost.h>
1742: int main(void) { return 0; }
1743: EOF
1744: if compile_prog "$kvm_cflags" "" ; then
1745: vhost_net=yes
1746: else
1747: if test "$vhost_net" = "yes" ; then
1748: feature_not_found "vhost-net"
1749: fi
1750: vhost_net=no
1751: fi
1752: else
1753: if test "$vhost_net" = "yes" ; then
1754: echo "NOTE: vhost-net feature requires KVM (--enable-kvm)."
1755: feature_not_found "vhost-net"
1756: fi
1757: vhost_net=no
1758: fi
1759: fi
1760:
1761: ##########################################
1.1.1.9 root 1762: # pthread probe
1763: PTHREADLIBS_LIST="-lpthread -lpthreadGC2"
1.1.1.7 root 1764:
1.1.1.11 root 1765: pthread=no
1.1.1.9 root 1766: cat > $TMPC << EOF
1.1.1.7 root 1767: #include <pthread.h>
1.1.1.9 root 1768: int main(void) { pthread_create(0,0,0,0); return 0; }
1.1.1.7 root 1769: EOF
1.1.1.14! root 1770: if compile_prog "" "" ; then
! 1771: pthread=yes
! 1772: else
! 1773: for pthread_lib in $PTHREADLIBS_LIST; do
! 1774: if compile_prog "" "$pthread_lib" ; then
! 1775: pthread=yes
! 1776: LIBS="$pthread_lib $LIBS"
! 1777: break
! 1778: fi
! 1779: done
! 1780: fi
1.1.1.11 root 1781:
1782: if test "$mingw32" != yes -a "$pthread" = no; then
1783: echo
1784: echo "Error: pthread check failed"
1785: echo "Make sure to have the pthread libs and headers installed."
1786: echo
1787: exit 1
1.1.1.9 root 1788: fi
1789:
1.1.1.11 root 1790: ##########################################
1.1.1.14! root 1791: # rbd probe
! 1792: if test "$rbd" != "no" ; then
! 1793: cat > $TMPC <<EOF
! 1794: #include <stdio.h>
! 1795: #include <rados/librados.h>
! 1796: int main(void) { rados_initialize(0, NULL); return 0; }
! 1797: EOF
! 1798: rbd_libs="-lrados -lcrypto"
! 1799: if compile_prog "" "$rbd_libs" ; then
! 1800: librados_too_old=no
! 1801: cat > $TMPC <<EOF
! 1802: #include <stdio.h>
! 1803: #include <rados/librados.h>
! 1804: #ifndef CEPH_OSD_TMAP_SET
! 1805: #error missing CEPH_OSD_TMAP_SET
! 1806: #endif
! 1807: int main(void) {
! 1808: int (*func)(const rados_pool_t pool, uint64_t *snapid) = rados_selfmanaged_snap_create;
! 1809: rados_initialize(0, NULL);
! 1810: return 0;
! 1811: }
! 1812: EOF
! 1813: if compile_prog "" "$rbd_libs" ; then
! 1814: rbd=yes
! 1815: libs_tools="$rbd_libs $libs_tools"
! 1816: libs_softmmu="$rbd_libs $libs_softmmu"
! 1817: else
! 1818: rbd=no
! 1819: librados_too_old=yes
! 1820: fi
! 1821: else
! 1822: if test "$rbd" = "yes" ; then
! 1823: feature_not_found "rados block device"
! 1824: fi
! 1825: rbd=no
! 1826: fi
! 1827: if test "$librados_too_old" = "yes" ; then
! 1828: echo "-> Your librados version is too old - upgrade needed to have rbd support"
! 1829: fi
! 1830: fi
! 1831:
! 1832: ##########################################
1.1.1.11 root 1833: # linux-aio probe
1834:
1835: if test "$linux_aio" != "no" ; then
1836: cat > $TMPC <<EOF
1837: #include <libaio.h>
1838: #include <sys/eventfd.h>
1.1.1.14! root 1839: #include <stddef.h>
1.1.1.11 root 1840: int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
1841: EOF
1842: if compile_prog "" "-laio" ; then
1843: linux_aio=yes
1.1.1.13 root 1844: libs_softmmu="$libs_softmmu -laio"
1845: libs_tools="$libs_tools -laio"
1.1.1.11 root 1846: else
1847: if test "$linux_aio" = "yes" ; then
1848: feature_not_found "linux AIO"
1849: fi
1850: linux_aio=no
1851: fi
1.1.1.7 root 1852: fi
1853:
1854: ##########################################
1.1.1.13 root 1855: # attr probe
1856:
1857: if test "$attr" != "no" ; then
1858: cat > $TMPC <<EOF
1859: #include <stdio.h>
1860: #include <sys/types.h>
1861: #include <attr/xattr.h>
1862: int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
1863: EOF
1864: if compile_prog "" "-lattr" ; then
1865: attr=yes
1866: LIBS="-lattr $LIBS"
1867: else
1868: if test "$attr" = "yes" ; then
1869: feature_not_found "ATTR"
1870: fi
1871: attr=no
1872: fi
1873: fi
1874:
1875: ##########################################
1.1.1.7 root 1876: # iovec probe
1877: cat > $TMPC <<EOF
1878: #include <sys/types.h>
1879: #include <sys/uio.h>
1880: #include <unistd.h>
1881: int main(void) { struct iovec iov; return 0; }
1882: EOF
1883: iovec=no
1.1.1.11 root 1884: if compile_prog "" "" ; then
1.1.1.7 root 1885: iovec=yes
1886: fi
1887:
1888: ##########################################
1.1.1.9 root 1889: # preadv probe
1890: cat > $TMPC <<EOF
1891: #include <sys/types.h>
1892: #include <sys/uio.h>
1893: #include <unistd.h>
1894: int main(void) { preadv; }
1895: EOF
1896: preadv=no
1.1.1.11 root 1897: if compile_prog "" "" ; then
1.1.1.9 root 1898: preadv=yes
1899: fi
1900:
1901: ##########################################
1.1.1.7 root 1902: # fdt probe
1.1.1.11 root 1903: if test "$fdt" != "no" ; then
1904: fdt_libs="-lfdt"
1905: cat > $TMPC << EOF
1.1.1.7 root 1906: int main(void) { return 0; }
1907: EOF
1.1.1.11 root 1908: if compile_prog "" "$fdt_libs" ; then
1.1.1.7 root 1909: fdt=yes
1.1.1.11 root 1910: libs_softmmu="$fdt_libs $libs_softmmu"
1911: else
1912: if test "$fdt" = "yes" ; then
1913: feature_not_found "fdt"
1914: fi
1915: fdt=no
1.1.1.5 root 1916: fi
1917: fi
1918:
1.1.1.9 root 1919: #
1920: # Check for xxxat() functions when we are building linux-user
1921: # emulator. This is done because older glibc versions don't
1922: # have syscall stubs for these implemented.
1923: #
1924: atfile=no
1925: cat > $TMPC << EOF
1926: #define _ATFILE_SOURCE
1927: #include <sys/types.h>
1928: #include <fcntl.h>
1929: #include <unistd.h>
1930:
1931: int
1932: main(void)
1933: {
1934: /* try to unlink nonexisting file */
1935: return (unlinkat(AT_FDCWD, "nonexistent_file", 0));
1936: }
1937: EOF
1.1.1.11 root 1938: if compile_prog "" "" ; then
1.1.1.9 root 1939: atfile=yes
1940: fi
1941:
1942: # Check for inotify functions when we are building linux-user
1943: # emulator. This is done because older glibc versions don't
1944: # have syscall stubs for these implemented. In that case we
1945: # don't provide them even if kernel supports them.
1946: #
1947: inotify=no
1948: cat > $TMPC << EOF
1949: #include <sys/inotify.h>
1950:
1951: int
1952: main(void)
1953: {
1954: /* try to start inotify */
1955: return inotify_init();
1956: }
1957: EOF
1.1.1.11 root 1958: if compile_prog "" "" ; then
1.1.1.9 root 1959: inotify=yes
1960: fi
1961:
1.1.1.13 root 1962: inotify1=no
1963: cat > $TMPC << EOF
1964: #include <sys/inotify.h>
1965:
1966: int
1967: main(void)
1968: {
1969: /* try to start inotify */
1970: return inotify_init1(0);
1971: }
1972: EOF
1973: if compile_prog "" "" ; then
1974: inotify1=yes
1975: fi
1976:
1.1.1.9 root 1977: # check if utimensat and futimens are supported
1978: utimens=no
1979: cat > $TMPC << EOF
1980: #define _ATFILE_SOURCE
1981: #include <stddef.h>
1982: #include <fcntl.h>
1983:
1984: int main(void)
1985: {
1986: utimensat(AT_FDCWD, "foo", NULL, 0);
1987: futimens(0, NULL);
1988: return 0;
1989: }
1990: EOF
1.1.1.11 root 1991: if compile_prog "" "" ; then
1.1.1.9 root 1992: utimens=yes
1993: fi
1994:
1995: # check if pipe2 is there
1996: pipe2=no
1997: cat > $TMPC << EOF
1998: #include <unistd.h>
1999: #include <fcntl.h>
2000:
2001: int main(void)
2002: {
2003: int pipefd[2];
2004: pipe2(pipefd, O_CLOEXEC);
2005: return 0;
2006: }
2007: EOF
1.1.1.11 root 2008: if compile_prog "" "" ; then
1.1.1.9 root 2009: pipe2=yes
2010: fi
2011:
1.1.1.11 root 2012: # check if accept4 is there
2013: accept4=no
2014: cat > $TMPC << EOF
2015: #include <sys/socket.h>
2016: #include <stddef.h>
2017:
2018: int main(void)
2019: {
2020: accept4(0, NULL, NULL, SOCK_CLOEXEC);
2021: return 0;
2022: }
2023: EOF
2024: if compile_prog "" "" ; then
2025: accept4=yes
2026: fi
2027:
1.1.1.9 root 2028: # check if tee/splice is there. vmsplice was added same time.
2029: splice=no
2030: cat > $TMPC << EOF
2031: #include <unistd.h>
2032: #include <fcntl.h>
2033: #include <limits.h>
2034:
2035: int main(void)
2036: {
2037: int len, fd;
2038: len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
2039: splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
2040: return 0;
2041: }
2042: EOF
1.1.1.11 root 2043: if compile_prog "" "" ; then
1.1.1.9 root 2044: splice=yes
2045: fi
2046:
1.1.1.14! root 2047: ##########################################
! 2048: # signalfd probe
! 2049: signalfd="no"
! 2050: cat > $TMPC << EOF
! 2051: #define _GNU_SOURCE
! 2052: #include <unistd.h>
! 2053: #include <sys/syscall.h>
! 2054: #include <signal.h>
! 2055: int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
! 2056: EOF
! 2057:
! 2058: if compile_prog "" "" ; then
! 2059: signalfd=yes
! 2060: fi
! 2061:
1.1.1.11 root 2062: # check if eventfd is supported
2063: eventfd=no
2064: cat > $TMPC << EOF
2065: #include <sys/eventfd.h>
2066:
2067: int main(void)
2068: {
2069: int efd = eventfd(0, 0);
2070: return 0;
2071: }
2072: EOF
2073: if compile_prog "" "" ; then
2074: eventfd=yes
2075: fi
2076:
2077: # check for fallocate
2078: fallocate=no
2079: cat > $TMPC << EOF
2080: #include <fcntl.h>
2081:
2082: int main(void)
2083: {
2084: fallocate(0, 0, 0, 0);
2085: return 0;
2086: }
2087: EOF
2088: if compile_prog "$ARCH_CFLAGS" "" ; then
2089: fallocate=yes
2090: fi
2091:
1.1.1.14! root 2092: # check for sync_file_range
! 2093: sync_file_range=no
! 2094: cat > $TMPC << EOF
! 2095: #include <fcntl.h>
! 2096:
! 2097: int main(void)
! 2098: {
! 2099: sync_file_range(0, 0, 0, 0);
! 2100: return 0;
! 2101: }
! 2102: EOF
! 2103: if compile_prog "$ARCH_CFLAGS" "" ; then
! 2104: sync_file_range=yes
! 2105: fi
! 2106:
! 2107: # check for linux/fiemap.h and FS_IOC_FIEMAP
! 2108: fiemap=no
! 2109: cat > $TMPC << EOF
! 2110: #include <sys/ioctl.h>
! 2111: #include <linux/fs.h>
! 2112: #include <linux/fiemap.h>
! 2113:
! 2114: int main(void)
! 2115: {
! 2116: ioctl(0, FS_IOC_FIEMAP, 0);
! 2117: return 0;
! 2118: }
! 2119: EOF
! 2120: if compile_prog "$ARCH_CFLAGS" "" ; then
! 2121: fiemap=yes
! 2122: fi
! 2123:
1.1.1.11 root 2124: # check for dup3
2125: dup3=no
2126: cat > $TMPC << EOF
2127: #include <unistd.h>
2128:
2129: int main(void)
2130: {
2131: dup3(0, 0, 0);
2132: return 0;
2133: }
2134: EOF
2135: if compile_prog "" "" ; then
2136: dup3=yes
2137: fi
2138:
1.1.1.3 root 2139: # Check if tools are available to build documentation.
1.1.1.11 root 2140: if test "$docs" != "no" ; then
1.1.1.13 root 2141: if has makeinfo && has pod2man; then
1.1.1.11 root 2142: docs=yes
2143: else
2144: if test "$docs" = "yes" ; then
2145: feature_not_found "docs"
2146: fi
2147: docs=no
2148: fi
2149: fi
2150:
2151: # Search for bswap_32 function
2152: byteswap_h=no
2153: cat > $TMPC << EOF
2154: #include <byteswap.h>
2155: int main(void) { return bswap_32(0); }
2156: EOF
2157: if compile_prog "" "" ; then
2158: byteswap_h=yes
2159: fi
2160:
2161: # Search for bswap_32 function
2162: bswap_h=no
2163: cat > $TMPC << EOF
2164: #include <sys/endian.h>
2165: #include <sys/types.h>
2166: #include <machine/bswap.h>
2167: int main(void) { return bswap32(0); }
2168: EOF
2169: if compile_prog "" "" ; then
2170: bswap_h=yes
1.1 root 2171: fi
2172:
1.1.1.7 root 2173: ##########################################
2174: # Do we need librt
2175: cat > $TMPC <<EOF
2176: #include <signal.h>
2177: #include <time.h>
2178: int main(void) { clockid_t id; return clock_gettime(id, NULL); }
2179: EOF
2180:
1.1.1.11 root 2181: if compile_prog "" "" ; then
1.1.1.7 root 2182: :
1.1.1.11 root 2183: elif compile_prog "" "-lrt" ; then
2184: LIBS="-lrt $LIBS"
1.1.1.7 root 2185: fi
2186:
1.1.1.11 root 2187: if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
1.1.1.14! root 2188: "$aix" != "yes" -a "$haiku" != "yes" ; then
1.1.1.11 root 2189: libs_softmmu="-lutil $libs_softmmu"
2190: fi
2191:
2192: ##########################################
2193: # check if the compiler defines offsetof
2194:
2195: need_offsetof=yes
2196: cat > $TMPC << EOF
2197: #include <stddef.h>
2198: int main(void) { struct s { int f; }; return offsetof(struct s, f); }
2199: EOF
2200: if compile_prog "" "" ; then
2201: need_offsetof=no
2202: fi
2203:
2204: ##########################################
2205: # check if the compiler understands attribute warn_unused_result
2206: #
2207: # This could be smarter, but gcc -Werror does not error out even when warning
2208: # about attribute warn_unused_result
2209:
2210: gcc_attribute_warn_unused_result=no
2211: cat > $TMPC << EOF
2212: #if defined(__GNUC__) && (__GNUC__ < 4) && defined(__GNUC_MINOR__) && (__GNUC__ < 4)
2213: #error gcc 3.3 or older
2214: #endif
2215: int main(void) { return 0;}
2216: EOF
2217: if compile_prog "" ""; then
2218: gcc_attribute_warn_unused_result=yes
2219: fi
2220:
1.1.1.14! root 2221: # spice probe
! 2222: if test "$spice" != "no" ; then
! 2223: cat > $TMPC << EOF
! 2224: #include <spice.h>
! 2225: int main(void) { spice_server_new(); return 0; }
! 2226: EOF
! 2227: spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
! 2228: spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
! 2229: if $pkg_config --atleast-version=0.5.3 spice-server >/dev/null 2>&1 && \
! 2230: compile_prog "$spice_cflags" "$spice_libs" ; then
! 2231: spice="yes"
! 2232: libs_softmmu="$libs_softmmu $spice_libs"
! 2233: QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags"
! 2234: else
! 2235: if test "$spice" = "yes" ; then
! 2236: feature_not_found "spice"
! 2237: fi
! 2238: spice="no"
! 2239: fi
! 2240: fi
! 2241:
! 2242: ##########################################
! 2243:
1.1.1.11 root 2244: ##########################################
2245: # check if we have fdatasync
2246:
2247: fdatasync=no
2248: cat > $TMPC << EOF
2249: #include <unistd.h>
2250: int main(void) { return fdatasync(0); }
2251: EOF
2252: if compile_prog "" "" ; then
2253: fdatasync=yes
2254: fi
2255:
1.1.1.14! root 2256: ##########################################
! 2257: # check if we have madvise
! 2258:
! 2259: madvise=no
! 2260: cat > $TMPC << EOF
! 2261: #include <sys/types.h>
! 2262: #include <sys/mman.h>
! 2263: #include <stddef.h>
! 2264: int main(void) { return madvise(NULL, 0, MADV_DONTNEED); }
! 2265: EOF
! 2266: if compile_prog "" "" ; then
! 2267: madvise=yes
! 2268: fi
! 2269:
! 2270: ##########################################
! 2271: # check if we have posix_madvise
! 2272:
! 2273: posix_madvise=no
! 2274: cat > $TMPC << EOF
! 2275: #include <sys/mman.h>
! 2276: #include <stddef.h>
! 2277: int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }
! 2278: EOF
! 2279: if compile_prog "" "" ; then
! 2280: posix_madvise=yes
! 2281: fi
! 2282:
! 2283: ##########################################
! 2284: # check if trace backend exists
! 2285:
! 2286: sh "$source_path/scripts/tracetool" "--$trace_backend" --check-backend > /dev/null 2> /dev/null
! 2287: if test "$?" -ne 0 ; then
! 2288: echo
! 2289: echo "Error: invalid trace backend"
! 2290: echo "Please choose a supported trace backend."
! 2291: echo
! 2292: exit 1
! 2293: fi
! 2294:
! 2295: ##########################################
! 2296: # For 'ust' backend, test if ust headers are present
! 2297: if test "$trace_backend" = "ust"; then
! 2298: cat > $TMPC << EOF
! 2299: #include <ust/tracepoint.h>
! 2300: #include <ust/marker.h>
! 2301: int main(void) { return 0; }
! 2302: EOF
! 2303: if compile_prog "" "" ; then
! 2304: LIBS="-lust $LIBS"
! 2305: else
! 2306: echo
! 2307: echo "Error: Trace backend 'ust' missing libust header files"
! 2308: echo
! 2309: exit 1
! 2310: fi
! 2311: fi
! 2312:
! 2313: ##########################################
! 2314: # For 'dtrace' backend, test if 'dtrace' command is present
! 2315: if test "$trace_backend" = "dtrace"; then
! 2316: if ! has 'dtrace' ; then
! 2317: echo
! 2318: echo "Error: dtrace command is not found in PATH $PATH"
! 2319: echo
! 2320: exit 1
! 2321: fi
! 2322: trace_backend_stap="no"
! 2323: if has 'stap' ; then
! 2324: trace_backend_stap="yes"
! 2325: fi
! 2326: fi
! 2327:
! 2328: ##########################################
1.1.1.11 root 2329: # End of CC checks
2330: # After here, no more $cc or $ld runs
2331:
2332: if test "$debug" = "no" ; then
2333: CFLAGS="-O2 $CFLAGS"
2334: fi
2335:
2336: # Consult white-list to determine whether to enable werror
2337: # by default. Only enable by default for git builds
2338: z_version=`cut -f3 -d. $source_path/VERSION`
2339:
2340: if test -z "$werror" ; then
2341: if test "$z_version" = "50" -a \
2342: "$linux" = "yes" ; then
2343: werror="yes"
2344: else
2345: werror="no"
2346: fi
2347: fi
2348:
2349: # Disable zero malloc errors for official releases unless explicitly told to
2350: # enable/disable
2351: if test -z "$zero_malloc" ; then
2352: if test "$z_version" = "50" ; then
2353: zero_malloc="no"
2354: else
2355: zero_malloc="yes"
2356: fi
2357: fi
2358:
2359: if test "$werror" = "yes" ; then
2360: QEMU_CFLAGS="-Werror $QEMU_CFLAGS"
2361: fi
2362:
2363: if test "$solaris" = "no" ; then
2364: if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
2365: LDFLAGS="-Wl,--warn-common $LDFLAGS"
2366: fi
1.1.1.7 root 2367: fi
2368:
1.1.1.14! root 2369: # Use ASLR, no-SEH and DEP if available
! 2370: if test "$mingw32" = "yes" ; then
! 2371: for flag in --dynamicbase --no-seh --nxcompat; do
! 2372: if $ld --help 2>/dev/null | grep ".$flag" >/dev/null 2>/dev/null ; then
! 2373: LDFLAGS="-Wl,$flag $LDFLAGS"
! 2374: fi
! 2375: done
! 2376: fi
! 2377:
1.1.1.13 root 2378: confdir=$sysconfdir$confsuffix
2379:
2380: tools=
2381: if test "$softmmu" = yes ; then
2382: tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
2383: if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
2384: tools="qemu-nbd\$(EXESUF) $tools"
2385: if [ "$check_utests" = "yes" ]; then
2386: tools="check-qint check-qstring check-qdict check-qlist $tools"
2387: tools="check-qfloat check-qjson $tools"
2388: fi
1.1.1.6 root 2389: fi
1.1 root 2390: fi
2391:
1.1.1.13 root 2392: # Mac OS X ships with a broken assembler
2393: roms=
2394: if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
2395: "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
2396: "$softmmu" = yes ; then
2397: roms="optionrom"
2398: fi
2399:
2400:
1.1 root 2401: echo "Install prefix $prefix"
1.1.1.13 root 2402: echo "BIOS directory `eval echo $datadir`"
2403: echo "binary directory `eval echo $bindir`"
2404: echo "config directory `eval echo $sysconfdir`"
1.1 root 2405: if test "$mingw32" = "no" ; then
1.1.1.13 root 2406: echo "Manual directory `eval echo $mandir`"
1.1 root 2407: echo "ELF interp prefix $interp_prefix"
2408: fi
2409: echo "Source path $source_path"
2410: echo "C compiler $cc"
2411: echo "Host C compiler $host_cc"
1.1.1.11 root 2412: echo "CFLAGS $CFLAGS"
2413: echo "QEMU_CFLAGS $QEMU_CFLAGS"
2414: echo "LDFLAGS $LDFLAGS"
1.1 root 2415: echo "make $make"
1.1.1.3 root 2416: echo "install $install"
1.1 root 2417: echo "host CPU $cpu"
2418: echo "host big endian $bigendian"
2419: echo "target list $target_list"
1.1.1.9 root 2420: echo "tcg debug enabled $debug_tcg"
1.1.1.13 root 2421: echo "Mon debug enabled $debug_mon"
1.1 root 2422: echo "gprof enabled $gprof"
1.1.1.7 root 2423: echo "sparse enabled $sparse"
1.1.1.9 root 2424: echo "strip binaries $strip_opt"
1.1.1.3 root 2425: echo "profiler $profiler"
1.1 root 2426: echo "static build $static"
1.1.1.6 root 2427: echo "-Werror enabled $werror"
1.1 root 2428: if test "$darwin" = "yes" ; then
2429: echo "Cocoa support $cocoa"
2430: fi
2431: echo "SDL support $sdl"
1.1.1.7 root 2432: echo "curses support $curses"
1.1.1.9 root 2433: echo "curl support $curl"
1.1.1.11 root 2434: echo "check support $check_utests"
1.1 root 2435: echo "mingw32 support $mingw32"
1.1.1.7 root 2436: echo "Audio drivers $audio_drv_list"
2437: echo "Extra audio cards $audio_card_list"
1.1.1.11 root 2438: echo "Block whitelist $block_drv_whitelist"
1.1.1.7 root 2439: echo "Mixer emulation $mixemu"
1.1.1.6 root 2440: echo "VNC TLS support $vnc_tls"
1.1.1.9 root 2441: echo "VNC SASL support $vnc_sasl"
1.1.1.13 root 2442: echo "VNC JPEG support $vnc_jpeg"
2443: echo "VNC PNG support $vnc_png"
2444: echo "VNC thread $vnc_thread"
1.1.1.6 root 2445: if test -n "$sparc_cpu"; then
2446: echo "Target Sparc Arch $sparc_cpu"
2447: fi
1.1.1.9 root 2448: echo "xen support $xen"
1.1.1.7 root 2449: echo "brlapi support $brlapi"
1.1.1.11 root 2450: echo "bluez support $bluez"
2451: echo "Documentation $docs"
1.1.1.4 root 2452: [ ! -z "$uname_release" ] && \
2453: echo "uname -r $uname_release"
1.1.1.7 root 2454: echo "NPTL support $nptl"
1.1.1.11 root 2455: echo "GUEST_BASE $guest_base"
2456: echo "PIE user targets $user_pie"
1.1.1.7 root 2457: echo "vde support $vde"
1.1.1.9 root 2458: echo "IO thread $io_thread"
1.1.1.11 root 2459: echo "Linux AIO support $linux_aio"
1.1.1.13 root 2460: echo "ATTR/XATTR support $attr"
1.1.1.7 root 2461: echo "Install blobs $blobs"
1.1.1.11 root 2462: echo "KVM support $kvm"
1.1.1.7 root 2463: echo "fdt support $fdt"
1.1.1.9 root 2464: echo "preadv support $preadv"
1.1.1.11 root 2465: echo "fdatasync $fdatasync"
1.1.1.14! root 2466: echo "madvise $madvise"
! 2467: echo "posix_madvise $posix_madvise"
1.1.1.11 root 2468: echo "uuid support $uuid"
1.1.1.13 root 2469: echo "vhost-net support $vhost_net"
1.1.1.14! root 2470: echo "Trace backend $trace_backend"
! 2471: echo "Trace output file $trace_file-<pid>"
! 2472: echo "spice support $spice"
! 2473: echo "rbd support $rbd"
! 2474: echo "xfsctl support $xfs"
1.1 root 2475:
2476: if test $sdl_too_old = "yes"; then
2477: echo "-> Your SDL version is too old - please upgrade to have SDL support"
2478: fi
2479:
1.1.1.9 root 2480: config_host_mak="config-host.mak"
1.1.1.11 root 2481: config_host_ld="config-host.ld"
1.1.1.9 root 2482:
2483: echo "# Automatically generated by configure - do not modify" > $config_host_mak
2484: printf "# Configured with:" >> $config_host_mak
2485: printf " '%s'" "$0" "$@" >> $config_host_mak
2486: echo >> $config_host_mak
2487:
1.1.1.14! root 2488: echo all: >> $config_host_mak
1.1.1.13 root 2489: echo "prefix=$prefix" >> $config_host_mak
2490: echo "bindir=$bindir" >> $config_host_mak
2491: echo "mandir=$mandir" >> $config_host_mak
2492: echo "datadir=$datadir" >> $config_host_mak
2493: echo "sysconfdir=$sysconfdir" >> $config_host_mak
2494: echo "docdir=$docdir" >> $config_host_mak
2495: echo "confdir=$confdir" >> $config_host_mak
1.1.1.11 root 2496:
1.1.1.7 root 2497: case "$cpu" in
1.1.1.11 root 2498: i386|x86_64|alpha|cris|hppa|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
1.1.1.9 root 2499: ARCH=$cpu
1.1.1.7 root 2500: ;;
1.1.1.10 root 2501: armv4b|armv4l)
1.1.1.9 root 2502: ARCH=arm
1.1.1.7 root 2503: ;;
2504: esac
1.1.1.9 root 2505: echo "ARCH=$ARCH" >> $config_host_mak
2506: if test "$debug_tcg" = "yes" ; then
1.1.1.11 root 2507: echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
1.1.1.9 root 2508: fi
1.1.1.13 root 2509: if test "$debug_mon" = "yes" ; then
2510: echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak
2511: fi
1.1.1.9 root 2512: if test "$debug" = "yes" ; then
1.1.1.11 root 2513: echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
1.1.1.9 root 2514: fi
2515: if test "$strip_opt" = "yes" ; then
1.1.1.14! root 2516: echo "STRIP=${strip}" >> $config_host_mak
1.1 root 2517: fi
2518: if test "$bigendian" = "yes" ; then
1.1.1.11 root 2519: echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
1.1 root 2520: fi
1.1.1.11 root 2521: echo "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak
1.1 root 2522: if test "$mingw32" = "yes" ; then
1.1.1.9 root 2523: echo "CONFIG_WIN32=y" >> $config_host_mak
1.1.1.14! root 2524: rc_version=`cat $source_path/VERSION`
! 2525: version_major=${rc_version%%.*}
! 2526: rc_version=${rc_version#*.}
! 2527: version_minor=${rc_version%%.*}
! 2528: rc_version=${rc_version#*.}
! 2529: version_subminor=${rc_version%%.*}
! 2530: version_micro=0
! 2531: echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
! 2532: echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
1.1.1.6 root 2533: else
1.1.1.11 root 2534: echo "CONFIG_POSIX=y" >> $config_host_mak
1.1.1.7 root 2535: fi
2536:
1.1.1.11 root 2537: if test "$linux" = "yes" ; then
2538: echo "CONFIG_LINUX=y" >> $config_host_mak
1.1 root 2539: fi
1.1.1.7 root 2540:
1.1 root 2541: if test "$darwin" = "yes" ; then
1.1.1.9 root 2542: echo "CONFIG_DARWIN=y" >> $config_host_mak
1.1 root 2543: fi
1.1.1.7 root 2544:
2545: if test "$aix" = "yes" ; then
1.1.1.9 root 2546: echo "CONFIG_AIX=y" >> $config_host_mak
1.1.1.7 root 2547: fi
2548:
1.1.1.3 root 2549: if test "$solaris" = "yes" ; then
1.1.1.9 root 2550: echo "CONFIG_SOLARIS=y" >> $config_host_mak
1.1.1.11 root 2551: echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
1.1.1.6 root 2552: if test "$needs_libsunmath" = "yes" ; then
1.1.1.11 root 2553: echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
1.1.1.6 root 2554: fi
2555: fi
1.1.1.14! root 2556: if test "$haiku" = "yes" ; then
! 2557: echo "CONFIG_HAIKU=y" >> $config_host_mak
! 2558: fi
1.1 root 2559: if test "$static" = "yes" ; then
1.1.1.9 root 2560: echo "CONFIG_STATIC=y" >> $config_host_mak
1.1 root 2561: fi
1.1.1.3 root 2562: if test $profiler = "yes" ; then
1.1.1.11 root 2563: echo "CONFIG_PROFILER=y" >> $config_host_mak
1.1.1.3 root 2564: fi
1.1 root 2565: if test "$slirp" = "yes" ; then
1.1.1.9 root 2566: echo "CONFIG_SLIRP=y" >> $config_host_mak
1.1.1.14! root 2567: QEMU_INCLUDES="-I\$(SRC_PATH)/slirp $QEMU_INCLUDES"
1.1 root 2568: fi
1.1.1.7 root 2569: if test "$vde" = "yes" ; then
1.1.1.9 root 2570: echo "CONFIG_VDE=y" >> $config_host_mak
1.1.1.7 root 2571: fi
2572: for card in $audio_card_list; do
2573: def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1.1.1.9 root 2574: echo "$def=y" >> $config_host_mak
1.1.1.7 root 2575: done
1.1.1.11 root 2576: echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
1.1.1.7 root 2577: for drv in $audio_drv_list; do
2578: def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1.1.1.9 root 2579: echo "$def=y" >> $config_host_mak
1.1.1.7 root 2580: if test "$drv" = "fmod"; then
1.1.1.11 root 2581: echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak
1.1.1.7 root 2582: fi
2583: done
1.1.1.11 root 2584: if test "$audio_pt_int" = "yes" ; then
2585: echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
2586: fi
2587: if test "$audio_win_int" = "yes" ; then
2588: echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
2589: fi
2590: echo "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak
1.1.1.7 root 2591: if test "$mixemu" = "yes" ; then
1.1.1.9 root 2592: echo "CONFIG_MIXEMU=y" >> $config_host_mak
1.1 root 2593: fi
1.1.1.6 root 2594: if test "$vnc_tls" = "yes" ; then
1.1.1.9 root 2595: echo "CONFIG_VNC_TLS=y" >> $config_host_mak
1.1.1.11 root 2596: echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
1.1.1.9 root 2597: fi
2598: if test "$vnc_sasl" = "yes" ; then
2599: echo "CONFIG_VNC_SASL=y" >> $config_host_mak
1.1.1.11 root 2600: echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
1.1.1.9 root 2601: fi
1.1.1.13 root 2602: if test "$vnc_jpeg" != "no" ; then
2603: echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
2604: echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak
2605: fi
2606: if test "$vnc_png" != "no" ; then
2607: echo "CONFIG_VNC_PNG=y" >> $config_host_mak
2608: echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
2609: fi
2610: if test "$vnc_thread" != "no" ; then
2611: echo "CONFIG_VNC_THREAD=y" >> $config_host_mak
2612: echo "CONFIG_THREAD=y" >> $config_host_mak
2613: fi
1.1.1.9 root 2614: if test "$fnmatch" = "yes" ; then
1.1.1.11 root 2615: echo "CONFIG_FNMATCH=y" >> $config_host_mak
2616: fi
2617: if test "$uuid" = "yes" ; then
2618: echo "CONFIG_UUID=y" >> $config_host_mak
1.1.1.6 root 2619: fi
1.1.1.14! root 2620: if test "$xfs" = "yes" ; then
! 2621: echo "CONFIG_XFS=y" >> $config_host_mak
! 2622: fi
1.1.1.3 root 2623: qemu_version=`head $source_path/VERSION`
1.1.1.9 root 2624: echo "VERSION=$qemu_version" >>$config_host_mak
1.1.1.11 root 2625: echo "PKGVERSION=$pkgversion" >>$config_host_mak
1.1.1.9 root 2626: echo "SRC_PATH=$source_path" >> $config_host_mak
2627: echo "TARGET_DIRS=$target_list" >> $config_host_mak
1.1.1.11 root 2628: if [ "$docs" = "yes" ] ; then
1.1.1.9 root 2629: echo "BUILD_DOCS=yes" >> $config_host_mak
1.1.1.3 root 2630: fi
1.1.1.11 root 2631: if test "$sdl" = "yes" ; then
1.1.1.9 root 2632: echo "CONFIG_SDL=y" >> $config_host_mak
1.1.1.11 root 2633: echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
1.1.1.6 root 2634: fi
2635: if test "$cocoa" = "yes" ; then
1.1.1.9 root 2636: echo "CONFIG_COCOA=y" >> $config_host_mak
1.1.1.7 root 2637: fi
2638: if test "$curses" = "yes" ; then
1.1.1.9 root 2639: echo "CONFIG_CURSES=y" >> $config_host_mak
2640: fi
2641: if test "$atfile" = "yes" ; then
1.1.1.11 root 2642: echo "CONFIG_ATFILE=y" >> $config_host_mak
1.1.1.9 root 2643: fi
2644: if test "$utimens" = "yes" ; then
1.1.1.11 root 2645: echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
1.1.1.9 root 2646: fi
2647: if test "$pipe2" = "yes" ; then
1.1.1.11 root 2648: echo "CONFIG_PIPE2=y" >> $config_host_mak
2649: fi
2650: if test "$accept4" = "yes" ; then
2651: echo "CONFIG_ACCEPT4=y" >> $config_host_mak
1.1.1.9 root 2652: fi
2653: if test "$splice" = "yes" ; then
1.1.1.11 root 2654: echo "CONFIG_SPLICE=y" >> $config_host_mak
2655: fi
2656: if test "$eventfd" = "yes" ; then
2657: echo "CONFIG_EVENTFD=y" >> $config_host_mak
2658: fi
2659: if test "$fallocate" = "yes" ; then
2660: echo "CONFIG_FALLOCATE=y" >> $config_host_mak
2661: fi
1.1.1.14! root 2662: if test "$sync_file_range" = "yes" ; then
! 2663: echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
! 2664: fi
! 2665: if test "$fiemap" = "yes" ; then
! 2666: echo "CONFIG_FIEMAP=y" >> $config_host_mak
! 2667: fi
1.1.1.11 root 2668: if test "$dup3" = "yes" ; then
2669: echo "CONFIG_DUP3=y" >> $config_host_mak
1.1.1.9 root 2670: fi
2671: if test "$inotify" = "yes" ; then
1.1.1.11 root 2672: echo "CONFIG_INOTIFY=y" >> $config_host_mak
2673: fi
1.1.1.13 root 2674: if test "$inotify1" = "yes" ; then
2675: echo "CONFIG_INOTIFY1=y" >> $config_host_mak
2676: fi
1.1.1.11 root 2677: if test "$byteswap_h" = "yes" ; then
2678: echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
2679: fi
2680: if test "$bswap_h" = "yes" ; then
2681: echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
1.1.1.9 root 2682: fi
2683: if test "$curl" = "yes" ; then
2684: echo "CONFIG_CURL=y" >> $config_host_mak
1.1.1.11 root 2685: echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
1.1.1.7 root 2686: fi
2687: if test "$brlapi" = "yes" ; then
1.1.1.9 root 2688: echo "CONFIG_BRLAPI=y" >> $config_host_mak
1.1.1.7 root 2689: fi
2690: if test "$bluez" = "yes" ; then
1.1.1.9 root 2691: echo "CONFIG_BLUEZ=y" >> $config_host_mak
1.1.1.11 root 2692: echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
1.1.1.9 root 2693: fi
2694: if test "$xen" = "yes" ; then
1.1.1.11 root 2695: echo "CONFIG_XEN=y" >> $config_host_mak
1.1.1.9 root 2696: fi
2697: if test "$io_thread" = "yes" ; then
2698: echo "CONFIG_IOTHREAD=y" >> $config_host_mak
1.1.1.13 root 2699: echo "CONFIG_THREAD=y" >> $config_host_mak
1.1.1.11 root 2700: fi
2701: if test "$linux_aio" = "yes" ; then
2702: echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
1.1.1.7 root 2703: fi
1.1.1.13 root 2704: if test "$attr" = "yes" ; then
2705: echo "CONFIG_ATTR=y" >> $config_host_mak
2706: fi
2707: if test "$linux" = "yes" ; then
2708: if test "$attr" = "yes" ; then
2709: echo "CONFIG_VIRTFS=y" >> $config_host_mak
2710: fi
2711: fi
1.1.1.7 root 2712: if test "$blobs" = "yes" ; then
1.1.1.9 root 2713: echo "INSTALL_BLOBS=yes" >> $config_host_mak
1.1.1.7 root 2714: fi
2715: if test "$iovec" = "yes" ; then
1.1.1.11 root 2716: echo "CONFIG_IOVEC=y" >> $config_host_mak
1.1.1.9 root 2717: fi
2718: if test "$preadv" = "yes" ; then
1.1.1.11 root 2719: echo "CONFIG_PREADV=y" >> $config_host_mak
1.1.1.7 root 2720: fi
2721: if test "$fdt" = "yes" ; then
1.1.1.11 root 2722: echo "CONFIG_FDT=y" >> $config_host_mak
2723: fi
1.1.1.14! root 2724: if test "$signalfd" = "yes" ; then
! 2725: echo "CONFIG_SIGNALFD=y" >> $config_host_mak
! 2726: fi
1.1.1.11 root 2727: if test "$need_offsetof" = "yes" ; then
2728: echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
2729: fi
2730: if test "$gcc_attribute_warn_unused_result" = "yes" ; then
2731: echo "CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT=y" >> $config_host_mak
2732: fi
2733: if test "$fdatasync" = "yes" ; then
2734: echo "CONFIG_FDATASYNC=y" >> $config_host_mak
1.1.1.6 root 2735: fi
1.1.1.14! root 2736: if test "$madvise" = "yes" ; then
! 2737: echo "CONFIG_MADVISE=y" >> $config_host_mak
! 2738: fi
! 2739: if test "$posix_madvise" = "yes" ; then
! 2740: echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
! 2741: fi
! 2742:
! 2743: if test "$spice" = "yes" ; then
! 2744: echo "CONFIG_SPICE=y" >> $config_host_mak
! 2745: fi
1.1 root 2746:
2747: # XXX: suppress that
2748: if [ "$bsd" = "yes" ] ; then
1.1.1.11 root 2749: echo "CONFIG_BSD=y" >> $config_host_mak
1.1 root 2750: fi
2751:
1.1.1.11 root 2752: echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
2753:
2754: if test "$zero_malloc" = "yes" ; then
2755: echo "CONFIG_ZERO_MALLOC=y" >> $config_host_mak
2756: fi
1.1.1.14! root 2757: if test "$rbd" = "yes" ; then
! 2758: echo "CONFIG_RBD=y" >> $config_host_mak
! 2759: fi
1.1.1.4 root 2760:
1.1.1.7 root 2761: # USB host support
2762: case "$usb" in
2763: linux)
1.1.1.9 root 2764: echo "HOST_USB=linux" >> $config_host_mak
1.1.1.7 root 2765: ;;
2766: bsd)
1.1.1.9 root 2767: echo "HOST_USB=bsd" >> $config_host_mak
1.1.1.7 root 2768: ;;
2769: *)
1.1.1.9 root 2770: echo "HOST_USB=stub" >> $config_host_mak
1.1.1.7 root 2771: ;;
2772: esac
2773:
1.1.1.14! root 2774: echo "TRACE_BACKEND=$trace_backend" >> $config_host_mak
! 2775: if test "$trace_backend" = "simple"; then
! 2776: echo "CONFIG_SIMPLE_TRACE=y" >> $config_host_mak
! 2777: fi
! 2778: # Set the appropriate trace file.
! 2779: if test "$trace_backend" = "simple"; then
! 2780: trace_file="\"$trace_file-%u\""
! 2781: fi
! 2782: if test "$trace_backend" = "dtrace" -a "$trace_backend_stap" = "yes" ; then
! 2783: echo "CONFIG_SYSTEMTAP_TRACE=y" >> $config_host_mak
! 2784: fi
! 2785: echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
! 2786:
1.1.1.9 root 2787: echo "TOOLS=$tools" >> $config_host_mak
2788: echo "ROMS=$roms" >> $config_host_mak
1.1.1.11 root 2789: echo "MAKE=$make" >> $config_host_mak
2790: echo "INSTALL=$install" >> $config_host_mak
2791: echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
2792: echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
2793: echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
2794: echo "CC=$cc" >> $config_host_mak
1.1.1.14! root 2795: echo "CC_I386=$cc_i386" >> $config_host_mak
1.1.1.11 root 2796: echo "HOST_CC=$host_cc" >> $config_host_mak
2797: echo "AR=$ar" >> $config_host_mak
2798: echo "OBJCOPY=$objcopy" >> $config_host_mak
2799: echo "LD=$ld" >> $config_host_mak
1.1.1.14! root 2800: echo "WINDRES=$windres" >> $config_host_mak
1.1.1.11 root 2801: echo "CFLAGS=$CFLAGS" >> $config_host_mak
2802: echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
1.1.1.14! root 2803: echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
! 2804: if test "$sparse" = "yes" ; then
! 2805: echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak
! 2806: echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak
! 2807: echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
! 2808: fi
1.1.1.11 root 2809: echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
2810: echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
2811: echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
2812: echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
2813: echo "LIBS+=$LIBS" >> $config_host_mak
2814: echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
2815: echo "EXESUF=$EXESUF" >> $config_host_mak
2816:
2817: # generate list of library paths for linker script
2818:
2819: $ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}
2820:
2821: if test -f ${config_host_ld}~ ; then
2822: if cmp -s $config_host_ld ${config_host_ld}~ ; then
2823: mv ${config_host_ld}~ $config_host_ld
1.1.1.9 root 2824: else
1.1.1.11 root 2825: rm ${config_host_ld}~
1.1.1.9 root 2826: fi
2827: fi
1.1.1.6 root 2828:
1.1.1.13 root 2829: for d in libdis libdis-user; do
2830: mkdir -p $d
1.1.1.14! root 2831: symlink $source_path/Makefile.dis $d/Makefile
1.1.1.13 root 2832: echo > $d/config.mak
2833: done
2834: if test "$static" = "no" -a "$user_pie" = "yes" ; then
2835: echo "QEMU_CFLAGS+=-fpie" > libdis-user/config.mak
2836: fi
2837:
1.1.1.2 root 2838: for target in $target_list; do
1.1 root 2839: target_dir="$target"
1.1.1.11 root 2840: config_target_mak=$target_dir/config-target.mak
1.1.1.9 root 2841: target_arch2=`echo $target | cut -d '-' -f 1`
1.1 root 2842: target_bigendian="no"
1.1.1.11 root 2843:
1.1.1.9 root 2844: case "$target_arch2" in
1.1.1.11 root 2845: armeb|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus)
1.1.1.9 root 2846: target_bigendian=yes
2847: ;;
2848: esac
1.1 root 2849: target_softmmu="no"
2850: target_user_only="no"
1.1.1.5 root 2851: target_linux_user="no"
2852: target_darwin_user="no"
1.1.1.7 root 2853: target_bsd_user="no"
1.1.1.6 root 2854: case "$target" in
1.1.1.9 root 2855: ${target_arch2}-softmmu)
1.1.1.6 root 2856: target_softmmu="yes"
2857: ;;
1.1.1.9 root 2858: ${target_arch2}-linux-user)
1.1.1.11 root 2859: if test "$linux" != "yes" ; then
2860: echo "ERROR: Target '$target' is only available on a Linux host"
2861: exit 1
2862: fi
1.1.1.6 root 2863: target_user_only="yes"
2864: target_linux_user="yes"
2865: ;;
1.1.1.9 root 2866: ${target_arch2}-darwin-user)
1.1.1.11 root 2867: if test "$darwin" != "yes" ; then
2868: echo "ERROR: Target '$target' is only available on a Darwin host"
2869: exit 1
2870: fi
1.1.1.6 root 2871: target_user_only="yes"
2872: target_darwin_user="yes"
2873: ;;
1.1.1.9 root 2874: ${target_arch2}-bsd-user)
1.1.1.11 root 2875: if test "$bsd" != "yes" ; then
2876: echo "ERROR: Target '$target' is only available on a BSD host"
2877: exit 1
2878: fi
1.1.1.7 root 2879: target_user_only="yes"
2880: target_bsd_user="yes"
2881: ;;
1.1.1.6 root 2882: *)
2883: echo "ERROR: Target '$target' not recognised"
2884: exit 1
2885: ;;
2886: esac
1.1.1.5 root 2887:
1.1 root 2888: mkdir -p $target_dir
2889: mkdir -p $target_dir/fpu
1.1.1.7 root 2890: mkdir -p $target_dir/tcg
1.1.1.11 root 2891: mkdir -p $target_dir/ide
1.1.1.7 root 2892: 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 2893: mkdir -p $target_dir/nwfpe
2894: fi
1.1.1.14! root 2895: symlink $source_path/Makefile.target $target_dir/Makefile
1.1.1.3 root 2896:
1.1 root 2897:
1.1.1.11 root 2898: echo "# Automatically generated by configure - do not modify" > $config_target_mak
1.1 root 2899:
1.1.1.4 root 2900: bflt="no"
1.1.1.7 root 2901: target_nptl="no"
1.1.1.9 root 2902: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
1.1.1.13 root 2903: echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
1.1.1.7 root 2904: gdb_xml_files=""
1.1 root 2905:
1.1.1.9 root 2906: TARGET_ARCH="$target_arch2"
2907: TARGET_BASE_ARCH=""
2908: TARGET_ABI_DIR=""
1.1.1.7 root 2909:
1.1.1.9 root 2910: case "$target_arch2" in
1.1.1.7 root 2911: i386)
1.1.1.9 root 2912: target_phys_bits=32
1.1.1.7 root 2913: ;;
2914: x86_64)
1.1.1.9 root 2915: TARGET_BASE_ARCH=i386
2916: target_phys_bits=64
1.1.1.7 root 2917: ;;
2918: alpha)
1.1.1.9 root 2919: target_phys_bits=64
1.1.1.13 root 2920: target_nptl="yes"
1.1.1.7 root 2921: ;;
2922: arm|armeb)
1.1.1.9 root 2923: TARGET_ARCH=arm
1.1.1.7 root 2924: bflt="yes"
2925: target_nptl="yes"
2926: gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
1.1.1.9 root 2927: target_phys_bits=32
1.1.1.7 root 2928: ;;
2929: cris)
2930: target_nptl="yes"
1.1.1.9 root 2931: target_phys_bits=32
1.1.1.7 root 2932: ;;
2933: m68k)
2934: bflt="yes"
2935: gdb_xml_files="cf-core.xml cf-fp.xml"
1.1.1.9 root 2936: target_phys_bits=32
2937: ;;
2938: microblaze)
2939: bflt="yes"
2940: target_nptl="yes"
2941: target_phys_bits=32
1.1.1.7 root 2942: ;;
2943: mips|mipsel)
1.1.1.9 root 2944: TARGET_ARCH=mips
1.1.1.11 root 2945: echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
1.1.1.9 root 2946: target_nptl="yes"
2947: target_phys_bits=64
1.1.1.7 root 2948: ;;
2949: mipsn32|mipsn32el)
1.1.1.9 root 2950: TARGET_ARCH=mipsn32
2951: TARGET_BASE_ARCH=mips
1.1.1.11 root 2952: echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
1.1.1.9 root 2953: target_phys_bits=64
1.1.1.7 root 2954: ;;
2955: mips64|mips64el)
1.1.1.9 root 2956: TARGET_ARCH=mips64
2957: TARGET_BASE_ARCH=mips
1.1.1.11 root 2958: echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
1.1.1.9 root 2959: target_phys_bits=64
1.1.1.7 root 2960: ;;
2961: ppc)
2962: gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9 root 2963: target_phys_bits=32
1.1.1.11 root 2964: target_nptl="yes"
1.1.1.7 root 2965: ;;
2966: ppcemb)
1.1.1.9 root 2967: TARGET_BASE_ARCH=ppc
2968: TARGET_ABI_DIR=ppc
1.1.1.7 root 2969: gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9 root 2970: target_phys_bits=64
1.1.1.11 root 2971: target_nptl="yes"
1.1.1.7 root 2972: ;;
2973: ppc64)
1.1.1.9 root 2974: TARGET_BASE_ARCH=ppc
2975: TARGET_ABI_DIR=ppc
1.1.1.7 root 2976: gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9 root 2977: target_phys_bits=64
1.1.1.7 root 2978: ;;
2979: ppc64abi32)
1.1.1.9 root 2980: TARGET_ARCH=ppc64
2981: TARGET_BASE_ARCH=ppc
2982: TARGET_ABI_DIR=ppc
1.1.1.11 root 2983: echo "TARGET_ABI32=y" >> $config_target_mak
1.1.1.7 root 2984: gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
1.1.1.9 root 2985: target_phys_bits=64
1.1.1.7 root 2986: ;;
2987: sh4|sh4eb)
1.1.1.9 root 2988: TARGET_ARCH=sh4
1.1.1.7 root 2989: bflt="yes"
2990: target_nptl="yes"
1.1.1.9 root 2991: target_phys_bits=32
1.1.1.7 root 2992: ;;
2993: sparc)
1.1.1.9 root 2994: target_phys_bits=64
1.1.1.7 root 2995: ;;
2996: sparc64)
1.1.1.9 root 2997: TARGET_BASE_ARCH=sparc
2998: target_phys_bits=64
1.1.1.7 root 2999: ;;
3000: sparc32plus)
1.1.1.9 root 3001: TARGET_ARCH=sparc64
3002: TARGET_BASE_ARCH=sparc
3003: TARGET_ABI_DIR=sparc
1.1.1.11 root 3004: echo "TARGET_ABI32=y" >> $config_target_mak
3005: target_phys_bits=64
3006: ;;
3007: s390x)
1.1.1.9 root 3008: target_phys_bits=64
1.1.1.7 root 3009: ;;
3010: *)
3011: echo "Unsupported target CPU"
3012: exit 1
3013: ;;
3014: esac
1.1.1.11 root 3015: echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
3016: target_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`"
3017: echo "TARGET_$target_arch_name=y" >> $config_target_mak
3018: echo "TARGET_ARCH2=$target_arch2" >> $config_target_mak
1.1.1.9 root 3019: # TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
3020: if [ "$TARGET_BASE_ARCH" = "" ]; then
3021: TARGET_BASE_ARCH=$TARGET_ARCH
3022: fi
1.1.1.11 root 3023: echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
1.1.1.9 root 3024: if [ "$TARGET_ABI_DIR" = "" ]; then
3025: TARGET_ABI_DIR=$TARGET_ARCH
3026: fi
1.1.1.11 root 3027: echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
1.1.1.9 root 3028: case "$target_arch2" in
3029: i386|x86_64)
3030: if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
1.1.1.11 root 3031: echo "CONFIG_XEN=y" >> $config_target_mak
1.1.1.9 root 3032: fi
3033: esac
3034: case "$target_arch2" in
1.1.1.11 root 3035: i386|x86_64|ppcemb|ppc|ppc64|s390x)
1.1.1.9 root 3036: # Make sure the target and host cpus are compatible
3037: if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
3038: \( "$target_arch2" = "$cpu" -o \
3039: \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \
1.1.1.11 root 3040: \( "$target_arch2" = "ppc64" -a "$cpu" = "ppc" \) -o \
1.1.1.9 root 3041: \( "$target_arch2" = "x86_64" -a "$cpu" = "i386" \) -o \
3042: \( "$target_arch2" = "i386" -a "$cpu" = "x86_64" \) \) ; then
1.1.1.11 root 3043: echo "CONFIG_KVM=y" >> $config_target_mak
3044: echo "KVM_CFLAGS=$kvm_cflags" >> $config_target_mak
1.1.1.13 root 3045: if test "$kvm_para" = "yes"; then
3046: echo "CONFIG_KVM_PARA=y" >> $config_target_mak
3047: fi
3048: if test $vhost_net = "yes" ; then
3049: echo "CONFIG_VHOST_NET=y" >> $config_target_mak
3050: fi
1.1.1.9 root 3051: fi
3052: esac
1.1 root 3053: if test "$target_bigendian" = "yes" ; then
1.1.1.11 root 3054: echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
1.1 root 3055: fi
3056: if test "$target_softmmu" = "yes" ; then
1.1.1.13 root 3057: echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak
1.1.1.11 root 3058: echo "CONFIG_SOFTMMU=y" >> $config_target_mak
3059: echo "LIBS+=$libs_softmmu" >> $config_target_mak
1.1.1.13 root 3060: echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak
1.1.1.11 root 3061: echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
1.1 root 3062: fi
3063: if test "$target_user_only" = "yes" ; then
1.1.1.11 root 3064: echo "CONFIG_USER_ONLY=y" >> $config_target_mak
1.1 root 3065: fi
1.1.1.5 root 3066: if test "$target_linux_user" = "yes" ; then
1.1.1.11 root 3067: echo "CONFIG_LINUX_USER=y" >> $config_target_mak
1.1.1.5 root 3068: fi
3069: if test "$target_darwin_user" = "yes" ; then
1.1.1.11 root 3070: echo "CONFIG_DARWIN_USER=y" >> $config_target_mak
1.1.1.5 root 3071: fi
1.1.1.7 root 3072: list=""
3073: if test ! -z "$gdb_xml_files" ; then
3074: for x in $gdb_xml_files; do
3075: list="$list $source_path/gdb-xml/$x"
3076: done
1.1.1.11 root 3077: echo "TARGET_XML_FILES=$list" >> $config_target_mak
1.1.1.7 root 3078: fi
3079:
1.1.1.9 root 3080: case "$target_arch2" in
1.1.1.14! root 3081: i386|x86_64)
! 3082: echo "CONFIG_NOSOFTFLOAT=y" >> $config_target_mak
1.1.1.11 root 3083: ;;
3084: *)
1.1.1.14! root 3085: echo "CONFIG_SOFTFLOAT=y" >> $config_target_mak
1.1.1.9 root 3086: ;;
3087: esac
3088:
1.1.1.4 root 3089: if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1.1.1.11 root 3090: echo "TARGET_HAS_BFLT=y" >> $config_target_mak
1.1.1.4 root 3091: fi
1.1.1.7 root 3092: if test "$target_user_only" = "yes" \
3093: -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1.1.1.11 root 3094: echo "CONFIG_USE_NPTL=y" >> $config_target_mak
1.1.1.7 root 3095: fi
1.1.1.11 root 3096: if test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then
3097: echo "CONFIG_USE_GUEST_BASE=y" >> $config_target_mak
1.1 root 3098: fi
1.1.1.7 root 3099: if test "$target_bsd_user" = "yes" ; then
1.1.1.11 root 3100: echo "CONFIG_BSD_USER=y" >> $config_target_mak
3101: fi
3102:
3103: # generate QEMU_CFLAGS/LDFLAGS for targets
3104:
3105: cflags=""
1.1.1.14! root 3106: includes=""
1.1.1.11 root 3107: ldflags=""
3108:
3109: if test "$ARCH" = "sparc64" ; then
1.1.1.14! root 3110: includes="-I\$(SRC_PATH)/tcg/sparc $includes"
1.1.1.11 root 3111: elif test "$ARCH" = "s390x" ; then
1.1.1.14! root 3112: includes="-I\$(SRC_PATH)/tcg/s390 $includes"
1.1.1.13 root 3113: elif test "$ARCH" = "x86_64" ; then
1.1.1.14! root 3114: includes="-I\$(SRC_PATH)/tcg/i386 $includes"
1.1.1.11 root 3115: else
1.1.1.14! root 3116: includes="-I\$(SRC_PATH)/tcg/\$(ARCH) $includes"
1.1.1.11 root 3117: fi
1.1.1.14! root 3118: includes="-I\$(SRC_PATH)/tcg $includes"
! 3119: includes="-I\$(SRC_PATH)/fpu $includes"
1.1.1.11 root 3120:
1.1.1.13 root 3121: if test "$target_user_only" = "yes" ; then
3122: libdis_config_mak=libdis-user/config.mak
3123: else
3124: libdis_config_mak=libdis/config.mak
3125: fi
3126:
1.1.1.11 root 3127: for i in $ARCH $TARGET_BASE_ARCH ; do
3128: case "$i" in
3129: alpha)
3130: echo "CONFIG_ALPHA_DIS=y" >> $config_target_mak
1.1.1.13 root 3131: echo "CONFIG_ALPHA_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3132: ;;
3133: arm)
3134: echo "CONFIG_ARM_DIS=y" >> $config_target_mak
1.1.1.13 root 3135: echo "CONFIG_ARM_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3136: ;;
3137: cris)
3138: echo "CONFIG_CRIS_DIS=y" >> $config_target_mak
1.1.1.13 root 3139: echo "CONFIG_CRIS_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3140: ;;
3141: hppa)
3142: echo "CONFIG_HPPA_DIS=y" >> $config_target_mak
1.1.1.13 root 3143: echo "CONFIG_HPPA_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3144: ;;
3145: i386|x86_64)
3146: echo "CONFIG_I386_DIS=y" >> $config_target_mak
1.1.1.13 root 3147: echo "CONFIG_I386_DIS=y" >> $libdis_config_mak
3148: ;;
3149: ia64*)
3150: echo "CONFIG_IA64_DIS=y" >> $config_target_mak
3151: echo "CONFIG_IA64_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3152: ;;
3153: m68k)
3154: echo "CONFIG_M68K_DIS=y" >> $config_target_mak
1.1.1.13 root 3155: echo "CONFIG_M68K_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3156: ;;
3157: microblaze)
3158: echo "CONFIG_MICROBLAZE_DIS=y" >> $config_target_mak
1.1.1.13 root 3159: echo "CONFIG_MICROBLAZE_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3160: ;;
3161: mips*)
3162: echo "CONFIG_MIPS_DIS=y" >> $config_target_mak
1.1.1.13 root 3163: echo "CONFIG_MIPS_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3164: ;;
3165: ppc*)
3166: echo "CONFIG_PPC_DIS=y" >> $config_target_mak
1.1.1.13 root 3167: echo "CONFIG_PPC_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3168: ;;
3169: s390*)
3170: echo "CONFIG_S390_DIS=y" >> $config_target_mak
1.1.1.13 root 3171: echo "CONFIG_S390_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3172: ;;
3173: sh4)
3174: echo "CONFIG_SH4_DIS=y" >> $config_target_mak
1.1.1.13 root 3175: echo "CONFIG_SH4_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3176: ;;
3177: sparc*)
3178: echo "CONFIG_SPARC_DIS=y" >> $config_target_mak
1.1.1.13 root 3179: echo "CONFIG_SPARC_DIS=y" >> $libdis_config_mak
1.1.1.11 root 3180: ;;
3181: esac
3182: done
3183:
3184: case "$ARCH" in
3185: alpha)
3186: # Ensure there's only a single GP
3187: cflags="-msmall-data $cflags"
3188: ;;
3189: esac
3190:
3191: if test "$target_softmmu" = "yes" ; then
3192: case "$TARGET_BASE_ARCH" in
3193: arm)
3194: cflags="-DHAS_AUDIO $cflags"
3195: ;;
3196: i386|mips|ppc)
3197: cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags"
3198: ;;
3199: esac
1.1.1.7 root 3200: fi
1.1 root 3201:
1.1.1.11 root 3202: if test "$target_user_only" = "yes" -a "$static" = "no" -a \
3203: "$user_pie" = "yes" ; then
3204: cflags="-fpie $cflags"
3205: ldflags="-pie $ldflags"
3206: fi
1.1.1.9 root 3207:
1.1.1.11 root 3208: if test "$target_softmmu" = "yes" -a \( \
3209: "$TARGET_ARCH" = "microblaze" -o \
3210: "$TARGET_ARCH" = "cris" \) ; then
3211: echo "CONFIG_NEED_MMU=y" >> $config_target_mak
3212: fi
3213:
3214: if test "$gprof" = "yes" ; then
3215: echo "TARGET_GPROF=yes" >> $config_target_mak
3216: if test "$target_linux_user" = "yes" ; then
3217: cflags="-p $cflags"
3218: ldflags="-p $ldflags"
3219: fi
3220: if test "$target_softmmu" = "yes" ; then
3221: ldflags="-p $ldflags"
3222: echo "GPROF_CFLAGS=-p" >> $config_target_mak
3223: fi
3224: fi
3225:
3226: linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
3227: if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
3228: case "$ARCH" in
3229: sparc)
3230: # -static is used to avoid g1/g3 usage by the dynamic linker
3231: ldflags="$linker_script -static $ldflags"
3232: ;;
1.1.1.13 root 3233: alpha | s390x)
3234: # The default placement of the application is fine.
1.1.1.11 root 3235: ;;
1.1.1.13 root 3236: *)
1.1.1.11 root 3237: ldflags="$linker_script $ldflags"
3238: ;;
3239: esac
3240: fi
3241:
3242: echo "LDFLAGS+=$ldflags" >> $config_target_mak
3243: echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
1.1.1.14! root 3244: echo "QEMU_INCLUDES+=$includes" >> $config_target_mak
1.1 root 3245:
3246: done # for target in $targets
3247:
1.1.1.14! root 3248: # build tree in object directory in case the source is not in the current directory
! 3249: DIRS="tests tests/cris slirp audio block net pc-bios/optionrom"
! 3250: DIRS="$DIRS roms/seabios roms/vgabios"
! 3251: DIRS="$DIRS fsdev ui"
! 3252: FILES="Makefile tests/Makefile"
! 3253: FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
! 3254: FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
! 3255: FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
! 3256: for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
! 3257: FILES="$FILES pc-bios/`basename $bios_file`"
! 3258: done
! 3259: mkdir -p $DIRS
! 3260: for f in $FILES ; do
! 3261: test -e $f || symlink $source_path/$f $f
! 3262: done
1.1.1.9 root 3263:
1.1.1.11 root 3264: # temporary config to build submodules
3265: for rom in seabios vgabios ; do
3266: config_mak=roms/$rom/config.mak
1.1.1.13 root 3267: echo "# Automatically generated by configure - do not modify" > $config_mak
1.1.1.11 root 3268: echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
3269: echo "CC=$cc" >> $config_mak
3270: echo "BCC=bcc" >> $config_mak
3271: echo "CPP=${cross_prefix}cpp" >> $config_mak
3272: echo "OBJCOPY=objcopy" >> $config_mak
3273: echo "IASL=iasl" >> $config_mak
3274: echo "LD=$ld" >> $config_mak
3275: done
3276:
1.1.1.9 root 3277: for hwlib in 32 64; do
3278: d=libhw$hwlib
3279: mkdir -p $d
1.1.1.13 root 3280: mkdir -p $d/ide
1.1.1.14! root 3281: symlink $source_path/Makefile.hw $d/Makefile
1.1.1.13 root 3282: echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak
1.1.1.9 root 3283: done
1.1.1.11 root 3284:
3285: d=libuser
3286: mkdir -p $d
1.1.1.14! root 3287: symlink $source_path/Makefile.user $d/Makefile
1.1.1.12 root 3288: if test "$static" = "no" -a "$user_pie" = "yes" ; then
3289: echo "QEMU_CFLAGS+=-fpie" > $d/config.mak
3290: fi
1.1.1.13 root 3291:
3292: if test "$docs" = "yes" ; then
3293: mkdir -p QMP
3294: fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.