1PORTNAME= qemu 2PORTVERSION= 7.2.11 3PORTREVISION= 2 4CATEGORIES= emulators 5MASTER_SITES= https://download.qemu.org/ 6DIST_SUBDIR= qemu/${PORTVERSION} 7 8MAINTAINER= ports@MidnightBSD.org 9COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 7.X.X 10WWW= https://www.qemu.org/ 11 12LICENSE= gpl2 13 14BUILD_DEPENDS= bash:shells/bash 15LIB_DEPENDS+= libfdt.so:sysutils/dtc \ 16 libzstd.so:archivers/zstd \ 17 libslirp.so:net/libslirp 18.if ${FLAVOR:U} != nox11 19LIB_DEPENDS+= libepoxy.so:graphics/libepoxy 20.endif 21 22FLAVORS= default nox11 23FLAVOR?= ${FLAVORS:[1]} 24default_PKGNAMESUFFIX= 7 25default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \ 26 qemu8* 27nox11_PKGNAMESUFFIX= 7-nox11 28nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu7* 29nox11_COMMENT= (without X11) 30 31USES= cpe gmake gnome ninja perl5 pkgconfig python:build tar:xz 32USE_GNOME= glib20 33USE_PERL5= build 34USES+= iconv:wchar_t 35.if ${FLAVOR:U} != nox11 36USE_GNOME+= cairo 37.endif 38 39HAS_CONFIGURE= yes 40CONFIGURE_ARGS+= --cc=${CC} \ 41 --disable-guest-agent \ 42 --disable-kvm \ 43 --disable-linux-aio \ 44 --disable-linux-user \ 45 --disable-xen \ 46 --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" \ 47 --extra-ldflags=-L${LOCALBASE}/lib \ 48 --extra-ldflags=-L/usr/lib \ 49 --localstatedir=/var \ 50 --mandir=${PREFIX}/share/man \ 51 --prefix=${PREFIX} \ 52 --python=${PYTHON_CMD} 53CONFIGURE_ARGS+= --enable-fdt=system \ 54 --enable-netmap 55 56CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} 57WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation 58 59PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html devel/* docs \ 60 genindex.html index.html interop/* objects.inv search.html \ 61 searchindex.js specs/* system/* tools/* user/* 62 63OPTIONS_DEFINE= CAPSTONE CDROM_DMA CURL DEBUG DOCS GNUTLS GTK3 \ 64 ISCSI JPEG OPENGL PNG SAMBA SASL STATIC_LINK \ 65 STRIP USBREDIR VDE X11 X86_TARGETS 66OPTIONS_DEFAULT= CDROM_DMA CURL GNUTLS GTK3 JPEG NCURSES_DEFAULT \ 67 OPENGL PNG SASL VDE X11 68OPTIONS_SINGLE= NCURSES 69OPTIONS_SINGLE_NCURSES= NCURSES_BASE NCURSES_DEFAULT NCURSES_PORT 70.if ${FLAVOR:U} == nox11 71OPTIONS_EXCLUDE:= GTK3 OPENGL X11 72.endif 73OPTIONS_SUB= yes 74CAPSTONE_DESC= Disassembly framework support 75CDROM_DMA_DESC= IDE CDROM DMA 76GNUTLS_DESC= gnutls dependency (vnc encryption) 77ISCSI_DESC= libiscsi dependency (iSCSI client for emulated drives) 78JPEG_DESC= jpeg dependency (vnc lossy compression) 79NCURSES_BASE_DESC= Depend on ncurses in base 80NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise base) 81NCURSES_PORT_DESC= Depend on devel/ncurses in ports 82PNG_DESC= png dependency (vnc compression) 83SAMBA_DESC= samba dependency (for -smb) 84SASL_DESC= cyrus-sasl dependency (vnc encryption) 85STATIC_LINK_DESC= Statically link the executables 86USBREDIR_DESC= usb device network redirection (experimental!) 87VDE_DESC= vde dependency (for vde networking) 88X86_TARGETS_DESC= Build only x86 system targets 89CAPSTONE_LIB_DEPENDS= libcapstone.so:devel/capstone4 90CAPSTONE_CONFIGURE_ON= --enable-capstone \ 91 --extra-cflags=-I${LOCALBASE}/include/capstone 92CAPSTONE_CONFIGURE_OFF= --disable-capstone 93CURL_LIB_DEPENDS= libcurl.so:ftp/curl 94CURL_USES= ssl 95CURL_CONFIGURE_OFF= --disable-curl 96DEBUG_CONFIGURE_ON= --enable-debug 97DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \ 98 sphinx-build:textproc/py-sphinx@${PY_FLAVOR} 99DOCS_CONFIGURE_ENABLE= docs 100GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls 101GNUTLS_CONFIGURE_OFF= --disable-gnutls 102GTK3_LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon 103GTK3_USES= gettext gl 104GTK3_USE= GNOME=gdkpixbuf,gtk30,vte3 \ 105 XORG=x11,xext 106GTK3_CONFIGURE_OFF= --disable-gtk \ 107 --disable-vte 108ISCSI_LIB_DEPENDS= libiscsi.so:net/libiscsi 109ISCSI_CONFIGURE_OFF= --disable-libiscsi 110JPEG_USES= jpeg 111JPEG_CONFIGURE_OFF= --disable-vnc-jpeg 112NCURSES_BASE_USES= ncurses:base 113NCURSES_DEFAULT_USES= ncurses 114NCURSES_PORT_USES= ncurses:port 115OPENGL_USES= gl 116OPENGL_USE= GL=gbm,gl 117OPENGL_CONFIGURE_OFF= --disable-opengl 118PNG_LIB_DEPENDS= libpng.so:graphics/png 119PNG_CONFIGURE_OFF= --disable-png 120SAMBA_USES= samba:run # smbd 121SAMBA_CONFIGURE_ON= --smbd=${LOCALBASE}/sbin/smbd 122SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 123SASL_CONFIGURE_OFF= --disable-vnc-sasl 124STATIC_LINK_PREVENTS= GTK3 X11 125STATIC_LINK_PREVENTS_MSG= X11 ui cannot be built static 126STATIC_LINK_CONFIGURE_ON= --static 127STRIP_CONFIGURE_OFF= --disable-strip 128USBREDIR_BUILD_DEPENDS= usbredir>=0.6:net/usbredir 129USBREDIR_RUN_DEPENDS= usbredir>=0.6:net/usbredir 130USBREDIR_CONFIGURE_OFF= --disable-usb-redir 131VDE_LIB_DEPENDS= libvdeplug.so:net/vde2 132VDE_CONFIGURE_OFF= --disable-vde 133X11_USES= sdl 134X11_USE= GNOME=gdkpixbuf \ 135 SDL=sdl2 \ 136 XORG=x11,xext 137X11_CONFIGURE_ENABLE= sdl 138.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) 139X86_TARGETS_USES_OFF= xorg 140X86_TARGETS_USE_OFF= XORG=pixman,x11 141X86_TARGETS_CONFIGURE_ON= --target-list='i386-softmmu i386-bsd-user x86_64-softmmu x86_64-bsd-user' 142.endif 143 144.include <bsd.mport.options.mk> 145 146.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) 147.if ${ARCH} == "amd64" 148MAKE_ARGS+= ARCH=x86_64 149.endif 150 151CONFIGURE_ARGS+= --disable-bsd-user 152PLIST_SUB+= BSDUSER="@comment " 153#PLIST_SUB+= BSDUSER="" 154 155PLIST_SUB+= LINUXBOOT_DMA="" 156.endif 157 158post-patch-CDROM_DMA-off: 159 @${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/include/hw/ide/internal.h 160 161pre-patch: 162 ${LN} -sf ${WRKSRC}/bsd-user/freebsd ${WRKSRC}/bsd-user/midnightbsd 163 164do-build: 165 cd ${WRKSRC} && ${GMAKE} -j${MAKE_JOBS_NUMBER} 166 167do-install: 168 cd ${WRKSRC} && ${SETENV} ${FAKE_MAKEENV} gmake install 169 170.if !target(post-install) 171post-install: 172 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${PREFIX}/etc 173 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${PREFIX}/etc 174 @${STRIP_CMD} ${PREFIX}/bin/qemu-* 175 176post-install-DOCS-on: 177 @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${FAKE_DESTDIR}${DOCSDIR}/) 178.endif 179 180.include <bsd.port.mk> 181