Files
ports/x11/linux-nvidia-libs/Makefile
T
Alexander Ziaee 46aa077015 nvidia comments: Wordsmith
These days, Nvidia graphics is more platforms than just cards, more
renderers than just OpenGL, and more display protocols than just X.
It's also written in uppercase. This increases consistency, clarity,
and eliminates jarring line wrapping at reference column width 80.

PR:			293473 (graphics/nvidia-texture-tools)
PR:			293474 (sysutils/nvclock)
PR:			293475 (sysutils/py-nvitop)
Reviewed by:		amdmi3, ashafer, danfe, kbowling
Reviewed by:		Tomoaki Aoki <junchoon_dec.sakura.ne.jp>
Differential Revision:	https://reviews.freebsd.org/D55452
2026-03-14 13:51:59 -04:00

620 lines
23 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)
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} >= 595.00000
LINUX_DATA+= 09_nvidia_wayland2.json /usr/share/egl/egl_external_platform.d
PLIST_RE+= '\,${LINUXBASE}/usr/share/egl/egl_external_platform.d/99_nvidia_wayland2.json,d'
.elif ${NVVERSION} >= 590.00000
LINUX_DATA+= 99_nvidia_wayland2.json /usr/share/egl/egl_external_platform.d
PLIST_RE+= '\,${LINUXBASE}/usr/share/egl/egl_external_platform.d/09_nvidia_wayland2.json,d'
.else
PLIST_RE+= '\,${LINUXBASE}/usr/share/egl/egl_external_platform.d/09_nvidia_wayland2.json,d'
PLIST_RE+= '\,${LINUXBASE}/usr/share/egl/egl_external_platform.d/99_nvidia_wayland2.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
.if ${NVVERSION} >= 590.00000 # 590.000.00
LINUX_LIBS+= libnvidia-tileiras.so.${PORTVERSION}
LINUX32_LIBS+= libnvidia-tileiras.so.${PORTVERSION}
.else
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-tileiras\.so,d'
.endif
## graphics/egl-wayland supports
## Estimated to be upgraded often.
.if ${NVVERSION} >= 570.18100
NV_EGL_W_VERSION= 1.1.20
.elif ${NVVERSION} >= 570.14400 # 570.144, excuding 570.181 to below 575.000
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
. else
PLIST_RE+= '\,${LINUXBASE}.*lib\/libnvidia-egl-wayland\.so,d'
. 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
## graphics/egl-wayland2 supports
## Estimated to be upgraded often.
.if ${NVVERSION} >= 590.00000
NV_EGL_W2_VERSION= 1.0.1
.else # Fool proof (Poka-yoke)
NV_EGL_W2_VERSION= ""
.endif
.if ${NVVERSION} >= 590.00000 # Start graphics/egl-wayland2 support
LINUX_LIBS+= libnvidia-egl-wayland2.so.${NV_EGL_W2_VERSION}
LINUX_LINKS+= libnvidia-egl-wayland2.so.${NV_EGL_W2_VERSION} libnvidia-egl-wayland2.so.1
LINUX32_LIBS+= libnvidia-egl-wayland2.so.${NV_EGL_W2_VERSION}
LINUX32_LINKS+= libnvidia-egl-wayland2.so.${NV_EGL_W2_VERSION} libnvidia-egl-wayland2.so.1
PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland2\.so)\.X/\1.${NV_EGL_W2_VERSION}/'
.else
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-egl-wayland2\.so,d'
.endif # 590.000.00
# End of graphics/egl-wayland2 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} >= 595.00000 || \
${NVVERSION} >= 580.14200 && ${NVVERSION} < 590.00000 # 580.142 or 595
NV_EGL_X_VERSION= 1.0.5
.elif ${NVVERSION} >= 580.10508 # 580.105.08
NV_EGL_X_VERSION= 1.0.4
.elif ${NVVERSION} >= 570.18100 # 570.181
NV_EGL_X_VERSION= 1.0.3
.elif ${NVVERSION} >= 570.15302 # 570.153.02
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} >= 580.12609 # 580.126.09
NV_EGL_G_VERSION= 1.1.3
.elif ${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
# Vulkan layer implementing NVIDIA Smooth Motion support
.if ${NVVERSION} >= 580.06506 # 580.65.06
LINUX_LIBS+= libnvidia-present.so.${PORTVERSION}
.else
PLIST_RE+= '\,${LINUXBASE}.*libnvidia-present\.so,d'
.endif # 580.65.06
# End of Vulkan layer implementing NVIDIA Smooth Motion support
.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>