freebsd-ports/emulators/qemu6/Makefile
Stefan Eßer b7f05445c0 Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
2022-09-07 23:10:59 +02:00

239 lines
7.3 KiB
Makefile

PORTNAME= qemu
PORTVERSION= 6.2.0
CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/
DIST_SUBDIR= qemu/${PORTVERSION}
MAINTAINER= bofh@FreeBSD.org
COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 6.X
WWW= https://wiki.qemu.org/Main_Page
LICENSE= GPLv2
BUILD_DEPENDS= bash:shells/bash
.if ${FLAVOR:U} != tools
LIB_DEPENDS+= libfdt.so:sysutils/dtc \
libzstd.so:archivers/zstd
.endif
.if (${FLAVOR:U} != nox11 && ${FLAVOR:U} != tools)
LIB_DEPENDS+= libepoxy.so:graphics/libepoxy
.endif
FLAVORS= default nox11 tools
FLAVOR?= ${FLAVORS:[1]}
default_PKGNAMESUFFIX= 6
default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \
qemu5*
nox11_PKGNAMESUFFIX= 6-nox11
nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu42 qemu5*
nox11_COMMENT= (without X11)
tools_PKGNAMESUFFIX= 6-tools
tools_COMMENT= (tools only)
tools_CONFLICTS_INSTALL= qemu qemu-devel qemu-nox11 qemu-utils qemu42 \
qemu5*
tools_DESCR= ${.CURDIR}/pkg-descr-tools
tools_PLIST= ${.CURDIR}/pkg-plist-tools
USES= cpe gmake gnome ninja perl5 pkgconfig python:build tar:xz
USE_GNOME= glib20
USE_PERL5= build
.if ${FLAVOR:U} != tools
ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64 powerpc64le
USES+= iconv:wchar_t
.endif
.if (${FLAVOR:U} != nox11 && ${FLAVOR:U} != tools)
USE_GNOME+= cairo
.endif
HAS_CONFIGURE= yes
CONFIGURE_ARGS+= --cc=${CC} \
--disable-kvm \
--disable-linux-aio \
--disable-linux-user \
--disable-xen \
--extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" \
--extra-ldflags=-L${LOCALBASE}/lib \
--extra-ldflags=-L/usr/lib \
--localstatedir=/var \
--mandir=${PREFIX}/man \
--prefix=${PREFIX} \
--python=${PYTHON_CMD}
CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//}
WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation
PORTDOCS= .buildinfo _static/* about/* devel/* docs genindex.html \
index.html interop/* objects.inv search.html searchindex.js \
specs/* system/* tools/* user/*
OPTIONS_DEFINE= CAPSTONE CDROM_DMA CURL DEBUG DOCS GNUTLS GTK3 \
ISCSI JPEG OPENGL PNG SAMBA SASL STATIC_LINK \
STRIP USBREDIR VDE X11 X86_TARGETS
OPTIONS_DEFAULT= CDROM_DMA CURL GNUTLS GTK3 JPEG NCURSES_DEFAULT \
OPENGL PNG SASL VDE X11
OPTIONS_SINGLE= NCURSES
OPTIONS_SINGLE_NCURSES= NCURSES_BASE NCURSES_DEFAULT NCURSES_PORT
.if ${FLAVOR:U} == nox11
OPTIONS_EXCLUDE:= GTK3 X11
.endif
.if ${FLAVOR:U} == tools
OPTIONS_EXCLUDE:= CAPSTONE CDROM_DMA CURL DEBUG GNUTLS GTK3 ISCSI \
JPEG NCURSES NCURSES_BASE NCURSES_DEFAULT \
NCURSES_PORT OPENGL PNG SAMBA SASL STATIC_LINK \
USBREDIR VDE X11 X86_TARGETS
.endif
OPTIONS_SUB= yes
CAPSTONE_DESC= Disassembly framework support
CDROM_DMA_DESC= IDE CDROM DMA
GNUTLS_DESC= gnutls dependency (vnc encryption)
ISCSI_DESC= libiscsi dependency (iSCSI client for emulated drives)
JPEG_DESC= jpeg dependency (vnc lossy compression)
NCURSES_BASE_DESC= Depend on ncurses in base
NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise base)
NCURSES_PORT_DESC= Depend on devel/ncurses in ports
PNG_DESC= png dependency (vnc compression)
SAMBA_DESC= samba dependency (for -smb)
SASL_DESC= cyrus-sasl dependency (vnc encryption)
STATIC_LINK_DESC= Statically link the executables
USBREDIR_DESC= usb device network redirection (experimental!)
VDE_DESC= vde dependency (for vde networking)
X86_TARGETS_DESC= Build only x86 system targets
CAPSTONE_LIB_DEPENDS= libcapstone.so:devel/capstone4
CAPSTONE_CONFIGURE_ON= --enable-capstone=system \
--extra-cflags=-I${LOCALBASE}/include/capstone
CAPSTONE_CONFIGURE_OFF= --disable-capstone
CURL_LIB_DEPENDS= libcurl.so:ftp/curl
CURL_CONFIGURE_OFF= --disable-curl
DEBUG_CONFIGURE_ON= --enable-debug
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \
sphinx-build:textproc/py-sphinx@${PY_FLAVOR}
DOCS_CONFIGURE_ENABLE= docs
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
GNUTLS_CONFIGURE_OFF= --disable-gnutls
GTK3_LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon
GTK3_USES= gettext gl
GTK3_USE= GNOME=gdkpixbuf2,gtk30,vte3 \
XORG=x11,xext
GTK3_CONFIGURE_OFF= --disable-gtk \
--disable-vte
ISCSI_LIB_DEPENDS= libiscsi.so:net/libiscsi
ISCSI_CONFIGURE_OFF= --disable-libiscsi
JPEG_USES= jpeg
JPEG_CONFIGURE_OFF= --disable-vnc-jpeg
NCURSES_BASE_USES= ncurses:base
NCURSES_DEFAULT_USES= ncurses
NCURSES_PORT_USES= ncurses:port
OPENGL_USES= gl
OPENGL_USE= GL=gbm,gl
OPENGL_CONFIGURE_OFF= --disable-opengl
PNG_LIB_DEPENDS= libpng.so:graphics/png
PNG_CONFIGURE_OFF= --disable-vnc-png
SAMBA_USES= samba:run # smbd
SAMBA_CONFIGURE_ON= --smbd=${LOCALBASE}/sbin/smbd
SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
SASL_CONFIGURE_OFF= --disable-vnc-sasl
STATIC_LINK_PREVENTS= GTK3 X11
STATIC_LINK_PREVENTS_MSG= X11 ui cannot be built static
STATIC_LINK_CONFIGURE_ON= --static
STRIP_CONFIGURE_OFF= --disable-strip
USBREDIR_BUILD_DEPENDS= usbredir>=0.6:net/usbredir
USBREDIR_RUN_DEPENDS= usbredir>=0.6:net/usbredir
USBREDIR_CONFIGURE_OFF= --disable-usb-redir
VDE_LIB_DEPENDS= libvdeplug.so:net/vde2
VDE_CONFIGURE_OFF= --disable-vde
X11_USES= sdl
X11_USE= GNOME=gdkpixbuf2 \
SDL=sdl2 \
XORG=x11,xext
X11_CONFIGURE_ENABLE= sdl
.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) && \
(${FLAVOR:U} != tools || ${PKGNAMESUFFIX} != "-guest-agent")
X86_TARGETS_USES_OFF= xorg
X86_TARGETS_USE_OFF= XORG=pixman,x11
X86_TARGETS_CONFIGURE_ON= --target-list='i386-softmmu i386-bsd-user x86_64-softmmu x86_64-bsd-user'
.endif
.if ${FLAVOR:U} != tools
CONFIGURE_ARGS+= --enable-fdt=system \
--enable-netmap
.endif
.if ${FLAVOR:U} == tools
CONFIGURE_ARGS+= --disable-attr \
--disable-blobs \
--disable-brlapi \
--disable-bzip2 \
--disable-cap-ng \
--disable-coroutine-pool \
--disable-curses \
--disable-fdt \
--disable-gcrypt \
--disable-glusterfs \
--disable-guest-agent \
--disable-libnfs \
--disable-libusb \
--disable-lzo \
--disable-netmap \
--disable-nettle \
--disable-numa \
--disable-rbd \
--disable-rdma \
--disable-seccomp \
--disable-smartcard \
--disable-snappy \
--disable-spice \
--disable-system \
--disable-tpm \
--disable-user \
--disable-vhost-net \
--disable-virtfs \
--disable-vnc \
--enable-tools
.endif
.include <bsd.port.options.mk>
.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) && \
(${FLAVOR:U} != tools || ${PKGNAMESUFFIX} != "-guest-agent")
.if ${ARCH} == "amd64"
MAKE_ARGS+= ARCH=x86_64
.endif
.if ${ARCH} == "powerpc"
CFLAGS+= -D_CALL_SYSV
MAKE_ARGS+= ARCH=ppc
USE_GCC= yes
.endif
.if ${ARCH} == "powerpc64"
MAKE_ARGS+= ARCH=ppc64
.endif
.if ${ARCH} == "sparc64"
CONFIGURE_ARGS+= --sparc_cpu=v9
.endif
PLIST_SUB+= LINUXBOOT_DMA=""
.endif
post-patch-CDROM_DMA-off:
@${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/include/hw/ide/internal.h
do-build:
cd ${WRKSRC} && ${GMAKE}
do-install:
cd ${WRKSRC} && ${SETENV} DESTDIR=${STAGEDIR} ${GMAKE} install
.if !target(post-install)
post-install:
.if ${FLAVOR:U} != tools
${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${STAGEDIR}${PREFIX}/etc
${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${STAGEDIR}${PREFIX}/etc
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*
.endif
post-install-DOCS-on:
@(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/)
.endif
.include <bsd.port.mk>