aboutsummaryrefslogtreecommitdiff
path: root/emulators/qemu8/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/qemu8/Makefile')
-rw-r--r--emulators/qemu8/Makefile190
1 files changed, 190 insertions, 0 deletions
diff --git a/emulators/qemu8/Makefile b/emulators/qemu8/Makefile
new file mode 100644
index 000000000000..78ad60e900ac
--- /dev/null
+++ b/emulators/qemu8/Makefile
@@ -0,0 +1,190 @@
+PORTNAME= qemu
+DISTVERSION= 8.2.3
+CATEGORIES= emulators
+MASTER_SITES= https://download.qemu.org/
+DIST_SUBDIR= qemu/${PORTVERSION}
+
+MAINTAINER= bofh@FreeBSD.org
+COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 8.X.X
+WWW= https://www.qemu.org/
+
+LICENSE= GPLv2
+
+ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le
+# We need to check if it build with other ARCHS
+
+BUILD_DEPENDS= bash:shells/bash
+LIB_DEPENDS+= libfdt.so:sysutils/dtc \
+ libzstd.so:archivers/zstd \
+ libslirp.so:net/libslirp
+.if ${FLAVOR:U} != nox11
+LIB_DEPENDS+= libepoxy.so:graphics/libepoxy
+.endif
+
+FLAVORS= default nox11
+FLAVOR?= ${FLAVORS:[1]}
+default_PKGNAMESUFFIX= 8
+default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \
+ qemu7* qemu8*
+nox11_PKGNAMESUFFIX= 8-nox11
+nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu* qemu7* qemu-guest-agent
+nox11_COMMENT= (without X11)
+
+USES= cpe gmake gnome ninja perl5 pkgconfig python:build shebangfix tar:xz
+SHEBANG_FILES= scripts/xml-preprocess.py
+USE_GNOME= glib20
+USE_PERL5= build
+USES+= iconv:wchar_t
+.if ${FLAVOR:U} != nox11
+USE_GNOME+= cairo
+.endif
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --cc=${CC} \
+ --disable-guest-agent \
+ --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}/share/man \
+ --prefix=${PREFIX} \
+ --python=${PYTHON_CMD}
+CONFIGURE_ARGS+= --enable-fdt=system \
+ --enable-netmap
+
+CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//}
+WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation
+
+PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html 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 OPENGL X11
+.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/capstone
+CAPSTONE_CONFIGURE_ON= --enable-capstone \
+ --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-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)
+X86_TARGETS_LIB_DEPENDS_OFF= libdw.so:devel/elfutils
+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
+
+.include <bsd.port.options.mk>
+
+.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11)
+.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:Mpowerpc64*} || ${ARCH:Maarch64}
+CONFIGURE_ARGS+= --disable-bsd-user
+MAKE_ARGS+= ARCH=${ARCH:C/powerpc64.*/ppc64/}
+PLIST_SUB+= BSDUSER="@comment "
+.else
+PLIST_SUB+= BSDUSER=""
+.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} && ${SETENVI} ${WRK_ENV} ${GMAKE} -j${MAKE_JOBS_NUMBER}
+
+do-install:
+ cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} DESTDIR=${STAGEDIR} ${GMAKE} install
+
+.if !target(post-install)
+post-install:
+ ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${STAGEDIR}${PREFIX}/etc
+ ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${STAGEDIR}${PREFIX}/etc
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*
+
+post-install-DOCS-on:
+ @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/)
+.endif
+
+.include <bsd.port.mk>