Add *-devel versions of nvidia drivers
These ports provides supports for New Feature Branch (NFB) of upstream
nvidia drivers like existing legacy branches of ports.
In some cases, supports for cutting edge GPUs are provided via
NFB of driver packages or Beta branch of drivers.
As Beta Branch of drivers cannot be recommended widely, we decided to
add support for NFB as *-devel version.
This new *-devel versions tracks the latest non-Beta versions
regardless it's NFB or Production Branch of drivers.
This is because, in some cases, major version of Production Branch
of drivers are bumped to larger than the one for corresponding
NFB.
So depending on the timing, *-devel 100% matches non-devel
master ports except for its package name.
Our upgrading policies are:
1. Start investigating whether some additional works are needed to
build/install/run or not when new Beta is found to be released
upstream.
2. If any additional works were needed and done, upgrade master ports
below without updating version nor PORTREVISION of master ports below.
x11/nvidia-driver x11/linux-nvidia-libs graphics/nvidia-drm-*-kmod
and as needed, graphics/nvidia-drm-kmod/Makefile.common would be
updated, too.
3. Once findng new NFB is released upstream, bump versions of *-devel.
Step 2 would "usually" ease this work unless Beta is skipped or
last-minutes breaking changes are introduced.
4. Once finding new Production Branch is released upstream, bump
versions of master ports.
5. Once finding any of Legacy Branch of driver is released upstream,
upgrade corresponding legacy ports. This could need some additional
work, because updated version could incorporate patches from our ports.
Note that graphics/nvidia-drm-*-kmod does NOT support any of
exisiting legacy versions, as they don't yet have codes to
support these ports.
PR: 287268
Differential Revision: https://reviews.freebsd.org/D50697
564 lines
20 KiB
Makefile
564 lines
20 KiB
Makefile
PORTNAME= nvidia-libs
|
|
DISTVERSION?= ${NVIDIA_DISTVERSION}
|
|
# Always try to set PORTREVISION as it can be overridden by the slave ports
|
|
PORTREVISION?= 0
|
|
CATEGORIES= x11 linux
|
|
MASTER_SITES= NVIDIA/XFree86/Linux-${ARCH_SUFX}/${DISTVERSION}/
|
|
DISTNAME= NVIDIA-Linux-${ARCH_SUFX}-${DISTVERSION}
|
|
EXTRACT_SUFX= .run
|
|
PKGNAMEPREFIX= linux-
|
|
|
|
MAINTAINER= x11@FreeBSD.org
|
|
COMMENT= NVidia graphics libraries and programs (Linux version)
|
|
WWW= https://www.nvidia.com/object/unix.html
|
|
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
.include "${.CURDIR}/../nvidia-driver/Makefile.version"
|
|
.include "${.CURDIR}/../nvidia-driver/Makefile.common"
|
|
|
|
CONFLICTS_INSTALL= linux-nvidia-libs*
|
|
|
|
# Choose proper distinfo file using PKGNAMESUFFIX for slave ports.
|
|
# Kept for switching to centralized distinfo with suffixes.
|
|
.ifdef PKGNAMESUFFIX
|
|
DISTINFO_FILE= ${.CURDIR}/distinfo
|
|
.endif
|
|
|
|
.if ${DISTVERSION:R} > 390
|
|
PORTSCOUT= limit:\.\d+$$ # ignore *-no-compat32 distfiles
|
|
.else
|
|
PORTSCOUT= limit:^${DISTVERSION:R}\.\d+$$
|
|
.endif
|
|
|
|
USES= linux
|
|
USE_LINUX= xorglibs
|
|
USE_LDCONFIG= yes
|
|
NO_BUILD= yes
|
|
|
|
PLIST_RE= # empty
|
|
|
|
LINUX_LIBDIR= /usr/lib${ARCH:S/i386//:S/amd//}
|
|
|
|
LINUX_LIBS= libcuda.so.${PORTVERSION} \
|
|
libnvcuvid.so.${PORTVERSION} \
|
|
libnvidia-cfg.so.${PORTVERSION} \
|
|
libnvidia-glcore.so.${PORTVERSION} \
|
|
libnvidia-ml.so.${PORTVERSION} \
|
|
libnvidia-opencl.so.${PORTVERSION} \
|
|
libnvidia-tls.so.${PORTVERSION} \
|
|
libvdpau_nvidia.so.${PORTVERSION}
|
|
LINUX_LINKS= libcuda.so.${PORTVERSION} libcuda.so.1 \
|
|
libcuda.so.${PORTVERSION} libcuda.so \
|
|
libnvcuvid.so.${PORTVERSION} libnvcuvid.so.1 \
|
|
libnvcuvid.so.${PORTVERSION} libnvcuvid.so \
|
|
libnvidia-cfg.so.${PORTVERSION} libnvidia-cfg.so.1 \
|
|
libnvidia-cfg.so.${PORTVERSION} libnvidia-cfg.so \
|
|
libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so.1 \
|
|
libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so \
|
|
libnvidia-opencl.so.${PORTVERSION} libnvidia-opencl.so.1 \
|
|
libvdpau_nvidia.so.${PORTVERSION} vdpau/libvdpau_nvidia.so.1
|
|
LINUX32_LIBS= libcuda.so.${PORTVERSION} \
|
|
libnvidia-glcore.so.${PORTVERSION} \
|
|
libnvidia-ml.so.${PORTVERSION} \
|
|
libnvidia-opencl.so.${PORTVERSION} \
|
|
libnvidia-tls.so.${PORTVERSION} \
|
|
libvdpau_nvidia.so.${PORTVERSION}
|
|
.if ${NVVERSION} < 415.013
|
|
LINUX_LIBS+= tls/libnvidia-tls.so.${PORTVERSION}
|
|
LINUX32_LIBS+= tls/libnvidia-tls.so.${PORTVERSION}
|
|
.endif
|
|
LINUX32_LINKS= libcuda.so.${PORTVERSION} libcuda.so.1 \
|
|
libcuda.so.${PORTVERSION} libcuda.so \
|
|
libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so.1 \
|
|
libnvidia-ml.so.${PORTVERSION} libnvidia-ml.so \
|
|
libnvidia-opencl.so.${PORTVERSION} libnvidia-opencl.so.1 \
|
|
libvdpau_nvidia.so.${PORTVERSION} vdpau/libvdpau_nvidia.so.1
|
|
LINUX_PROGS= nvidia-debugdump nvidia-settings nvidia-smi nvidia-xconfig
|
|
LINUX_MANS= nvidia-settings nvidia-smi nvidia-xconfig
|
|
LINUX_DATA= nvidia.icd /etc/OpenCL/vendors
|
|
.if ${NVVERSION} >= 375.010
|
|
LINUX_DATA+= 10_nvidia.json /usr/share/glvnd/egl_vendor.d
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}/usr/share/glvnd,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 378.009
|
|
LINUX_DATA+= 10_nvidia_wayland.json /usr/share/egl/egl_external_platform.d
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}/usr/share/egl,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 570.00000
|
|
LINUX_DATA+= 20_nvidia_xcb.json /usr/share/egl/egl_external_platform.d \
|
|
20_nvidia_xlib.json /usr/share/egl/egl_external_platform.d
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}/usr/share/egl/egl_external_platform.d/20_nvidia_xcb.json,d'\
|
|
'\,${LINUXBASE}/usr/share/egl/egl_external_platform.d/20_nvidia_xlib.json,d'
|
|
.endif
|
|
|
|
.if ${NVVERSION} >= 361.016
|
|
LINUX_LIBS+= libEGL_nvidia.so.${PORTVERSION}
|
|
LINUX_LINKS+= libEGL_nvidia.so.${PORTVERSION} libEGL_nvidia.so.0
|
|
LINUX32_LIBS+= libEGL_nvidia.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libEGL_nvidia.so.${PORTVERSION} libEGL_nvidia.so.0
|
|
.elif ${NVVERSION} >= 355.006
|
|
LINUX_LIBS+= libEGL_nvidia.so.0
|
|
PLIST_RE+= '\,${LINUXBASE}.*libEGL_nvidia\.so\.${PORTVERSION},d'
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libEGL_nvidia\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 361.016 && ${NVVERSION} < 450.051
|
|
LINUX_LIBS+= libnvidia-fatbinaryloader.so.${PORTVERSION}
|
|
LINUX32_LIBS+= libnvidia-fatbinaryloader.so.${PORTVERSION}
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-fatbinaryloader\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 361.016
|
|
LINUX_LIBS+= libGLESv1_CM_nvidia.so.${PORTVERSION} \
|
|
libGLESv2_nvidia.so.${PORTVERSION} \
|
|
libGLX_nvidia.so.${PORTVERSION} \
|
|
libnvidia-ptxjitcompiler.so.${PORTVERSION}
|
|
LINUX_LINKS+= libGLESv1_CM_nvidia.so.${PORTVERSION} libGLESv1_CM_nvidia.so.1 \
|
|
libGLESv2_nvidia.so.${PORTVERSION} libGLESv2_nvidia.so.2 \
|
|
libGLX_nvidia.so.${PORTVERSION} libGLX_nvidia.so.0 \
|
|
libGLX_nvidia.so.${PORTVERSION} libGLX_indirect.so.0 \
|
|
libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so.1 \
|
|
libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so
|
|
LINUX32_LIBS+= libGLESv1_CM_nvidia.so.${PORTVERSION} \
|
|
libGLESv2_nvidia.so.${PORTVERSION} \
|
|
libGLX_nvidia.so.${PORTVERSION} \
|
|
libnvidia-ptxjitcompiler.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libGLESv1_CM_nvidia.so.${PORTVERSION} libGLESv1_CM_nvidia.so.1 \
|
|
libGLESv2_nvidia.so.${PORTVERSION} libGLESv2_nvidia.so.2 \
|
|
libGLX_nvidia.so.${PORTVERSION} libGLX_nvidia.so.0 \
|
|
libGLX_nvidia.so.${PORTVERSION} libGLX_indirect.so.0 \
|
|
libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so.1 \
|
|
libnvidia-ptxjitcompiler.so.${PORTVERSION} libnvidia-ptxjitcompiler.so
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libGLESv(1_CM|2)_nvidia\.so,d' \
|
|
'\,${LINUXBASE}.*libGLX_(nvidia|indirect)\.so,d' \
|
|
'\,${LINUXBASE}.*libnvidia-ptxjitcompiler\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 535.05403 # 535.54.03
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-compiler\.so,d'
|
|
.else
|
|
LINUX_LIBS+= libnvidia-compiler.so.${PORTVERSION}
|
|
LINUX32_LIBS+= libnvidia-compiler.so.${PORTVERSION}
|
|
.endif
|
|
|
|
|
|
## graphics/egl-wayland supports
|
|
## Estimated to be upgraded often.
|
|
.if ${NVVERSION} >= 570.14400 # 570.144
|
|
NV_EGL_W_VERSION= 1.1.19
|
|
.elif ${NVVERSION} >= 470.04201 # 470.42.01
|
|
NV_EGL_W_VERSION= 1.1.7
|
|
.elif ${NVVERSION} >= 387.012
|
|
NV_EGL_W_VERSION= 1.0.2
|
|
.elif ${NVVERSION} >= 364.012 # Intentionally kept to indicate from which version
|
|
# this library is introduced.
|
|
NV_EGL_W_VERSION= ${PORTVERSION}
|
|
.else # Fool proof (Poka-yoke)
|
|
NV_EGL_W_VERSION= ""
|
|
.endif
|
|
|
|
.if ${NVVERSION} >= 364.012 # Start graphics/egl-wayland support
|
|
LINUX_LIBS+= libnvidia-egl-wayland.so.${NV_EGL_W_VERSION}
|
|
LINUX_LINKS+= libnvidia-egl-wayland.so.${NV_EGL_W_VERSION} libnvidia-egl-wayland.so.1
|
|
. if ${NVVERSION} >= 570.12400 # 570.124 added 32bit version supports
|
|
LINUX32_LIBS+= libnvidia-egl-wayland.so.${NV_EGL_W_VERSION}
|
|
LINUX32_LINKS+= libnvidia-egl-wayland.so.${NV_EGL_W_VERSION} libnvidia-egl-wayland.so.1
|
|
. endif # 570.124
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.${NV_EGL_W_VERSION}/'
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-egl-wayland\.so,d'
|
|
.endif # 364.012
|
|
# End of graphics/egl-wayland supports
|
|
|
|
|
|
.if ${NVVERSION} >= 331.013 && ${NVVERSION} < 495.02905
|
|
LINUX_LIBS+= libnvidia-ifr.so.${PORTVERSION}
|
|
LINUX_LINKS+= libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so.1 \
|
|
libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so
|
|
LINUX32_LIBS+= libnvidia-ifr.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so.1 \
|
|
libnvidia-ifr.so.${PORTVERSION} libnvidia-ifr.so
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-ifr,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 331.013
|
|
LINUX_LIBS+= libnvidia-eglcore.so.${PORTVERSION} \
|
|
libnvidia-fbc.so.${PORTVERSION} \
|
|
libnvidia-glsi.so.${PORTVERSION}
|
|
LINUX_LINKS+= libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so.1 \
|
|
libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so
|
|
LINUX32_LIBS+= libnvidia-eglcore.so.${PORTVERSION} \
|
|
libnvidia-fbc.so.${PORTVERSION} \
|
|
libnvidia-glsi.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so.1 \
|
|
libnvidia-fbc.so.${PORTVERSION} libnvidia-fbc.so
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-(eglcore|fbc|glsi),d'
|
|
.endif
|
|
.if ${NVVERSION} >= 310.014
|
|
LINUX_LIBS+= libnvidia-encode.so.${PORTVERSION}
|
|
LINUX_LINKS+= libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so.1 \
|
|
libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so
|
|
LINUX32_LIBS+= libnvidia-encode.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so.1 \
|
|
libnvidia-encode.so.${PORTVERSION} libnvidia-encode.so
|
|
PLIST_RE+= '\,${LINUXBASE}.*libXvMCNVIDIA,d'
|
|
.else
|
|
LINUX_LIBS+= libXvMCNVIDIA.so.${PORTVERSION}
|
|
LINUX_LINKS+= libXvMCNVIDIA.so.${PORTVERSION} libXvMCNVIDIA_dynamic.so.1 \
|
|
libXvMCNVIDIA.so.${PORTVERSION} libXvMCNVIDIA_dynamic.so
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-encode,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 346.016
|
|
LINUX_LIBS+= libnvidia-gtk2.so.${PORTVERSION} \
|
|
libnvidia-gtk3.so.${PORTVERSION}
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-gtk(2|3)\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 331.049 && ${NVVERSION} < 352.009
|
|
LINUX_DATA+= monitoring.conf /usr/share/nvidia \
|
|
${WRKSRC}/pci.ids /usr/share/nvidia
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*monitoring\.conf,d' \
|
|
'\,${LINUXBASE}.*pci\.ids,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 334.016
|
|
LINUX_DATA+= nvidia-application-profiles-${PORTVERSION}-key-documentation /usr/share/nvidia
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*application-profiles-${PORTVERSION}-key-documentation,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 319.012
|
|
LINUX_DATA+= nvidia-application-profiles-${PORTVERSION}-rc /usr/share/nvidia
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*share/nvidia,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 319.017
|
|
LINUX_PROGS+= nvidia-cuda-mps-control nvidia-cuda-mps-server \
|
|
nvidia-persistenced
|
|
LINUX_MANS+= nvidia-cuda-mps-control nvidia-persistenced
|
|
.else
|
|
LINUX_PROGS+= nvidia-cuda-proxy-control nvidia-cuda-proxy-server
|
|
LINUX_MANS+= nvidia-cuda-proxy-control
|
|
PLIST_RE+= '\,${LINUXBASE},s/cuda-mps/cuda-proxy/' \
|
|
'\,${LINUXBASE}.*nvidia-persistenced,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 364.012
|
|
LINUX_DATA+= nvidia_icd.json /etc/vulkan/icd.d
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}/etc/vulkan,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 410.057 && ${NVVERSION} < 495.02905
|
|
LINUX_LIBS+= libnvidia-cbl.so.${PORTVERSION}
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-cbl\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 410.057
|
|
LINUX_LIBS+= libnvidia-rtcore.so.${PORTVERSION}
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-rtcore\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 396.018
|
|
LINUX_LIBS+= libnvidia-glvkspirv.so.${PORTVERSION}
|
|
LINUX32_LIBS+= libnvidia-glvkspirv.so.${PORTVERSION}
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-glvkspirv\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 545.00000 # 545.00
|
|
LINUX_LIBS+= libnvidia-gpucomp.so.${PORTVERSION}
|
|
LINUX32_LIBS+= libnvidia-gpucomp.so.${PORTVERSION}
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-gpucomp\.so,d'
|
|
.endif # 545.00
|
|
|
|
|
|
# nvidia-egl-X11 supports (not in x11/nvidia-driver nor separate ports)
|
|
# Estimated to be upgrated often.
|
|
.if ${NVVERSION} >= 570.15302 && ${NVVERSION} < 575.00000 || ${NVVERSION} >= 575.05708
|
|
NV_EGL_X_VERSION= 1.0.2
|
|
.elif ${NVVERSION} >= 570.14400 # 570.144
|
|
NV_EGL_X_VERSION= 1.0.1
|
|
.elif ${NVVERSION} >= 570.00000 # 570.00, Intentionally kept to clarify
|
|
# the start of egl-x11 support.
|
|
NV_EGL_X_VERSION= 1.0.0
|
|
.else # Fool proof (Poka-yoke)
|
|
NV_EGL_X_VERSION= ""
|
|
.endif
|
|
|
|
.if ${NVVERSION} >= 570.00000 # 570.00, start of egl-x11 support
|
|
LINUX_LIBS+= libnvidia-egl-xcb.so.${NV_EGL_X_VERSION} \
|
|
libnvidia-egl-xlib.so.${NV_EGL_X_VERSION}
|
|
LINUX_LINKS+= libnvidia-egl-xcb.so.${NV_EGL_X_VERSION} libnvidia-egl-xcb.so.1 \
|
|
libnvidia-egl-xcb.so.${NV_EGL_X_VERSION} libnvidia-egl-xcb.so \
|
|
libnvidia-egl-xlib.so.${NV_EGL_X_VERSION} libnvidia-egl-xlib.so.1 \
|
|
libnvidia-egl-xlib.so.${NV_EGL_X_VERSION} libnvidia-egl-xlib.so
|
|
LINUX32_LIBS+= libnvidia-egl-xcb.so.${NV_EGL_X_VERSION} \
|
|
libnvidia-egl-xlib.so.${NV_EGL_X_VERSION}
|
|
LINUX32_LINKS+= libnvidia-egl-xcb.so.${NV_EGL_X_VERSION} libnvidia-egl-xcb.so.1 \
|
|
libnvidia-egl-xcb.so.${NV_EGL_X_VERSION} libnvidia-egl-xcb.so \
|
|
libnvidia-egl-xlib.so.${NV_EGL_X_VERSION} libnvidia-egl-xlib.so.1 \
|
|
libnvidia-egl-xlib.so.${NV_EGL_X_VERSION} libnvidia-egl-xlib.so
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-(egl-xcb|egl-xlib)\.so)\.X/\1.${NV_EGL_X_VERSION}/'
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-(egl-xcb|egl-xlib),d'
|
|
.endif
|
|
# End nvidia-egl-X11 supports
|
|
|
|
|
|
# nvidia-egl-gbm supports.
|
|
.if ${NVVERSION} >= 565.00000 # 565.00
|
|
NV_EGL_G_VERSION= 1.1.2
|
|
.elif ${NVVERSION} >= 550.00000 # 550.00
|
|
NV_EGL_G_VERSION= 1.1.1
|
|
.elif ${NVVERSION} >= 525.08902 # 525.89.02, Intentionally kept to clarify
|
|
# the start of nvidia-egl-gbm support
|
|
NV_EGL_G_VERSION= 1.1.0
|
|
.else # Fool proof (Poka-yoke)
|
|
NV_EGL_G_VERSION= ""
|
|
.endif # 565.00
|
|
|
|
.if ${NVVERSION} >= 525.08902 # 525.89.02
|
|
LINUX_LIBS+= libnvidia-egl-gbm.so.${NV_EGL_G_VERSION}
|
|
LINUX_LINKS+= libnvidia-egl-gbm.so.${NV_EGL_G_VERSION} libnvidia-egl-gbm.so.1 \
|
|
libnvidia-egl-gbm.so.${NV_EGL_G_VERSION} libnvidia-egl-gbm.so
|
|
. if ${NVVERSION} >= 570.00000 # 570.00, first LINUX32 support
|
|
LINUX32_LIBS+= libnvidia-egl-gbm.so.${NV_EGL_G_VERSION}
|
|
LINUX32_LINKS+= libnvidia-egl-gbm.so.${NV_EGL_G_VERSION} libnvidia-egl-gbm.so.1 \
|
|
libnvidia-egl-gbm.so.${NV_EGL_G_VERSION} libnvidia-egl-gbm.so
|
|
. endif # 570.00
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-gbm\.so)\.X/\1.${NV_EGL_G_VERSION}/'
|
|
.endif # 525.89.02
|
|
# End of nvidia-egl-gbm supports
|
|
|
|
|
|
.if ${NVVERSION} >= 525.08902 # 525.89.02
|
|
LINUX_LIBS+= libnvoptix.so.${PORTVERSION} \
|
|
libnvidia-nvvm.so.${PORTVERSION} \
|
|
libnvidia-ngx.so.${PORTVERSION} \
|
|
libnvidia-allocator.so.${PORTVERSION} \
|
|
libnvidia-opticalflow.so.${PORTVERSION}
|
|
LINUX_LINKS+= libnvidia-nvvm.so.${PORTVERSION} libnvidia-nvvm.so.4 \
|
|
libnvidia-nvvm.so.${PORTVERSION} libnvidia-nvvm.so \
|
|
libnvidia-opticalflow.so.${PORTVERSION} libnvidia-opticalflow.so.1 \
|
|
libnvidia-opticalflow.so.${PORTVERSION} libnvidia-opticalflow.so \
|
|
libnvoptix.so.${PORTVERSION} libnvoptix.so.1 \
|
|
libnvoptix.so.${PORTVERSION} libnvoptix.so
|
|
LINUX32_LIBS+= libnvidia-nvvm.so.${PORTVERSION} \
|
|
libnvidia-allocator.so.${PORTVERSION} \
|
|
libnvidia-opticalflow.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libnvidia-nvvm.so.${PORTVERSION} libnvidia-nvvm.so.4 \
|
|
libnvidia-nvvm.so.${PORTVERSION} libnvidia-nvvm.so
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libnvoptix\.so,d' \
|
|
'\,${LINUXBASE}.*libnvidia-(allocator|egl-gbm|ngx|nvvm|opticalflow),d'
|
|
.endif
|
|
|
|
PLIST_SUB+= LINUXBASE=${LINUXBASE} \
|
|
LINUX_LIBDIR=${LINUX_LIBDIR} \
|
|
SHLIB_VERSION=${PORTVERSION}
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${NVVERSION} >= 390.042 && ${LINUX_DEFAULT} != c6
|
|
USE_LINUX+= libglvnd
|
|
PLIST_RE+= '\,${LINUXBASE}.*libEGL\.so,d' \
|
|
'\,${LINUXBASE}.*libGL\.so,d' \
|
|
'\,${LINUXBASE}.*libGLESv(1_CM|2)\.so,d' \
|
|
'\,${LINUXBASE}.*libGLX\.so,d' \
|
|
'\,${LINUXBASE}.*libGLdispatch\.so,d' \
|
|
'\,${LINUXBASE}.*libOpenGL\.so,d'
|
|
.else
|
|
.if ${NVVERSION} >= 390.042
|
|
LINUX_LIBS+= libEGL.so.1.1.0
|
|
LINUX_LINKS+= libEGL.so.1.1.0 libEGL.so.1
|
|
LINUX32_LIBS+= libEGL.so.1.1.0
|
|
LINUX32_LINKS+= libEGL.so.1.1.0 libEGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libEGL\.so)\.X/\1.1.1.0/'
|
|
.elif ${NVVERSION} >= 355.006
|
|
LINUX_LIBS+= libEGL.so.1
|
|
LINUX32_LIBS+= libEGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE}.*libEGL\.so\.X,d'
|
|
.elif ${NVVERSION} >= 331.013
|
|
LINUX_LIBS+= libEGL.so.${PORTVERSION}
|
|
LINUX_LINKS+= libEGL.so.${PORTVERSION} libEGL.so.1
|
|
LINUX32_LIBS+= libEGL.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libEGL.so.${PORTVERSION} libEGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libEGL\.so)\.X/\1.${PORTVERSION}/'
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libEGL\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 390.042
|
|
LINUX_LIBS+= libGL.so.1.7.0
|
|
LINUX_LINKS+= libGL.so.1.7.0 libGL.so.1
|
|
LINUX32_LIBS+= libGL.so.1.7.0
|
|
LINUX32_LINKS+= libGL.so.1.7.0 libGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libGL\.so)\.X/\1.1.7.0/'
|
|
.elif ${NVVERSION} >= 361.028
|
|
LINUX_LIBS+= libGL.so.1.0.0
|
|
LINUX_LINKS+= libGL.so.1.0.0 libGL.so.1
|
|
LINUX32_LIBS+= libGL.so.1.0.0
|
|
LINUX32_LINKS+= libGL.so.1.0.0 libGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libGL\.so)\.X/\1.1.0.0/'
|
|
.elif ${NVVERSION} >= 361.016
|
|
LINUX_LIBS+= libGL.so.1
|
|
LINUX32_LIBS+= libGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE}.*libGL\.so\.X,d'
|
|
.else
|
|
LINUX_LIBS+= libGL.so.${PORTVERSION}
|
|
LINUX_LINKS+= libGL.so.${PORTVERSION} libGL.so.1
|
|
LINUX32_LIBS+= libGL.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libGL.so.${PORTVERSION} libGL.so.1
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libGL\.so)\.X/\1.${PORTVERSION}/'
|
|
.endif
|
|
.if ${NVVERSION} >= 390.042
|
|
LINUX_LIBS+= libGLESv1_CM.so.1.2.0 \
|
|
libGLESv2.so.2.1.0
|
|
LINUX_LINKS+= libGLESv1_CM.so.1.2.0 libGLESv1_CM.so.1 \
|
|
libGLESv2.so.2.1.0 libGLESv2.so.2
|
|
LINUX32_LIBS+= libGLESv1_CM.so.1.2.0 \
|
|
libGLESv2.so.2.1.0
|
|
LINUX32_LINKS+= libGLESv1_CM.so.1.2.0 libGLESv1_CM.so.1 \
|
|
libGLESv2.so.2.1.0 libGLESv2.so.2
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libGLESv1_CM\.so)\.X/\1.1.2.0/' \
|
|
'\,${LINUXBASE},s/(libGLESv2\.so)\.X/\1.2.1.0/'
|
|
.elif ${NVVERSION} >= 361.016
|
|
LINUX_LIBS+= libGLESv1_CM.so.1 \
|
|
libGLESv2.so.2
|
|
LINUX32_LIBS+= libGLESv1_CM.so.1 \
|
|
libGLESv2.so.2
|
|
PLIST_RE+= '\,${LINUXBASE}.*GLESv(1_CM|2)\.so\.X,d'
|
|
.elif ${NVVERSION} >= 331.013
|
|
LINUX_LIBS+= libGLESv1_CM.so.${PORTVERSION} \
|
|
libGLESv2.so.${PORTVERSION}
|
|
LINUX_LINKS+= libGLESv1_CM.so.${PORTVERSION} libGLESv1_CM.so.1 \
|
|
libGLESv2.so.${PORTVERSION} libGLESv2.so.2
|
|
LINUX32_LIBS+= libGLESv1_CM.so.${PORTVERSION} \
|
|
libGLESv2.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libGLESv1_CM.so.${PORTVERSION} libGLESv1_CM.so.1 \
|
|
libGLESv2.so.${PORTVERSION} libGLESv2.so.2
|
|
PLIST_RE+= '\,${LINUXBASE},s/(libGLESv(1_CM|2)\.so)\.X/\1.${PORTVERSION}/'
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libGLESv(1_CM|2)\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 361.016
|
|
LINUX_LIBS+= libGLX.so.0
|
|
LINUX32_LIBS+= libGLX.so.0
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libGLX\.so,d'
|
|
.endif
|
|
.if ${NVVERSION} >= 355.006
|
|
LINUX_LIBS+= libGLdispatch.so.0 \
|
|
libOpenGL.so.0
|
|
LINUX32_LIBS+= libGLdispatch.so.0 \
|
|
libOpenGL.so.0
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}.*libGLdispatch\.so,d' \
|
|
'\,${LINUXBASE}.*libOpenGL\.so,d'
|
|
.endif
|
|
.endif # ${NVVERSION} >= 390.042 && ${LINUX_DEFAULT} != c6
|
|
|
|
.if ${ARCH} == amd64
|
|
.if ${NVVERSION} >= 310.014
|
|
LINUX32_LIBS+= libnvcuvid.so.${PORTVERSION}
|
|
LINUX32_LINKS+= libnvcuvid.so.${PORTVERSION} libnvcuvid.so.1 \
|
|
libnvcuvid.so.${PORTVERSION} libnvcuvid.so
|
|
.else
|
|
PLIST_RE+= '\,${LINUXBASE}/usr/lib/libnvcuvid\.so,d'
|
|
.endif
|
|
.endif
|
|
|
|
.if ${ARCH} == amd64
|
|
PLIST_SUB+= LINUX32=""
|
|
.else
|
|
PLIST_SUB+= LINUX32="@comment "
|
|
.endif
|
|
|
|
do-extract:
|
|
@(cd ${WRKDIR} && ${SH} \
|
|
${DISTDIR}/NVIDIA-Linux-${ARCH_SUFX}-${DISTVERSION}.run \
|
|
--extract-only > /dev/null)
|
|
|
|
post-patch:
|
|
.if ${NVVERSION} >= 384.047 && ${NVVERSION} < 435.017
|
|
@${SED} 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' \
|
|
${WRKSRC}/nvidia_icd.json.template > \
|
|
${WRKSRC}/nvidia_icd.json
|
|
.endif
|
|
|
|
do-install:
|
|
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
|
|
.if ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019 || ${NVVERSION} >= 361.016
|
|
${REINPLACE_CMD} -E '\,${LINUXBASE},!{/libvdpau(_trace)?\.so/d;}' \
|
|
${TMPPLIST}
|
|
.endif
|
|
.if ${NVVERSION} >= 310.019
|
|
${REINPLACE_CMD} -e '\,${LINUXBASE},!{/libXvMCNVIDIA/d;}' ${TMPPLIST}
|
|
.endif
|
|
.if ${NVVERSION} < 331.013 || ${ARCH} == amd64 && ${NVVERSION} < 334.016
|
|
${REINPLACE_CMD} -E '\,${LINUXBASE},!{/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d;}' \
|
|
${TMPPLIST}
|
|
.endif
|
|
.if ${NVVERSION} < 352.009
|
|
${REINPLACE_CMD} -E '\,${LINUXBASE},!{/(lib)?nvidia-(debugdump|smi|ml)/d;}' \
|
|
${TMPPLIST}
|
|
.endif
|
|
.if ${NVVERSION} < 355.006
|
|
${REINPLACE_CMD} -E '\,${LINUXBASE},!{/(libEGL_nvidia|GLdispatch|OpenGL)/d;}' \
|
|
${TMPPLIST}
|
|
.else
|
|
${REINPLACE_CMD} '\,${LINUXBASE},!s/libEGL\.so\.${PORTVERSION}/libEGL.so/' \
|
|
${TMPPLIST}
|
|
.endif
|
|
.if ${NVVERSION} >= 361.028
|
|
${REINPLACE_CMD} -E '\,${LINUXBASE},!{/(EGL_nvidia\.so|GLESv[12](_CM)?(\.so\.[0-9]+\.[0-9]+))$$/d;}' \
|
|
${TMPPLIST}
|
|
.else
|
|
${REINPLACE_CMD} -E '\,${LINUXBASE},!{/\/lib\/libGLESv[12](_CM)?(\.so)?(_nvidia.so(\.[0-9]|\.[0-9]+\.[0-9]+)?)?$$/d ; \
|
|
/libEGL_nvidia\.so\.${PORTVERSION}/d;}' ${TMPPLIST}
|
|
.endif
|
|
.if ${NVVERSION} >= 415.013
|
|
${REINPLACE_CMD} -e '/tls\/libnvidia-tls\.so/d' ${TMPPLIST}
|
|
.endif
|
|
${REINPLACE_CMD} -E ${PLIST_RE:S/^/-e /} ${TMPPLIST}
|
|
.for f d in ${LINUX_DATA}
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}${d}
|
|
${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${LINUXBASE}${d}
|
|
.endfor
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/bin
|
|
${INSTALL_SCRIPT} ${WRKSRC}/nvidia-bug-report.sh \
|
|
${STAGEDIR}${LINUXBASE}/usr/bin
|
|
.for p in ${LINUX_PROGS}
|
|
${INSTALL_PROGRAM} ${WRKSRC}/${p} ${STAGEDIR}${LINUXBASE}/usr/bin
|
|
.endfor
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/share/man/man1
|
|
.for m in ${LINUX_MANS}
|
|
${INSTALL_MAN} ${WRKSRC}/${m}.1.gz \
|
|
${STAGEDIR}${LINUXBASE}/usr/share/man/man1
|
|
.endfor
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/tls
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/vdpau
|
|
.for l in ${LINUX_LIBS}
|
|
${INSTALL_LIB} ${WRKSRC}/${l} \
|
|
${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/${l}
|
|
.endfor
|
|
.for s t in ${LINUX_LINKS}
|
|
${RLN} ${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/${s} \
|
|
${STAGEDIR}${LINUXBASE}${LINUX_LIBDIR}/${t}
|
|
.endfor
|
|
.if ${ARCH} == amd64
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/lib/tls
|
|
${MKDIR} ${STAGEDIR}${LINUXBASE}/usr/lib/vdpau
|
|
.for l in ${LINUX32_LIBS}
|
|
${INSTALL_LIB} ${WRKSRC}/32/${l} \
|
|
${STAGEDIR}${LINUXBASE}/usr/lib/${l}
|
|
.endfor
|
|
.for s t in ${LINUX32_LINKS}
|
|
${RLN} ${STAGEDIR}${LINUXBASE}/usr/lib/${s} \
|
|
${STAGEDIR}${LINUXBASE}/usr/lib/${t}
|
|
.endfor
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|