1PORTNAME= qemu 2DISTVERSION= 8.2.5 3PORTREVISION= 1 4CATEGORIES= emulators 5MASTER_SITES= https://download.qemu.org/ 6DIST_SUBDIR= qemu/${PORTVERSION} 7 8MAINTAINER= ports@MidnightBSD.org 9COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 8.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= 8 25default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \ 26 qemu7* qemu8* 27nox11_PKGNAMESUFFIX= 8-nox11 28nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu* qemu7* qemu-guest-agent 29nox11_COMMENT= (without X11) 30 31USES= cpe gmake gnome ninja perl5 pkgconfig python:build shebangfix tar:xz 32SHEBANG_FILES= scripts/xml-preprocess.py 33USE_GNOME= glib20 34USE_PERL5= build 35USES+= iconv:wchar_t 36.if ${FLAVOR:U} != nox11 37USE_GNOME+= cairo 38.endif 39 40HAS_CONFIGURE= yes 41CONFIGURE_ARGS+= --cc=${CC} \ 42 --disable-guest-agent \ 43 --disable-kvm \ 44 --disable-linux-aio \ 45 --disable-linux-user \ 46 --disable-xen \ 47 --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" \ 48 --extra-ldflags=-L${LOCALBASE}/lib \ 49 --extra-ldflags=-L/usr/lib \ 50 --localstatedir=/var \ 51 --mandir=${PREFIX}/share/man \ 52 --prefix=${PREFIX} \ 53 --python=${PYTHON_CMD} 54CONFIGURE_ARGS+= --enable-fdt=system \ 55 --enable-netmap 56 57CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} 58WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation 59 60PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html devel/* docs \ 61 genindex.html index.html interop/* objects.inv search.html \ 62 searchindex.js specs/* system/* tools/* user/* 63 64OPTIONS_DEFINE= CAPSTONE CDROM_DMA CURL DEBUG DOCS GNUTLS GTK3 \ 65 ISCSI JPEG OPENGL PNG SAMBA SASL STATIC_LINK \ 66 STRIP USBREDIR VDE X11 X86_TARGETS 67OPTIONS_DEFAULT= CDROM_DMA CURL GNUTLS GTK3 JPEG NCURSES_DEFAULT \ 68 OPENGL PNG SASL VDE X11 69OPTIONS_SINGLE= NCURSES 70OPTIONS_SINGLE_NCURSES= NCURSES_BASE NCURSES_DEFAULT NCURSES_PORT 71.if ${FLAVOR:U} == nox11 72OPTIONS_EXCLUDE:= GTK3 OPENGL X11 73.endif 74OPTIONS_SUB= yes 75CAPSTONE_DESC= Disassembly framework support 76CDROM_DMA_DESC= IDE CDROM DMA 77GNUTLS_DESC= gnutls dependency (vnc encryption) 78ISCSI_DESC= libiscsi dependency (iSCSI client for emulated drives) 79JPEG_DESC= jpeg dependency (vnc lossy compression) 80NCURSES_BASE_DESC= Depend on ncurses in base 81NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise base) 82NCURSES_PORT_DESC= Depend on devel/ncurses in ports 83PNG_DESC= png dependency (vnc compression) 84SAMBA_DESC= samba dependency (for -smb) 85SASL_DESC= cyrus-sasl dependency (vnc encryption) 86STATIC_LINK_DESC= Statically link the executables 87USBREDIR_DESC= usb device network redirection (experimental!) 88VDE_DESC= vde dependency (for vde networking) 89X86_TARGETS_DESC= Build only x86 system targets 90CAPSTONE_LIB_DEPENDS= libcapstone.so:devel/capstone 91CAPSTONE_CONFIGURE_ON= --enable-capstone \ 92 --extra-cflags=-I${LOCALBASE}/include/capstone 93CAPSTONE_CONFIGURE_OFF= --disable-capstone 94CURL_LIB_DEPENDS= libcurl.so:ftp/curl 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_LIB_DEPENDS_OFF= libdw.so:devel/elfutils 140X86_TARGETS_USES_OFF= xorg 141X86_TARGETS_USE_OFF= XORG=pixman,x11 142X86_TARGETS_CONFIGURE_ON= --target-list='i386-softmmu i386-bsd-user x86_64-softmmu x86_64-bsd-user' 143.endif 144 145.include <bsd.mport.options.mk> 146 147.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) 148.if ${ARCH} == "amd64" 149MAKE_ARGS+= ARCH=x86_64 150.endif 151 152#CONFIGURE_ARGS+= --disable-bsd-user 153#PLIST_SUB+= BSDUSER="@comment " 154PLIST_SUB+= BSDUSER="" 155 156PLIST_SUB+= LINUXBOOT_DMA="" 157.endif 158 159pre-patch: 160 ${LN} -sf ${WRKSRC}/bsd-user/freebsd ${WRKSRC}/bsd-user/midnightbsd 161 162post-patch-CDROM_DMA-off: 163 @${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/include/hw/ide/internal.h 164 165do-build: 166 cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} ${GMAKE} -j${MAKE_JOBS_NUMBER} 167 168do-install: 169 cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} DESTDIR=${FAKE_DESTDIR} gmake install 170 171.if !target(post-install) 172post-install: 173 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${PREFIX}/etc 174 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${PREFIX}/etc 175 -${STRIP_CMD} ${PREFIX}/bin/qemu-* 176 177post-install-DOCS-on: 178 @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${FAKE_DESTDIR}${DOCSDIR}/) 179.endif 180 181.include <bsd.port.mk> 182