Changeset View
Changeset View
Standalone View
Standalone View
x11/nvidia-driver/Makefile
# Created by: Stijn Hoop <stijn@win.tue.nl> | # Created by: Stijn Hoop <stijn@win.tue.nl> | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
# | # | ||||
# For those wondering why this port is not under `x11-drivers' category, | # For those wondering why this port is not under `x11-drivers' category, | ||||
# have a look at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=121930. | # have a look at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=121930. | ||||
# | # | ||||
# Starting with version 1.0-7667, NVidia has dropped support for numerous | # Starting with version 1.0-7667, NVidia has dropped support for numerous | ||||
# "legacy" GPUs. Consult NVidia README (the Appendix) to find out whether | # "legacy" GPUs. Consult NVidia README (the Appendix) to find out whether | ||||
# you need to use legacy driver version and install one of corresponding | # you need to use legacy driver version and install one of corresponding | ||||
# slave ports instead (`x11/nvidia-driver-390', `x11/nvidia-driver-340', | # slave ports instead (`x11/nvidia-driver-390', `x11/nvidia-driver-340', | ||||
# or `x11/nvidia-driver-304'). | # or `x11/nvidia-driver-304'). | ||||
PORTNAME= nvidia-driver | PORTNAME= nvidia-driver | ||||
DISTVERSION?= 440.100 | DISTVERSION?= 440.100 | ||||
# Always try to set PORTREVISION as it can be overridden by the slave ports | # Always try to set PORTREVISION as it can be overridden by the slave ports | ||||
PORTREVISION?= 1 | PORTREVISION?= 2 | ||||
CATEGORIES= x11 | CATEGORIES= x11 | ||||
MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} | MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} | ||||
DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION} | DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION} | ||||
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} | DISTFILES= ${DISTNAME}${EXTRACT_SUFX} | ||||
MAINTAINER= danfe@FreeBSD.org | MAINTAINER= danfe@FreeBSD.org | ||||
COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering | COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering | ||||
LICENSE_FILE= ${WRKSRC}/doc/license.txt | LICENSE_FILE= ${WRKSRC}/doc/license.txt | ||||
.include "${.CURDIR}/../nvidia-driver/Makefile.common" | .include "${.CURDIR}/../nvidia-driver/Makefile.common" | ||||
# Pull GNU sed(1) for "binary" patching of obj/libglvnd/libEGL.so.1 and | # Pull GNU sed(1) for "binary" patching of obj/libglvnd/libEGL.so.1 and | ||||
# obj/libEGL_nvidia.so.0 (see below) | # obj/libEGL_nvidia.so.0 (see below) | ||||
.if ${NVVERSION} >= 410.057 | .if ${NVVERSION} >= 410.057 | ||||
PATCH_DEPENDS= gsed:textproc/gsed | PATCH_DEPENDS= gsed:textproc/gsed | ||||
BUILD_DEPENDS= pkg-config:devel/pkgconf libglvnd>0:graphics/libglvnd | |||||
.endif | .endif | ||||
USES= kmod uidfix xorg | USES= kmod uidfix xorg | ||||
USE_XORG= x11 xorg-server xext | USE_XORG= x11 xorg-server xext | ||||
USE_LDCONFIG= yes | USE_LDCONFIG= yes | ||||
GLVND_JSON_PATH= ${PREFIX}/share/glvnd/egl_vendor.d | GLVND_JSON_PATH= ${PREFIX}/share/glvnd/egl_vendor.d | ||||
WAYLAND_JSON_PATH= ${PREFIX}/share/egl/egl_external_platform.d | WAYLAND_JSON_PATH= ${PREFIX}/share/egl/egl_external_platform.d | ||||
▲ Show 20 Lines • Show All 203 Lines • ▼ Show 20 Lines | |||||
.endif | .endif | ||||
.if ${NVVERSION} < 415.013 | .if ${NVVERSION} < 415.013 | ||||
${REINPLACE_CMD} -e '/libnvidia-egl-wayland\.so/d ; \ | ${REINPLACE_CMD} -e '/libnvidia-egl-wayland\.so/d ; \ | ||||
/10_nvidia_wayland\.json/d' ${TMPPLIST} | /10_nvidia_wayland\.json/d' ${TMPPLIST} | ||||
.endif | .endif | ||||
.if ${NVVERSION} < 440.036 | .if ${NVVERSION} < 440.036 | ||||
${REINPLACE_CMD} -e '/lib32\//d' ${TMPPLIST} | ${REINPLACE_CMD} -e '/lib32\//d' ${TMPPLIST} | ||||
.endif | .endif | ||||
.if ${NVVERSION} < 410.057 | |||||
# Rename some libraries and install a libmap file to resolve conflict with | # Rename some libraries and install a libmap file to resolve conflict with | ||||
# Mesa libraries. | # Mesa libraries. | ||||
${LN} -sf libGL-NVIDIA.so.1 \ | ${LN} -sf libGL-NVIDIA.so.1 \ | ||||
${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so | ${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so | ||||
${MV} -f ${STAGEDIR}${PREFIX}/lib/libGL.so.1 \ | ${MV} -f ${STAGEDIR}${PREFIX}/lib/libGL.so.1 \ | ||||
${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so.1 | ${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so.1 | ||||
${RM} ${STAGEDIR}${PREFIX}/lib/libGL.so | ${RM} ${STAGEDIR}${PREFIX}/lib/libGL.so | ||||
.if ${NVVERSION} >= 331.013 | .if ${NVVERSION} >= 331.013 | ||||
${LN} -sf libEGL-NVIDIA.so.1 \ | ${LN} -sf libEGL-NVIDIA.so.1 \ | ||||
${STAGEDIR}${PREFIX}/lib/libEGL-NVIDIA.so | ${STAGEDIR}${PREFIX}/lib/libEGL-NVIDIA.so | ||||
${MV} -f ${STAGEDIR}${PREFIX}/lib/libEGL.so.1 \ | ${MV} -f ${STAGEDIR}${PREFIX}/lib/libEGL.so.1 \ | ||||
${STAGEDIR}${PREFIX}/lib/libEGL-NVIDIA.so.1 | ${STAGEDIR}${PREFIX}/lib/libEGL-NVIDIA.so.1 | ||||
${RM} ${STAGEDIR}${PREFIX}/lib/libEGL.so | ${RM} ${STAGEDIR}${PREFIX}/lib/libEGL.so | ||||
${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv1_CM.so | ${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv1_CM.so | ||||
${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv1_CM.so.1 | ${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv1_CM.so.1 | ||||
${LN} -sf libGLESv2-NVIDIA.so.2 \ | ${LN} -sf libGLESv2-NVIDIA.so.2 \ | ||||
${STAGEDIR}${PREFIX}/lib/libGLESv2-NVIDIA.so | ${STAGEDIR}${PREFIX}/lib/libGLESv2-NVIDIA.so | ||||
${MV} -f ${STAGEDIR}${PREFIX}/lib/libGLESv2.so.2 \ | ${MV} -f ${STAGEDIR}${PREFIX}/lib/libGLESv2.so.2 \ | ||||
${STAGEDIR}${PREFIX}/lib/libGLESv2-NVIDIA.so.2 | ${STAGEDIR}${PREFIX}/lib/libGLESv2-NVIDIA.so.2 | ||||
${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv2.so | ${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv2.so | ||||
.endif | .endif | ||||
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/libmap.d/ | @${MKDIR} ${STAGEDIR}${PREFIX}/etc/libmap.d/ | ||||
${INSTALL_DATA} ${WRKDIR}/nvidia.conf \ | ${INSTALL_DATA} ${WRKDIR}/nvidia.conf \ | ||||
${STAGEDIR}${PREFIX}/etc/libmap.d/ | ${STAGEDIR}${PREFIX}/etc/libmap.d/ | ||||
.else | |||||
${REINPLACE_CMD} -E '/-NVIDIA/d ; \ | |||||
/lib(Open)?E?GLX?(ESv[12](_CM)?|dispatch)?\.so/d' \ | |||||
${TMPPLIST} | |||||
# Override mesa.conf if GLX_EXT_libglvnd is missing | |||||
@${ECHO_CMD} "libGLX_indirect.so.0 libGLX_nvidia.so.0" \ | |||||
>${STAGEDIR}${PREFIX}/etc/libmap.d/nvidia.conf | |||||
.endif | |||||
.include <bsd.port.post.mk> | .include <bsd.port.post.mk> |