summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2019-08-30 13:00:56 +0000
committernia <nia@pkgsrc.org>2019-08-30 13:00:56 +0000
commit2eef940f64addaf49a0aade891ae640333f028fb (patch)
tree5a32e41b0d65c18a1963f3fcbb97223771c14cc2
parent705f74cdd16eaf8d3bfc39676d28fafd2fe562ec (diff)
downloadpkgsrc-2eef940f64addaf49a0aade891ae640333f028fb.tar.gz
MesaLib: various changes to how this is built
- Try to appease the Darwin build. - Simplify and reduce the number of options to make testing easier. - Silence lots of pkglint warnings. - Enable the surfaceless platform as recommended by Mesa. - Switch to gallium swrast as recommended by Mesa. - Switch to gallium osmesa as recommended by Mesa. - Support building without X11. todo: - glvnd support (needs testing to figure out which platforms it builds on) - make AMD drivers optional on platforms like aarch64 Bump PKGREVISION.
-rw-r--r--graphics/MesaLib/Makefile125
-rw-r--r--graphics/MesaLib/PLIST97
-rw-r--r--graphics/MesaLib/buildlink3.mk43
-rw-r--r--graphics/MesaLib/dri.mk31
-rw-r--r--graphics/MesaLib/options.mk305
5 files changed, 245 insertions, 356 deletions
diff --git a/graphics/MesaLib/Makefile b/graphics/MesaLib/Makefile
index fbe50da345c..9d28b0db2af 100644
--- a/graphics/MesaLib/Makefile
+++ b/graphics/MesaLib/Makefile
@@ -1,8 +1,9 @@
-# $NetBSD: Makefile,v 1.157 2019/08/28 09:09:15 nia Exp $
+# $NetBSD: Makefile,v 1.158 2019/08/30 13:00:56 nia Exp $
DISTNAME= mesa-19.1.5
PKGNAME= ${DISTNAME:S/mesa/MesaLib/}
-CATEGORIES= graphics x11
+PKGREVISION= 1
+CATEGORIES= graphics
MASTER_SITES= https://mesa.freedesktop.org/archive/
EXTRACT_SUFX= .tar.xz
@@ -37,15 +38,115 @@ CFLAGS.SunOS+= -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
CXXFLAGS.SunOS+= -Drestrict=__restrict__
LDFLAGS.SunOS+= -lsocket -lnsl
+# Some of these get appended in options.mk.
+DRI_DRIVERS= #
+GALLIUM_DRIVERS= swrast
+VULKAN_DRIVERS= #
+MESA_PLATFORMS= surfaceless
+
.include "../../mk/bsd.prefs.mk"
.include "../../mk/compiler.mk"
.include "options.mk"
+PLIST_SUBST+= GLVER="1.2.0"
+
+# classic DRI drivers
+PLIST_VARS+= i915 i965 r100 r200 nouveau_dri
+
+# Gallium drivers
+PLIST_VARS+= r300 svga nouveau vc4
+
+# other features
+PLIST_VARS+= egl gbm vaapi xatracker
+
+.if ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
+.include "../../x11/libdrm/buildlink3.mk"
+MESA_PLATFORMS+= drm
+MESON_ARGS+= -Ddri3=true
+MESON_ARGS+= -Dgallium-xa=true
+PLIST.xatracker= yes
+. if ${OPSYS} != "SunOS"
+MESON_ARGS+= -Degl=true
+MESON_ARGS+= -Dgbm=true
+PLIST.egl= yes
+PLIST.gbm= yes
+. else
+MESON_ARGS+= -Degl=false
+MESON_ARGS+= -Dgbm=false
+. endif
+. include "../../multimedia/libva/available.mk"
+. if ${VAAPI_AVAILABLE} == "yes"
+MESON_ARGS+= -Dgallium-va=true
+PLIST.vaapi= yes
+. include "../../multimedia/libva/buildlink3.mk"
+. else
+MESON_ARGS+= -Dgallium-va=false
+. endif
+. if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)
+# ARM Mali Utgard
+#GALLIUM_DRIVERS+= lima
+#PLIST.lima= yes
+# ARM Mali Midgard, Bifrost
+#GALLIUM_DRIVERS+= panfrost
+#PLIST.panfrost= yes
+# Vivante GCxxx
+#GALLIUM_DRIVERS+= etnaviv
+#PLIST.etnaviv= yes
+# Qualcomm Snapdragon
+#GALLIUM_DRIVERS+= freedreno
+#PLIST.freedreno= yes
+# Broadcom VideoCore 4
+GALLIUM_DRIVERS+= vc4
+PLIST.vc4= yes
+. endif
+. if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
+GALLIUM_DRIVERS+= svga
+DRI_DRIVERS+= i915 i965
+PLIST.svga= yes
+PLIST.i915= yes
+PLIST.i965= yes
+. endif
+# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
+. if ${OPSYS} != "FreeBSD"
+PLIST.nouveau= yes
+PLIST.nouveau_dri= yes
+GALLIUM_DRIVERS+= nouveau
+DRI_DRIVERS+= nouveau
+. endif
+. if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
+# qemu Linux guest driver
+# XXX test this
+#GALLIUM_DRIVERS+= virgl
+#PLIST.virgl= yes
+. endif
+# theoretically cross platform PCI drivers
+. if empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \
+ empty(MACHINE_PLATFORM:MNetBSD-*-mipsel)
+DRI_DRIVERS+= r100 r200
+GALLIUM_DRIVERS+= r300
+PLIST.r100= yes
+PLIST.r200= yes
+PLIST.r300= yes
+. endif
+.else
+MESON_ARGS+= -Degl=false
+MESON_ARGS+= -Dgbm=false
+.endif # ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
+
+MESON_ARGS+= -Dgallium-drivers=${GALLIUM_DRIVERS:ts,}
+MESON_ARGS+= -Ddri-drivers=${DRI_DRIVERS:ts,}
+MESON_ARGS+= -Dvulkan-drivers=${VULKAN_DRIVERS:ts,}
+MESON_ARGS+= -Dplatforms=${MESA_PLATFORMS:ts,}
+
.if ${MACHINE_ARCH} == "i386"
MESON_ARGS+= -Dglx-read-only-text=true
.endif
+MESON_ARGS+= -Dgles1=true
+MESON_ARGS+= -Dgles2=true
+MESON_ARGS+= -Dosmesa=gallium
MESON_ARGS+= -Dshared-glapi=true
+MESON_ARGS+= -Dgallium-xvmc=false
CPPFLAGS+= -DHAVE_NOATEXIT
CPPFLAGS+= -DSYSCONFDIR=${PKG_SYSCONFDIR}
@@ -57,18 +158,22 @@ CFLAGS.NetBSD+= -Dalloca=__builtin_alloca
CXXFLAGS.NetBSD+= -Dalloca=__builtin_alloca
PYTHON_FOR_BUILD_ONLY= yes
-BUILD_DEPENDS+= ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako
+
+TOOL_DEPENDS+= ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako
+
# needed to build vulkan support
-BUILD_DEPENDS+= ${PYPKGPREFIX}-cElementTree-[0-9]*:../../textproc/py-cElementTree
+TOOL_DEPENDS+= ${PYPKGPREFIX}-cElementTree-[0-9]*:../../textproc/py-cElementTree
# LLVM detection
TOOL_DEPENDS+= ${PYPKGPREFIX}-meson>=0.51.1nb3:../../devel/py-meson
-EGDIR= ${PREFIX}/share/examples/mesa
+EGDIR= ${PREFIX}/share/examples/mesa
+
+OWN_DIRS= ${PKG_SYSCONFDIR}/drirc.d
+CONF_FILES+= ${EGDIR}/00-mesa-defaults.conf \
+ ${PKG_SYSCONFDIR}/drirc.d/00-mesa-defaults.conf
+
INSTALLATION_DIRS+= ${EGDIR}
-OWN_DIRS= ${PKG_SYSCONFDIR}/drirc.d
-CONF_FILES+= ${EGDIR}/00-mesa-defaults.conf \
- ${PKG_SYSCONFDIR}/drirc.d/00-mesa-defaults.conf
pre-configure:
touch ${WRKSRC}/src/glx/apple_dummy.cpp
@@ -79,8 +184,4 @@ post-install:
.include "../../devel/py-meson/build.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
-.include "../../x11/libXrandr/buildlink3.mk"
-.include "../../x11/libX11/buildlink3.mk"
-.include "../../x11/libXext/buildlink3.mk"
-.include "../../x11/libxcb/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/graphics/MesaLib/PLIST b/graphics/MesaLib/PLIST
index e50ac90bbb3..907b3d399f6 100644
--- a/graphics/MesaLib/PLIST
+++ b/graphics/MesaLib/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.41 2019/08/26 14:01:27 nia Exp $
+@comment $NetBSD: PLIST,v 1.42 2019/08/30 13:00:56 nia Exp $
${PLIST.egl}include/EGL/egl.h
${PLIST.egl}include/EGL/eglext.h
${PLIST.egl}include/EGL/eglextchromium.h
@@ -8,76 +8,59 @@ include/GL/gl.h
include/GL/gl_mangle.h
include/GL/glcorearb.h
include/GL/glext.h
-include/GL/glx.h
-include/GL/glx_mangle.h
-include/GL/glxext.h
-${PLIST.dri}include/GL/internal/dri_interface.h
-${PLIST.osmesa}include/GL/osmesa.h
-${PLIST.glesv1}include/GLES/egl.h
-${PLIST.glesv1}include/GLES/gl.h
-${PLIST.glesv1}include/GLES/glext.h
-${PLIST.glesv1}include/GLES/glplatform.h
-${PLIST.glesv2}include/GLES2/gl2.h
-${PLIST.glesv2}include/GLES2/gl2ext.h
-${PLIST.glesv2}include/GLES2/gl2platform.h
-${PLIST.glesv2}include/GLES3/gl3.h
-${PLIST.glesv2}include/GLES3/gl31.h
-${PLIST.glesv2}include/GLES3/gl32.h
-${PLIST.glesv2}include/GLES3/gl3ext.h
-${PLIST.glesv2}include/GLES3/gl3platform.h
+${PLIST.glx}include/GL/glx.h
+${PLIST.glx}include/GL/glx_mangle.h
+${PLIST.glx}include/GL/glxext.h
+include/GL/internal/dri_interface.h
+include/GL/osmesa.h
+include/GLES/egl.h
+include/GLES/gl.h
+include/GLES/glext.h
+include/GLES/glplatform.h
+include/GLES2/gl2.h
+include/GLES2/gl2ext.h
+include/GLES2/gl2platform.h
+include/GLES3/gl3.h
+include/GLES3/gl31.h
+include/GLES3/gl32.h
+include/GLES3/gl3ext.h
+include/GLES3/gl3platform.h
include/KHR/khrplatform.h
${PLIST.gbm}include/gbm.h
-${PLIST.vulkan}include/vulkan/vulkan_intel.h
${PLIST.xatracker}include/xa_composite.h
${PLIST.xatracker}include/xa_context.h
${PLIST.xatracker}include/xa_tracker.h
-@comment ${PLIST.vaapi}lib/dri/gallium_drv_video.la
-@comment ${PLIST.vaapi}lib/dri/gallium_drv_video.so
${PLIST.i915}lib/dri/i915_dri.so
${PLIST.i965}lib/dri/i965_dri.so
-@comment ${PLIST.ilo}lib/dri/ilo_dri.so
-${PLIST.freedreno}lib/dri/kgsl_dri.so
-${PLIST.swrast}lib/dri/kms_swrast_dri.so
-${PLIST.freedreno}lib/dri/msm_dri.so
+lib/dri/kms_swrast_dri.so
${PLIST.nouveau}lib/dri/nouveau_dri.so
-@comment ${PLIST.vdpau}lib/dri/nouveau_drv_video.la
${PLIST.nouveau}${PLIST.vaapi}lib/dri/nouveau_drv_video.so
${PLIST.nouveau_dri}lib/dri/nouveau_vieux_dri.so
-@comment ${PLIST.vdpau}lib/dri/radeonsi_drv_video.la
${PLIST.r200}lib/dri/r200_dri.so
${PLIST.r300}lib/dri/r300_dri.so
${PLIST.r600}lib/dri/r600_dri.so
-@comment ${PLIST.vdpau}lib/dri/r600_drv_video.la
-${PLIST.vaapi}lib/dri/r600_drv_video.so
+${PLIST.r600}${PLIST.vaapi}lib/dri/r600_drv_video.so
${PLIST.r100}lib/dri/radeon_dri.so
${PLIST.radeonsi}lib/dri/radeonsi_dri.so
-${PLIST.vaapi}lib/dri/radeonsi_drv_video.so
-${PLIST.swrast_dri}lib/dri/swrast_dri.so
+${PLIST.r600}${PLIST.vaapi}lib/dri/radeonsi_drv_video.so
+lib/dri/swrast_dri.so
${PLIST.vc4}lib/dri/vc4_dri.so
${PLIST.svga}lib/dri/vmwgfx_dri.so
${PLIST.egl}lib/libEGL.so
${PLIST.egl}lib/libEGL.so.1
${PLIST.egl}lib/libEGL.so.1.0.0
-lib/libGL.so
-lib/libGL.so.1
-lib/libGL.so.${GLVER}
-${PLIST.glesv1}lib/libGLESv1_CM.so
-${PLIST.glesv1}lib/libGLESv1_CM.so.1
-${PLIST.glesv1}lib/libGLESv1_CM.so.1.1.0
-${PLIST.glesv2}lib/libGLESv2.so
-${PLIST.glesv2}lib/libGLESv2.so.2
-${PLIST.glesv2}lib/libGLESv2.so.2.0.0
-${PLIST.osmesa}lib/libOSMesa.so
-${PLIST.osmesa}lib/libOSMesa.so.8
-${PLIST.osmesa}lib/libOSMesa.so.8.0.0
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1.0
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1.0.0
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1.0
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1.0.0
+${PLIST.glx}lib/libGL.so
+${PLIST.glx}lib/libGL.so.1
+${PLIST.glx}lib/libGL.so.${GLVER}
+lib/libGLESv1_CM.so
+lib/libGLESv1_CM.so.1
+lib/libGLESv1_CM.so.1.1.0
+lib/libGLESv2.so
+lib/libGLESv2.so.2
+lib/libGLESv2.so.2.0.0
+lib/libOSMesa.so
+lib/libOSMesa.so.8
+lib/libOSMesa.so.8.0.0
${PLIST.gbm}lib/libgbm.so
${PLIST.gbm}lib/libgbm.so.1
${PLIST.gbm}lib/libgbm.so.1.0.0
@@ -87,13 +70,13 @@ lib/libglapi.so.0.0.0
${PLIST.xatracker}lib/libxatracker.so
${PLIST.xatracker}lib/libxatracker.so.2
${PLIST.xatracker}lib/libxatracker.so.2.5.0
-${PLIST.dri}lib/pkgconfig/dri.pc
+lib/pkgconfig/dri.pc
${PLIST.egl}lib/pkgconfig/egl.pc
${PLIST.gbm}lib/pkgconfig/gbm.pc
-lib/pkgconfig/gl.pc
-${PLIST.glesv1}lib/pkgconfig/glesv1_cm.pc
-${PLIST.glesv2}lib/pkgconfig/glesv2.pc
-${PLIST.osmesa}lib/pkgconfig/osmesa.pc
+${PLIST.glx}lib/pkgconfig/gl.pc
+lib/pkgconfig/glesv1_cm.pc
+lib/pkgconfig/glesv2.pc
+lib/pkgconfig/osmesa.pc
${PLIST.xatracker}lib/pkgconfig/xatracker.pc
${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so
${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1
@@ -111,6 +94,4 @@ ${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so
${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so.1
${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so.1.0
${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so.1.0.0
-${PLIST.vulkan}share/vulkan/icd.d/intel_icd.${MACHINE_ARCH}.json
-${PLIST.vulkan}share/vulkan/icd.d/radeon_icd.${MACHINE_ARCH}.json
share/examples/mesa/00-mesa-defaults.conf
diff --git a/graphics/MesaLib/buildlink3.mk b/graphics/MesaLib/buildlink3.mk
index dc9bb54da17..edf48cf2201 100644
--- a/graphics/MesaLib/buildlink3.mk
+++ b/graphics/MesaLib/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.58 2019/08/21 13:35:28 nia Exp $
+# $NetBSD: buildlink3.mk,v 1.59 2019/08/30 13:00:56 nia Exp $
BUILDLINK_TREE+= MesaLib
@@ -11,38 +11,43 @@ BUILDLINK_PKGSRCDIR.MesaLib?= ../../graphics/MesaLib
.include "../../mk/bsd.fast.prefs.mk"
-.if ${X11_TYPE} == "modular"
-BUILDLINK_ABI_DEPENDS.MesaLib+= MesaLib>=10.5.3
-. if defined(USE_LANGUAGES) && !empty(USE_LANGUAGES:Mc++)
-# This is needed to avoid linking conflicting libstdc++ versions
-GCC_REQD+= 4.2
-. endif
-.endif
-
# See <http://developer.apple.com/qa/qa2007/qa1567.html>.
.if ${X11_TYPE} == "native" && !empty(MACHINE_PLATFORM:MDarwin-[9].*-*)
BUILDLINK_LDFLAGS.MesaLib+= -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
.endif
pkgbase:= MesaLib
+
+.if ${X11_TYPE} == "modular" && (${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin") || \
+ ${X11_TYPE} == "native" && exists(${X11BASE}/include/EGL/egl.h)
+MESALIB_SUPPORTS_EGL= yes
+.else
+MESALIB_SUPPORTS_EGL= no
+.endif
+
.include "../../mk/pkg-build-options.mk"
-.if ${X11_TYPE} == "native" && ${OPSYS} != "Cygwin" && exists(${X11BASE}/lib/pkgconfig/dri.pc)
-PKG_BUILD_OPTIONS.MesaLib+= dri
+.if !empty(PKG_BUILD_OPTIONS.MesaLib:Mwayland)
+. include "../../devel/wayland/buildlink3.mk"
.endif
-.if !empty(PKG_BUILD_OPTIONS.MesaLib:Mdri)
-. include "../../graphics/MesaLib/dri.mk"
+.if !empty(PKG_BUILD_OPTIONS.MesaLib:Mx11)
+. include "../../x11/libX11/buildlink3.mk"
+. include "../../x11/libXdamage/buildlink3.mk"
+. include "../../x11/libXext/buildlink3.mk"
+. include "../../x11/libXfixes/buildlink3.mk"
+. include "../../x11/libXrandr/buildlink3.mk"
+. include "../../x11/libXxf86vm/buildlink3.mk"
+. include "../../x11/libxcb/buildlink3.mk"
+. include "../../x11/libxshmfence/buildlink3.mk"
+. include "../../x11/xcb-proto/buildlink3.mk"
+. include "../../x11/xorgproto/buildlink3.mk"
.endif
-.if ${X11_TYPE} == "modular" && !empty(PKG_BUILD_OPTIONS.MesaLib:Mdri) || \
- ${X11_TYPE} == "native" && exists(${X11BASE}/include/EGL/egl.h)
-MESALIB_SUPPORTS_EGL= yes
-.else
-MESALIB_SUPPORTS_EGL= no
+.if ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
+. include "../../x11/libdrm/buildlink3.mk"
.endif
-.include "../../x11/libXext/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.endif # MESALIB_BUILDLINK3_MK
diff --git a/graphics/MesaLib/dri.mk b/graphics/MesaLib/dri.mk
deleted file mode 100644
index fcfc8c030c2..00000000000
--- a/graphics/MesaLib/dri.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# $NetBSD: dri.mk,v 1.18 2019/08/21 13:35:28 nia Exp $
-#
-# Currently, this is for convenience only.
-#
-.if !defined(DRI_MK)
-DRI_MK= # defined
-
-.if !defined(USE_BUILTIN.MesaLib)
-CHECK_BUILTIN.MesaLib:= yes
-. include "../../graphics/MesaLib/builtin.mk"
-CHECK_BUILTIN.MesaLib:= no
-.endif
-
-.if !empty(USE_BUILTIN.MesaLib:M[Nn][Oo])
-. if ${OPSYS} != "Darwin"
-BUILDLINK_API_DEPENDS.libdrm+= libdrm>=2.4.60
-. endif
-. if ${OPSYS} == "Linux"
-BUILDLINK_API_DEPENDS.libxcb+= libxcb>=1.9.3
-. endif
-.endif
-.include "../../x11/xorgproto/buildlink3.mk"
-# XXX these do not have builtin.mk
-.include "../../x11/libxshmfence/buildlink3.mk"
-.include "../../x11/libXdamage/buildlink3.mk"
-.include "../../x11/libXfixes/buildlink3.mk"
-.include "../../x11/libXxf86vm/buildlink3.mk"
-.if ${OPSYS} != "Darwin"
-. include "../../x11/libdrm/buildlink3.mk"
-.endif
-.endif
diff --git a/graphics/MesaLib/options.mk b/graphics/MesaLib/options.mk
index c0ff3950257..b9d1e4095db 100644
--- a/graphics/MesaLib/options.mk
+++ b/graphics/MesaLib/options.mk
@@ -1,260 +1,93 @@
-# $NetBSD: options.mk,v 1.70 2019/08/24 20:01:01 nia Exp $
+# $NetBSD: options.mk,v 1.71 2019/08/30 13:00:56 nia Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.MesaLib
-PKG_SUPPORTED_OPTIONS= llvm dri wayland
-PKG_SUGGESTED_OPTIONS=
-PKG_SUPPORTED_OPTIONS+= vdpau vaapi
-PKG_SUPPORTED_OPTIONS+= osmesa
-PKG_SUPPORTED_OPTIONS+= glesv1 glesv2
-PKG_SUPPORTED_OPTIONS+= gallium-xa
-PKG_SUPPORTED_OPTIONS+= gallium-xvmc
-PKG_SUPPORTED_OPTIONS+= vulkan
+PKG_SUPPORTED_OPTIONS+= llvm x11
-PKG_SUGGESTED_OPTIONS+= vdpau vaapi
-PKG_SUGGESTED_OPTIONS+= glesv1 glesv2
-
-PKG_SUGGESTED_OPTIONS+= gallium-xa
-#PKG_SUGGESTED_OPTIONS+= gallium-xvmc
-PKG_SUGGESTED_OPTIONS+= osmesa
+.if ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
+PKG_SUPPORTED_OPTIONS+= wayland
+.endif
-PKG_OPTIONS_LEGACY_OPTS+= xa:gallium-xa
-PKG_OPTIONS_LEGACY_OPTS+= xvmc:gallium-xvmc
+PKG_SUGGESTED_OPTIONS+= x11
-# The LLVM option enables JIT accelerated software rendering and
-# is also required to support the latest RADEON GPUs, so enable it
-# by default on platforms where such GPUs might be encountered
-# or accelerated software rendering might be useful.
-.if (${MACHINE_ARCH} == "i386" || \
- ${MACHINE_ARCH} == "x86_64" || \
- ${MACHINE_ARCH} == "aarch64") && \
- ${OPSYS} != "SunOS" && ${OPSYS} != "Darwin"
+# The LLVM option enables JIT accelerated software rendering and is also
+# required to support the latest RADEON GPUs.
+#
+# Enable it by default on platforms where such GPUs might be encountered or
+# LLVM-accelerated software rendering might be useful.
+.if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" || \
+ ${MACHINE_ARCH} == "aarch64")
PKG_SUGGESTED_OPTIONS+= llvm
.endif
-.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "OpenBSD" || \
- ${OPSYS} == "DragonFly" || ${OPSYS} == "Linux" || \
- ${OPSYS} == "SunOS" || ${OPSYS} == "NetBSD" || \
- ${OPSYS} == "Darwin"
-PKG_SUGGESTED_OPTIONS+= dri
-.endif
-
.include "../../mk/bsd.options.mk"
-# gallium
-PLIST_VARS+= freedreno i915 i965 nouveau r300 r600 radeonsi \
- swrast svga vc4 virgl vulkan
-# classic DRI
-PLIST_VARS+= dri swrast_dri nouveau_dri r100 r200
-# other features
-PLIST_VARS+= egl gbm vaapi vdpau wayland xatracker
-PLIST_VARS+= osmesa xvmc
-PLIST_VARS+= glesv1 glesv2
-
-EGL_PLATFORMS+= x11
-
-.if ${OPSYS} != "Darwin"
-EGL_PLATFORMS+= drm
-.endif
-
-.if !empty(PKG_OPTIONS:Mwayland)
-EGL_PLATFORMS+= wayland
-PLIST.wayland= yes
-.include "../../devel/wayland/buildlink3.mk"
-.include "../../devel/wayland-protocols/buildlink3.mk"
-.endif
-
-.if !empty(PKG_OPTIONS:Mdri)
-# Having DRI3 and egl compiled in by default doesn't hurt, the X server
-# will only use it if it is supported at run time.
-MESON_ARGS+= -Ddri3=true
-. if ${OPSYS} != "Darwin" && ${OPSYS} != "SunOS"
-MESON_ARGS+= -Degl=true
-MESON_ARGS+= -Dgbm=true
-PLIST.egl= yes
-PLIST.gbm= yes
-. else
-MESON_ARGS+= -Degl=false
-MESON_ARGS+= -Dgbm=false
-. endif
-
-. if !empty(PKG_OPTIONS:Mosmesa)
-MESON_ARGS+= -Dosmesa=classic
-PLIST.osmesa= yes
-. else
-MESON_ARGS+= -Dosmesa=none
-. endif
-
-. if !empty(PKG_OPTIONS:Mglesv1)
-MESON_ARGS+= -Dgles1=true
-PLIST.glesv1= yes
-. else
-MESON_ARGS+= -Dgles1=false
-. endif
-
-. if !empty(PKG_OPTIONS:Mglesv2)
-MESON_ARGS+= -Dgles2=true
-PLIST.glesv2= yes
-. else
-MESON_ARGS+= -Dgles2=false
-. endif
-
-PLIST.dri= yes
-
-. if ${OPSYS} != "Darwin"
-BUILDLINK_DEPMETHOD.libpciaccess= full
-. include "../../sysutils/libpciaccess/buildlink3.mk"
-. endif
-. include "../../graphics/MesaLib/dri.mk"
-
-DRI_DRIVERS= #
-GALLIUM_DRIVERS= #
-VULKAN_DRIVERS= #
-
-# Software rasterizer
-PLIST.swrast_dri= yes
-DRI_DRIVERS+= swrast
-
-# x86 only drivers
-. if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && ${OPSYS} != "Darwin"
-# svga / VMWare driver
-PLIST.svga= yes
-GALLIUM_DRIVERS+= svga
-
-# Intel chipsets, x86 only
-PLIST.i915= yes
-DRI_DRIVERS+= i915
-
-PLIST.i965= yes
-DRI_DRIVERS+= i965
-
-. endif
-
-# Vulkan support
-. if !empty(PKG_OPTIONS:Mvulkan)
-VULKAN_DRIVERS+= amd
-VULKAN_DRIVERS+= intel
-PLIST.vulkan= yes
-. endif
-
-# ARM drivers
-. if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)
-# Qualcomm SnapDragon, libdrm_freedreno.pc
-#GALLIUM_DRIVERS+= freedreno
-#PLIST.freedreno= yes
+# Gallium drivers requiring LLVM
+PLIST_VARS+= r600 radeonsi
-# Broadcom VideoCore 4
-GALLIUM_DRIVERS+= vc4
-PLIST.vc4= yes
-. endif
+# Windowing systems
+PLIST_VARS+= wayland glx
-# qemu Linux guest driver
-. if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
-# XXX test this
-#GALLIUM_DRIVERS+= virgl
-#PLIST.virgl= yes
-. endif
+# Misc. features
+PLIST_VARS+= vdpau
-# theoretically cross platform PCI drivers
-. if ${OPSYS} != "Darwin" && empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \
- empty(MACHINE_PLATFORM:MNetBSD-*-mipsel)
+#
+# LLVM support
+#
+.if !empty(PKG_OPTIONS:Mllvm)
+MESON_ARGS+= -Dllvm=true
+BUILDLINK_API_DEPENDS.libLLVM+= libLLVM>=7.0.1nb2
+. include "../../devel/libelf/buildlink3.mk"
+. include "../../lang/libLLVM/buildlink3.mk"
-# AMD Radeon r600
+. if ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
PLIST.r600= yes
GALLIUM_DRIVERS+= r600
-
-# FULL_OS_VERSION_CMD= ${UNAME} -r
-# FULL_OS_VERSION= ${FULL_OS_VERSION_CMD:sh}
-
-# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
-. if ${OPSYS} != "FreeBSD"
-# nVidia
-PLIST.nouveau= yes
-GALLIUM_DRIVERS+= nouveau
-. endif
-
-# classic DRI r100
-PLIST.r100= yes
-DRI_DRIVERS+= r100
-
-# classic DRI r200
-PLIST.r200= yes
-DRI_DRIVERS+= r200
-
-# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
-. if ${OPSYS} != "FreeBSD"
-# classic DRI nouveau
-PLIST.nouveau_dri= yes
-DRI_DRIVERS+= nouveau
-. endif
+PLIST.radeonsi= yes
+GALLIUM_DRIVERS+= radeonsi
. endif
-# end cross platform PCI drivers
+.else
+MESON_ARGS+= -Dllvm=false
+.endif
-. if !empty(PKG_OPTIONS:Mllvm)
-# VA-API and VDPAU
-. if !empty(PKG_OPTIONS:Mvaapi)
-. include "../../multimedia/libva/available.mk"
-. if ${VAAPI_AVAILABLE} == "yes"
-PLIST.vaapi= yes
-. include "../../multimedia/libva/buildlink3.mk"
-. endif
-. endif # vaapi
-. if !empty(PKG_OPTIONS:Mvdpau)
-. include "../../multimedia/libvdpau/available.mk"
-. if ${VDPAU_AVAILABLE} == "yes"
-PLIST.vdpau= yes
-. include "../../multimedia/libvdpau/buildlink3.mk"
-. endif
-. endif # vdpau
+#
+# Wayland support
+#
+.if !empty(PKG_OPTIONS:Mwayland)
+MESA_PLATFORMS+= wayland
+PLIST.wayland= yes
+. include "../../devel/wayland/buildlink3.mk"
+. include "../../devel/wayland-protocols/buildlink3.mk"
+.endif
-# XA is useful for accelerating xf86-video-vmware
-. if !empty(PKG_OPTIONS:Mgallium-xa)
-MESON_ARGS+= -Dgallium-xa=true
-PLIST.xatracker= yes
+#
+# X11 support
+#
+.if !empty(PKG_OPTIONS:Mx11)
+MESA_PLATFORMS+= x11
+PLIST.glx= yes
+. if ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
+MESON_ARGS+= -Dglx=dri
+. include "../../multimedia/libvdpau/available.mk"
+. if ${VDPAU_AVAILABLE} == "yes"
+MESON_ARGS+= -Dgallium-vdpau=true
+PLIST.vdpau= yes
+. include "../../multimedia/libvdpau/buildlink3.mk"
. else
-MESON_ARGS+= -Dgallium-xa=false
-. endif
-
-# AMD Radeon r300
-PLIST.r300= yes
-GALLIUM_DRIVERS+= r300
-# AMD Canary Islands GPUs
-PLIST.radeonsi= yes
-GALLIUM_DRIVERS+= radeonsi
-MESON_ARGS+= -Dllvm=true
-
-BUILDLINK_API_DEPENDS.libLLVM+= libLLVM>=7.0.1nb2
-. include "../../devel/libelf/buildlink3.mk"
-. include "../../lang/libLLVM/buildlink3.mk"
-. else # !llvm
-MESON_ARGS+= -Dgallium-xa=false
MESON_ARGS+= -Dgallium-vdpau=false
-MESON_ARGS+= -Dllvm=false
-. endif # llvm
-PLIST_SUBST+= GLVER="1.2.0"
-MESON_ARGS+= -Dgallium-drivers=${GALLIUM_DRIVERS:ts,}
-MESON_ARGS+= -Ddri-drivers=${DRI_DRIVERS:ts,}
-MESON_ARGS+= -Dvulkan-drivers=${VULKAN_DRIVERS:ts,}
-MESON_ARGS+= -Dplatforms=${EGL_PLATFORMS:ts,}
-.else # !dri
-PLIST_SUBST+= GLVER="1.6.0"
-MESON_ARGS+= -Dgallium-drivers=
-MESON_ARGS+= -Ddri-drivers=
-MESON_ARGS+= -Dvulkan-drivers=
-MESON_ARGS+= -Ddri3=false
-MESON_ARGS+= -Degl=false
-MESON_ARGS+= -Dgbm=false
-MESON_ARGS+= -Dgles1=false
-MESON_ARGS+= -Dgles2=false
-MESON_ARGS+= -Dglx=xlib
-MESON_ARGS+= -Dplatforms=x11
-MESON_ARGS+= -Dllvm=false
-.endif # dri
-
-.if !empty(PKG_OPTIONS:Mgallium-xvmc)
-MESON_ARGS+= -Dgallium-xvmc=true
-.include "../../x11/libXvMC/buildlink3.mk"
-PLIST.xvmc= yes
+. endif
+. endif
+. include "../../x11/libX11/buildlink3.mk"
+. include "../../x11/libXdamage/buildlink3.mk"
+. include "../../x11/libXext/buildlink3.mk"
+. include "../../x11/libXfixes/buildlink3.mk"
+. include "../../x11/libXrandr/buildlink3.mk"
+. include "../../x11/libXxf86vm/buildlink3.mk"
+. include "../../x11/libxcb/buildlink3.mk"
+. include "../../x11/libxshmfence/buildlink3.mk"
+. include "../../x11/xcb-proto/buildlink3.mk"
+. include "../../x11/xorgproto/buildlink3.mk"
.else
-MESON_ARGS+= -Dgallium-xvmc=false
+MESON_ARGS+= -Dglx=disabled
+MESON_ARGS+= -Dgallium-vdpau=false
.endif