Mon Jul 25 09:49:06 2022 UTC ()
graphics/MesaLib: make this build & install on NetBSD/powerpc.

 * Add hacks.mk to make -latomic visible for 64-bit atomics.
 * Turn off nouveau build, as we do not have the DRI libs for that.
 * Introduce PLIST.xa, turned off on powerpc, apparently this requires
   one of nouveau, freedreno, i815 or svga gallium drivers.


(he)
diff -r1.200 -r1.201 pkgsrc/graphics/MesaLib/Makefile
diff -r1.47 -r1.48 pkgsrc/graphics/MesaLib/PLIST
diff -r0 -r1.15 pkgsrc/graphics/MesaLib/hacks.mk

cvs diff -r1.200 -r1.201 pkgsrc/graphics/MesaLib/Makefile (expand / switch to unified diff)

--- pkgsrc/graphics/MesaLib/Makefile 2022/07/07 14:05:25 1.200
+++ pkgsrc/graphics/MesaLib/Makefile 2022/07/25 09:49:06 1.201
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile,v 1.200 2022/07/07 14:05:25 wiz Exp $ 1# $NetBSD: Makefile,v 1.201 2022/07/25 09:49:06 he Exp $
2 2
3DISTNAME= mesa-21.3.9 3DISTNAME= mesa-21.3.9
4PKGNAME= ${DISTNAME:S/mesa/MesaLib/} 4PKGNAME= ${DISTNAME:S/mesa/MesaLib/}
5CATEGORIES= graphics 5CATEGORIES= graphics
6MASTER_SITES= https://mesa.freedesktop.org/archive/ 6MASTER_SITES= https://mesa.freedesktop.org/archive/
7EXTRACT_SUFX= .tar.xz 7EXTRACT_SUFX= .tar.xz
8 8
9MAINTAINER= nia@NetBSD.org 9MAINTAINER= nia@NetBSD.org
10HOMEPAGE= https://www.mesa3d.org/ 10HOMEPAGE= https://www.mesa3d.org/
11COMMENT= Open source OpenGL implementation 11COMMENT= Open source OpenGL implementation
12LICENSE= mit 12LICENSE= mit
13 13
14USE_TOOLS+= bison flex pkg-config xgettext 14USE_TOOLS+= bison flex pkg-config xgettext
@@ -43,51 +43,60 @@ PLIST_VARS+= i830 i915 i965 r100 r200 n @@ -43,51 +43,60 @@ PLIST_VARS+= i830 i915 i965 r100 r200 n
43PLIST_VARS+= r300 svga nouveau iris 43PLIST_VARS+= r300 svga nouveau iris
44 44
45# other features 45# other features
46PLIST_VARS+= arm kms vaapi 46PLIST_VARS+= arm kms vaapi
47 47
48.if ${MESALIB_SUPPORTS_DRI} == "yes" 48.if ${MESALIB_SUPPORTS_DRI} == "yes"
49BUILDLINK_API_DEPENDS.libdrm+= libdrm>=2.4.100 49BUILDLINK_API_DEPENDS.libdrm+= libdrm>=2.4.100
50.include "../../x11/libdrm/buildlink3.mk" 50.include "../../x11/libdrm/buildlink3.mk"
51. if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 51. if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
52. include "../../sysutils/libpciaccess/buildlink3.mk" 52. include "../../sysutils/libpciaccess/buildlink3.mk"
53. endif 53. endif
54MESON_ARGS+= -Degl=true 54MESON_ARGS+= -Degl=true
55MESON_ARGS+= -Dgbm=true 55MESON_ARGS+= -Dgbm=true
 56PLIST_VARS+= xa
 57. if empty(MACHINE_PLATFORM:MNetBSD-*-powerpc)
 58# XA state tracker requires at least one of the following gallium drivers:
 59# nouveau, freedreno, i915, svga
56MESON_ARGS+= -Dgallium-xa=enabled 60MESON_ARGS+= -Dgallium-xa=enabled
 61PLIST.xa= yes
 62. endif
