diff options
Diffstat (limited to 'package/nvidia-driver/nvidia-driver.mk')
-rw-r--r-- | package/nvidia-driver/nvidia-driver.mk | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk deleted file mode 100644 index e56661059f..0000000000 --- a/package/nvidia-driver/nvidia-driver.mk +++ /dev/null @@ -1,196 +0,0 @@ -################################################################################ -# -# nvidia-driver -# -################################################################################ - -NVIDIA_DRIVER_VERSION = 384.69 -NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64) -NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION) -NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION).run -NVIDIA_DRIVER_LICENSE = NVIDIA Software License -NVIDIA_DRIVER_LICENSE_FILES = LICENSE -NVIDIA_DRIVER_REDISTRIBUTE = NO -NVIDIA_DRIVER_INSTALL_STAGING = YES - -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y) - -# Since nvidia-driver are binary blobs, the below dependencies are not -# strictly speaking build dependencies of nvidia-driver. However, they -# are build dependencies of packages that depend on nvidia-driver, so -# they should be built prior to those packages, and the only simple -# way to do so is to make nvidia-driver depend on them. -NVIDIA_DRIVER_DEPENDENCIES = mesa3d-headers xlib_libX11 xlib_libXext -NVIDIA_DRIVER_PROVIDES = libgl libegl libgles - -# libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library; it -# has been replaced with libGL.so.1.0.0. Installing both is technically -# possible, but great care must be taken to ensure they do not conflict, -# so that EGL still works. The legacy library exposes an NVidia-specific -# API, so it should not be needed, except for legacy, binary-only -# applications (in other words: we don't care). -# -# libGL.so.1.0.0 is the new vendor-neutral library, aimed at replacing -# the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The latter contains -# NVidia extensions (which is deemed bad now), while the former follows -# the newly-introduced vendor-neutral "dispatching" API/ABI: -# https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-opengl-abi-proposal.txt -# However, this is not very usefull to us, as we don't support multiple -# GL providers at the same time on the system, which this proposal is -# aimed at supporting. -# -# So we only install the legacy library for now. -NVIDIA_DRIVER_LIBS_GL = \ - libGLX.so.0 \ - libGL.so.$(NVIDIA_DRIVER_VERSION) \ - libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS_EGL = \ - libEGL.so.1 \ - libGLdispatch.so.0 \ - libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS_GLES = \ - libGLESv1_CM.so.1 \ - libGLESv2.so.2 \ - libGLESv1_CM_nvidia.so.$(NVIDIA_DRIVER_VERSION) \ - libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS_MISC = \ - libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-egl-wayland.so.1.0.1 \ - libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \ - tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \ - libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS = \ - $(NVIDIA_DRIVER_LIBS_GL) \ - $(NVIDIA_DRIVER_LIBS_EGL) \ - $(NVIDIA_DRIVER_LIBS_GLES) \ - $(NVIDIA_DRIVER_LIBS_MISC) - -# Install the gl.pc file -define NVIDIA_DRIVER_INSTALL_GL_DEV - $(INSTALL) -D -m 0644 $(@D)/libGL.la $(STAGING_DIR)/usr/lib/libGL.la - $(SED) 's:__GENERATED_BY__:Buildroot:' $(STAGING_DIR)/usr/lib/libGL.la - $(SED) 's:__LIBGL_PATH__:/usr/lib:' $(STAGING_DIR)/usr/lib/libGL.la - $(SED) 's:-L[^[:space:]]\+::' $(STAGING_DIR)/usr/lib/libGL.la - $(INSTALL) -D -m 0644 package/nvidia-driver/gl.pc $(STAGING_DIR)/usr/lib/pkgconfig/gl.pc - $(INSTALL) -D -m 0644 package/nvidia-driver/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc -endef - -# Those libraries are 'private' libraries requiring an agreement with -# NVidia to develop code for those libs. There seems to be no restriction -# on using those libraries (e.g. if the user has such an agreement, or -# wants to run a third-party program developped under such an agreement). -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y) -NVIDIA_DRIVER_LIBS += \ - libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) -endif - -# We refer to the destination path; the origin file has no directory component -NVIDIA_DRIVER_X_MODS = \ - drivers/nvidia_drv.so \ - extensions/libglx.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-wfb.so.$(NVIDIA_DRIVER_VERSION) - -endif # X drivers - -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y) -NVIDIA_DRIVER_LIBS += \ - libcuda.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \ - libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y) -NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server -endif -endif - -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_OPENCL),y) -NVIDIA_DRIVER_LIBS += \ - libOpenCL.so.1.0.0 \ - libnvidia-opencl.so.$(NVIDIA_DRIVER_VERSION) -endif - -# Build and install the kernel modules if needed -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_MODULE),y) - -NVIDIA_DRIVER_MODULES = nvidia nvidia-modeset nvidia-drm -ifeq ($(BR2_x86_64),y) -NVIDIA_DRIVER_MODULES += nvidia-uvm -endif - -# They can't do everything like everyone. They need those variables, -# because they don't recognise the usual variables set by the kernel -# build system. We also need to tell them what modules to build. -NVIDIA_DRIVER_MODULE_MAKE_OPTS = \ - NV_KERNEL_SOURCES="$(LINUX_DIR)" \ - NV_KERNEL_OUTPUT="$(LINUX_DIR)" \ - NV_KERNEL_MODULES="$(NVIDIA_DRIVER_MODULES)" - -NVIDIA_DRIVER_MODULE_SUBDIRS = kernel - -$(eval $(kernel-module)) - -endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE == y - -# The downloaded archive is in fact an auto-extract script. So, it can run -# virtually everywhere, and it is fine enough to provide useful options. -# Except it can't extract into an existing (even empty) directory. -define NVIDIA_DRIVER_EXTRACT_CMDS - $(SHELL) $(DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --extract-only --target \ - $(@D)/tmp-extract - chmod u+w -R $(@D) - mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D) - rm -rf $(@D)/tmp-extract -endef - -# Helper to install libraries -# $1: destination directory (target or staging) -# -# For all libraries, we install them and create a symlink using -# their SONAME, so we can link to them at runtime; we also create -# the no-version symlink, so we can link to them at build time. -define NVIDIA_DRIVER_INSTALL_LIBS - $(foreach lib,$(NVIDIA_DRIVER_LIBS),\ - $(INSTALL) -D -m 0644 $(@D)/$(lib) $(1)/usr/lib/$(notdir $(lib)) - libsoname="$$( $(TARGET_READELF) -d "$(@D)/$(lib)" \ - |sed -r -e '/.*\(SONAME\).*\[(.*)\]$$/!d; s//\1/;' )"; \ - if [ -n "$${libsoname}" -a "$${libsoname}" != "$(notdir $(lib))" ]; then \ - ln -sf $(notdir $(lib)) \ - $(1)/usr/lib/$${libsoname}; \ - fi - baseso=$(firstword $(subst .,$(space),$(notdir $(lib)))).so; \ - if [ -n "$${baseso}" -a "$${baseso}" != "$(notdir $(lib))" ]; then \ - ln -sf $(notdir $(lib)) $(1)/usr/lib/$${baseso}; \ - fi - ) -endef - -# For staging, install libraries and development files -define NVIDIA_DRIVER_INSTALL_STAGING_CMDS - $(call NVIDIA_DRIVER_INSTALL_LIBS,$(STAGING_DIR)) - $(NVIDIA_DRIVER_INSTALL_GL_DEV) -endef - -# For target, install libraries and X.org modules -define NVIDIA_DRIVER_INSTALL_TARGET_CMDS - $(call NVIDIA_DRIVER_INSTALL_LIBS,$(TARGET_DIR)) - $(foreach m,$(NVIDIA_DRIVER_X_MODS), \ - $(INSTALL) -D -m 0644 $(@D)/$(notdir $(m)) \ - $(TARGET_DIR)/usr/lib/xorg/modules/$(m) - ) - $(foreach p,$(NVIDIA_DRIVER_PROGS), \ - $(INSTALL) -D -m 0755 $(@D)/$(p) \ - $(TARGET_DIR)/usr/bin/$(p) - ) - $(NVIDIA_DRIVER_INSTALL_KERNEL_MODULE) -endef - -$(eval $(generic-package)) |