pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/graphics/MesaLib MesaLib: various changes to how this ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/8c26f5898b46
branches:  trunk
changeset: 400545:8c26f5898b46
user:      nia <nia%pkgsrc.org@localhost>
date:      Fri Aug 30 13:00:56 2019 +0000

description:
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.

diffstat:

 graphics/MesaLib/Makefile      |  125 ++++++++++++++-
 graphics/MesaLib/PLIST         |   97 +++++-------
 graphics/MesaLib/buildlink3.mk |   45 +++--
 graphics/MesaLib/dri.mk        |   31 ----
 graphics/MesaLib/options.mk    |  315 +++++++++-------------------------------
 5 files changed, 251 insertions(+), 362 deletions(-)

diffs (truncated from 759 to 300 lines):

diff -r 790d50b7a785 -r 8c26f5898b46 graphics/MesaLib/Makefile
--- a/graphics/MesaLib/Makefile Fri Aug 30 12:33:35 2019 +0000
+++ b/graphics/MesaLib/Makefile Fri Aug 30 13:00:56 2019 +0000
@@ -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 @@
 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 @@
 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 @@
 .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 -r 790d50b7a785 -r 8c26f5898b46 graphics/MesaLib/PLIST
--- a/graphics/MesaLib/PLIST    Fri Aug 30 12:33:35 2019 +0000
+++ b/graphics/MesaLib/PLIST    Fri Aug 30 13:00:56 2019 +0000
@@ -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_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 @@
 ${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



Home | Main Index | Thread Index | Old Index