57. if ${X11_TYPE} == "native" && !exists(${X11BASE}/include/xcb/dri3.h) 63. if ${X11_TYPE} == "native" && !exists(${X11BASE}/include/xcb/dri3.h)
58MESON_ARGS+= -Ddri3=false 64MESON_ARGS+= -Ddri3=false
59. endif 65. endif
60PLIST.kms= yes 66PLIST.kms= yes
61. if !empty(MACHINE_ARCH:M*arm*) || \ 67. if !empty(MACHINE_ARCH:M*arm*) || \
62 ${MACHINE_CPU} == "aarch64" 68 ${MACHINE_CPU} == "aarch64"
63GALLIUM_DRIVERS+= freedreno vc4 etnaviv tegra panfrost lima 69GALLIUM_DRIVERS+= freedreno vc4 etnaviv tegra panfrost lima
64PLIST.arm= yes 70PLIST.arm= yes
65. endif 71. endif
66. if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 72. if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
67GALLIUM_DRIVERS+= svga iris 73GALLIUM_DRIVERS+= svga iris
68DRI_DRIVERS+= i915 i965 74DRI_DRIVERS+= i915 i965
69PLIST.svga= yes 75PLIST.svga= yes
70PLIST.i830= yes 76PLIST.i830= yes
71PLIST.i915= yes 77PLIST.i915= yes
72PLIST.i965= yes 78PLIST.i965= yes
73PLIST.iris= yes 79PLIST.iris= yes
74. endif 80. endif
75# FreeBSD lacks nouveau support (there are official binaries from Nvidia) 81# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
76. if ${OPSYS} != "FreeBSD" 82. if ${OPSYS} != "FreeBSD"
 83. if empty(MACHINE_PLATFORM:MNetBSD-*-powerpc)
 84# nouveau not available on this platform
77PLIST.nouveau= yes 85PLIST.nouveau= yes
78PLIST.nouveau_dri= yes 86PLIST.nouveau_dri= yes
79GALLIUM_DRIVERS+= nouveau 87GALLIUM_DRIVERS+= nouveau
80DRI_DRIVERS+= nouveau 88DRI_DRIVERS+= nouveau
 89. endif
81. endif 90. endif
82. if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) 91. if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
83# qemu Linux guest driver 92# qemu Linux guest driver
84# XXX test this 93# XXX test this
85#GALLIUM_DRIVERS+= virgl 94#GALLIUM_DRIVERS+= virgl
86#PLIST.virgl= yes 95#PLIST.virgl= yes
87. endif 96. endif
88# theoretically cross platform PCI drivers 97# theoretically cross platform PCI drivers
89. if empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \ 98. if empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \
90 empty(MACHINE_PLATFORM:MNetBSD-*-mipsel) 99 empty(MACHINE_PLATFORM:MNetBSD-*-mipsel)
91DRI_DRIVERS+= r100 r200 100DRI_DRIVERS+= r100 r200
92GALLIUM_DRIVERS+= r300 101GALLIUM_DRIVERS+= r300
93PLIST.r100= yes 102PLIST.r100= yes

cvs diff -r1.47 -r1.48 pkgsrc/graphics/MesaLib/PLIST (expand / switch to unified diff)

