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