pkgsrc/emulators/qemu/Makefile
wiz 9684e6f3d7 Update to 1.7.0, from tsutsui.
Changes:

System emulation

Device emulation

Audio

    The HDA device emulation now includes a mixer by default.
    Previously this had to be enabled with the configure argument
    "--enable-mixemu" when building QEMU.
    Audio will work correctly on systems without OSS (/dev/dsp).
    On previous versions, those systems needed special arguments
    to "configure" for audio to work out of the box.
    Audio honors the QEMU_AUDIO_TIMER_PERIOD environment variable
    and has less CPU utilization by default than previous versions.

Block devices

    Support for the LSI 53C810 SCSI HBA, which unlike the 895A is
    supported on some very old Windows NT versions.

Device assignment

    VFIO now supports setting CPU affinity on MSI interrupts.
    VFIO can now reset assigned devices much more reliably using
    either PCI function-level reset (FLR), power management, or a
    reset (done by the kernel) of the parent bridge.
    Several improvements to the reliability of using option ROMs
    for devices that are assigned with VFIO.

USB

    Performance and functionality improvements for USB 3.0.

MicroBlaze

    Can now specify an initrd on the command line.

PowerPC

    PowerPC now supports the dump-guest-memory command.

s390x

    The "nmi" command will trigger a crash dump from kdump, using
    a RESTART interrupt.
    The SCLP line-mode console ("operating system messages") can
    be accessed with "-device sclplmconsole".

x86

    ACPI tables can be generated by QEMU and can be used by firmware
    directly. This will in the future enable new features without
    modifications of all firmware components (SeaBIOS, OVMF,
    CoreBoot)
    Initial support for supporting more than 1TB of RAM (but firmware
    does not yet support this).
    Xen HVM domains can now resume from suspend-to-RAM (S3) state.

Monitor

    Subcommands (like "info block") can now autocomplete their
    options.
    Help for a single subcommand can be printed with a monitor
    command such as "help info block".
    New commands "blockdev-snapshot-internal-sync",
    "blockdev-snapshot-delete-internal-sync" improve support for
    internal qcow2 snapshot.
    New command "blockdev-add" provides a QMP interface for block
    device hotplug.

Block devices

    The throttling algorithm has been rewritten; the new code is
    more robust, and supports configuration of separate limits for
    sustained I/O vs. I/O bursts

Migration

    Migration was broken from QEMU <= 1.5 to 1.6; the new release
    fixes it.

User-mode emulation

    M68K ColdFire emulation supports atomic system calls.

Block devices, qemu-img, qemu-io

    The sheepdog driver supports automatic reconnect after network
    errors
    The VMDK driver supports files produced by VMWare ESX.
    The qcow2 driver can detect some cases of corruption, and will
    prevent writing to a corrupted image.
    The VHDX driver supports creating and writing .vhdx images.
    The metadata of a file (where each sector of the guest image
    is stored in the file on the host) can be dumped in human-readable
    or JSON format using a new command "qemu-img map".

Guest agent

    The "filesystem freeze/thaw" commands are now supported on
    Windows too, where they will invoke the native Volume Shadow
    Copy Service (VSS).

Miscellaneous

    For targets that have no embedded disassembler, QEMU will now
    produce hexadecimal dumps instead of just emitting an error
    when a disassembly is requested. The enclosed script disas-objdump.pl
    can be used, together with an external objdump program, to
    convert the dump to a readable disassembly.

Host support

    TCG now runs on x32 hosts.

Known issues

    On Win32, QEMU must be compiled with --disable-coroutine-pool
    to work around a suspected compiler bug.
    The GTK terminal windows (monitor, serial console, parallel,
    ...) are still unusable in TCG mode: they lose characters and
    can raise deadlocks.
2014-01-15 18:26:20 +00:00

103 lines
3.1 KiB
Makefile