--- pkgsrc/graphics/MesaLib/PLIST 2022/03/13 15:50:05 1.47
+++ pkgsrc/graphics/MesaLib/PLIST 2022/07/25 09:49:06 1.48
@@ -1,43 +1,43 @@ @@ -1,43 +1,43 @@
1@comment $NetBSD: PLIST,v 1.47 2022/03/13 15:50:05 tnn Exp $ 1@comment $NetBSD: PLIST,v 1.48 2022/07/25 09:49:06 he Exp $
2${PLIST.kms}include/EGL/egl.h 2${PLIST.kms}include/EGL/egl.h
3${PLIST.kms}include/EGL/eglext.h 3${PLIST.kms}include/EGL/eglext.h
4${PLIST.kms}include/EGL/eglextchromium.h 4${PLIST.kms}include/EGL/eglextchromium.h
5${PLIST.kms}include/EGL/eglmesaext.h 5${PLIST.kms}include/EGL/eglmesaext.h
6${PLIST.kms}include/EGL/eglplatform.h 6${PLIST.kms}include/EGL/eglplatform.h
7include/GL/gl.h 7include/GL/gl.h
8include/GL/glcorearb.h 8include/GL/glcorearb.h
9include/GL/glext.h 9include/GL/glext.h
10${PLIST.glx}include/GL/glx.h 10${PLIST.glx}include/GL/glx.h
11${PLIST.glx}include/GL/glxext.h 11${PLIST.glx}include/GL/glxext.h
12include/GL/internal/dri_interface.h 12include/GL/internal/dri_interface.h
13include/GL/osmesa.h 13include/GL/osmesa.h
14include/GLES/egl.h 14include/GLES/egl.h
15include/GLES/gl.h 15include/GLES/gl.h
16include/GLES/glext.h 16include/GLES/glext.h
17include/GLES/glplatform.h 17include/GLES/glplatform.h
18include/GLES2/gl2.h 18include/GLES2/gl2.h
19include/GLES2/gl2ext.h 19include/GLES2/gl2ext.h
20include/GLES2/gl2platform.h 20include/GLES2/gl2platform.h
21include/GLES3/gl3.h 21include/GLES3/gl3.h
22include/GLES3/gl31.h 22include/GLES3/gl31.h
23include/GLES3/gl32.h 23include/GLES3/gl32.h
24include/GLES3/gl3ext.h 24include/GLES3/gl3ext.h
25include/GLES3/gl3platform.h 25include/GLES3/gl3platform.h
26include/KHR/khrplatform.h 26include/KHR/khrplatform.h
27${PLIST.kms}include/gbm.h 27${PLIST.kms}include/gbm.h
28${PLIST.kms}include/xa_composite.h 28${PLIST.xa}${PLIST.kms}include/xa_composite.h
29${PLIST.kms}include/xa_context.h 29${PLIST.xa}${PLIST.kms}include/xa_context.h
30${PLIST.kms}include/xa_tracker.h 30${PLIST.xa}${PLIST.kms}include/xa_tracker.h
31${PLIST.arm}lib/dri/armada-drm_dri.so 31${PLIST.arm}lib/dri/armada-drm_dri.so
32${PLIST.arm}lib/dri/etnaviv_dri.so 32${PLIST.arm}lib/dri/etnaviv_dri.so
33${PLIST.arm}lib/dri/exynos_dri.so 33${PLIST.arm}lib/dri/exynos_dri.so
34${PLIST.arm}lib/dri/hx8357d_dri.so 34${PLIST.arm}lib/dri/hx8357d_dri.so
35${PLIST.i830}lib/dri/i830_dri.so 35${PLIST.i830}lib/dri/i830_dri.so
36${PLIST.i915}lib/dri/i915_dri.so 36${PLIST.i915}lib/dri/i915_dri.so
37${PLIST.i965}lib/dri/i965_dri.so 37${PLIST.i965}lib/dri/i965_dri.so
38${PLIST.arm}lib/dri/ili9225_dri.so 38${PLIST.arm}lib/dri/ili9225_dri.so
39${PLIST.arm}lib/dri/ili9341_dri.so 39${PLIST.arm}lib/dri/ili9341_dri.so
40${PLIST.arm}lib/dri/imx-dcss_dri.so 40${PLIST.arm}lib/dri/imx-dcss_dri.so
41${PLIST.arm}lib/dri/imx-drm_dri.so 41${PLIST.arm}lib/dri/imx-drm_dri.so
42${PLIST.arm}lib/dri/ingenic-drm_dri.so 42${PLIST.arm}lib/dri/ingenic-drm_dri.so
43${PLIST.iris}lib/dri/iris_dri.so 43${PLIST.iris}lib/dri/iris_dri.so
@@ -90,37 +90,37 @@ lib/libOSMesa.so @@ -90,37 +90,37 @@ lib/libOSMesa.so
90lib/libOSMesa.so.8 90lib/libOSMesa.so.8
91lib/libOSMesa.so.8.0.0 91lib/libOSMesa.so.8.0.0
92${PLIST.kms}lib/libgbm.so 92${PLIST.kms}lib/libgbm.so
93${PLIST.kms}lib/libgbm.so.1 93${PLIST.kms}lib/libgbm.so.1
94${PLIST.kms}lib/libgbm.so.1.0.0 94${PLIST.kms}lib/libgbm.so.1.0.0
95lib/libglapi.so 95lib/libglapi.so
96lib/libglapi.so.0 96lib/libglapi.so.0
97lib/libglapi.so.0.0.0 97lib/libglapi.so.0.0.0
98${PLIST.vulkan}${PLIST.arm}lib/libvulkan_broadcom.so 98${PLIST.vulkan}${PLIST.arm}lib/libvulkan_broadcom.so
99${PLIST.vulkan}${PLIST.arm}lib/libvulkan_freedreno.so 99${PLIST.vulkan}${PLIST.arm}lib/libvulkan_freedreno.so
100${PLIST.vulkan_intel}lib/libvulkan_intel.so 100${PLIST.vulkan_intel}lib/libvulkan_intel.so
101${PLIST.vulkan}lib/libvulkan_lvp.so 101${PLIST.vulkan}lib/libvulkan_lvp.so
102${PLIST.vulkan}lib/libvulkan_radeon.so 102${PLIST.vulkan}lib/libvulkan_radeon.so
103${PLIST.kms}lib/libxatracker.so 103${PLIST.xa}${PLIST.kms}lib/libxatracker.so
104${PLIST.kms}lib/libxatracker.so.2 104${PLIST.xa}${PLIST.kms}lib/libxatracker.so.2
105${PLIST.kms}lib/libxatracker.so.2.5.0 105${PLIST.xa}${PLIST.kms}lib/libxatracker.so.2.5.0
106lib/pkgconfig/dri.pc 106lib/pkgconfig/dri.pc
107${PLIST.kms}lib/pkgconfig/egl.pc 107${PLIST.kms}lib/pkgconfig/egl.pc
108${PLIST.kms}lib/pkgconfig/gbm.pc 108${PLIST.kms}lib/pkgconfig/gbm.pc
109${PLIST.glx}lib/pkgconfig/gl.pc 109${PLIST.glx}lib/pkgconfig/gl.pc
110lib/pkgconfig/glesv1_cm.pc 110lib/pkgconfig/glesv1_cm.pc
111lib/pkgconfig/glesv2.pc 111lib/pkgconfig/glesv2.pc
112lib/pkgconfig/osmesa.pc 112lib/pkgconfig/osmesa.pc
113${PLIST.kms}lib/pkgconfig/xatracker.pc 113${PLIST.xa}${PLIST.kms}lib/pkgconfig/xatracker.pc
114${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so 114${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so
115${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1 115${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1
116${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1.0 116${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1.0
117${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1.0.0 117${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1.0.0
118${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so 118${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so
119${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so.1 119${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so.1
120${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so.1.0 120${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so.1.0
121${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so.1.0.0 121${PLIST.r300}${PLIST.vdpau}lib/vdpau/libvdpau_r300.so.1.0.0
122${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so 122${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so
123${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so.1 123${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so.1
124${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so.1.0 124${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so.1.0
125${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so.1.0.0 125${PLIST.r600}${PLIST.vdpau}lib/vdpau/libvdpau_r600.so.1.0.0
126${PLIST.radeonsi}${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so 126${PLIST.radeonsi}${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so

File Added: pkgsrc/graphics/MesaLib/Attic/hacks.mk
# $NetBSD: hacks.mk,v 1.15 2022/07/25 09:49:06 he Exp $

.if !defined(GRAPHICS_MESALIB_HACKS_MK)
GRAPHICS_MESALIB__HACKS_MK=	defined

# [Sun Jul 24 20:23:03 CEST 2022 : he]
# On NetBSD/powerpc, use devel/libatomic to get 8-byte atomics.
.if ${MACHINE_ARCH} == "powerpc" && ${OPSYS} == "NetBSD"
PKG_HACKS+=	powerpc-atomics
.include "../../devel/libatomic/buildlink3.mk"
.endif

.endif	# GRAPHICS_MESALIB_HACKS_MK