# $NetBSD: Makefile,v 1.121 2014/01/15 18:26:20 wiz Exp $
DISTNAME= qemu-1.7.0
CATEGORIES= emulators
MASTER_SITES= http://wiki.qemu.org/download/
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.qemu.org/
COMMENT= CPU emulator using dynamic translation
LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd
CONFLICTS+= qemu-bin-[0-9]*
NOT_FOR_PLATFORM= NetBSD-1.[0-6]*-*
# qemu 1 does not work on NetBSD-5; see http://gnats.netbsd.org/46565.
# As a workaround, use emulators/qemu0.
NOT_FOR_PLATFORM= NetBSD-5*-*
USE_TOOLS+= bison gmake makeinfo perl:build pkg-config
USE_NCURSES= yes # requires resize_term()
UNLIMIT_RESOURCES= datasize
HAS_CONFIGURE= yes
BUILD_DEPENDS+= texi2html-[0-9]*:../../textproc/texi2html
.include "options.mk"
.include "../../mk/bsd.prefs.mk"
CONFIGURE_ARGS+= --prefix=${PREFIX}
CONFIGURE_ARGS+= --interp-prefix=${PREFIX}/share/qemu
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+= --python=${PYTHONBIN}
CONFIGURE_ARGS+= --smbd=${PREFIX}/sbin/smbd
CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
CONFIGURE_ARGS+= --enable-curses
#HF#CONFIGURE_ARGS+= --disable-fdt # HF: build on OS X
CONFIGURE_ENV+= mansuffix=/${PKGMANDIR}
CONF_FILES= ${EGDIR}/target-x86_64.conf \
${PKG_SYSCONFDIR}/target-x86_64.conf
EGDIR= ${PREFIX}/share/examples/qemu
INSTALL_MAKE_FLAGS= egdir=${EGDIR}
PKG_SYSCONFSUBDIR= qemu
REPLACE_PERL+= scripts/texi2pod.pl
BUILDLINK_PASSTHRU_DIRS+= /usr/lib
BUILDLINK_PASSTHRU_RPATHDIRS+= /usr/lib
INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu
UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel
UE_ARCHS+= or32 ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus
UE_ARCHS+= sparc64 x86_64 microblazeel s390x unicore32
.if ${OPSYS} == "NetBSD"
. if (!empty(OS_VERSION:M5.99.*) || !empty(OS_VERSION:M[6-9].*))
# XXX
# i386 and x86_64 user emul require newer binutils for PROVIDE_HIDDEN()
# http://git.qemu.org/qemu.git/commit/?id=845f2c2812d9ed24b36c02a3d06ee83aeafe8b49
# but binutils-2.19 was enabled around 5.99.22:
# http://cvsweb.NetBSD.org/bsdweb.cgi/src/share/mk/bsd.own.mk#rev1.594
USER_EMUL= i386 x86_64 sparc sparc64
. else
CONFIGURE_ARGS+= --disable-bsd-user
USER_EMUL=
. endif
PLIST.nbd= YES
.elif !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly)
USER_EMUL= i386 x86_64 sparc sparc64
PLIST.nbd= YES
.elif !empty(OPSYS:MDarwin)
USER_EMUL=
CONFIGURE_ARGS+= --disable-bsd-user
PLIST.nbd= YES
.elif !empty(OPSYS:MLinux)
USER_EMUL= ${UE_ARCHS}
PLIST.nbd= YES
.elif !empty(MACHINE_PLATFORM:MSunOS-5.11-*)
PLIST.nbd= YES
.endif
PLIST_VARS+= ${UE_ARCHS} nbd
.for _var_ in ${USER_EMUL}
PLIST.${_var_}= YES
.endfor
post-install:
${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \
${DESTDIR}${PREFIX}/share/doc/qemu/
# On Darwin, qemu uses Cocoa and CoreAudio
.if empty(OPSYS:MDarwin)
.include "../../mk/oss.buildlink3.mk"
.endif
.include "../../devel/glib2/buildlink3.mk"
.include "../../devel/ncurses/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../lang/python/extension.mk"
.include "../../x11/pixman/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"