comment "nvidia-driver needs a glibc toolchain"
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_TOOLCHAIN_USES_GLIBC

config BR2_PACKAGE_NVIDIA_DRIVER
	bool "nvidia-driver"
	depends on BR2_i386 || BR2_x86_64
	depends on BR2_TOOLCHAIN_USES_GLIBC
	help
	  The binary-only driver blob for NVidia cards.
	  This is the userland part only.

	  http://www.nvidia.com/

if BR2_PACKAGE_NVIDIA_DRIVER

comment "nvidia-driver X.org drivers needs a modular Xorg server"
	depends on !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR

config BR2_PACKAGE_NVIDIA_DRIVER_XORG
	bool "X.org drivers"
	default y
	depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
	select BR2_PACKAGE_MESA3D_HEADERS
	select BR2_PACKAGE_XLIB_LIBX11
	select BR2_PACKAGE_XLIB_LIBXEXT
	select BR2_PACKAGE_HAS_LIBGL
	select BR2_PACKAGE_HAS_LIBEGL
	select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
	select BR2_PACKAGE_HAS_LIBGLES

if BR2_PACKAGE_NVIDIA_DRIVER_XORG

config BR2_PACKAGE_PROVIDES_LIBGL
	default "nvidia-driver"

config BR2_PACKAGE_PROVIDES_LIBEGL
	default "nvidia-driver"

config BR2_PACKAGE_PROVIDES_LIBGLES
	default "nvidia-driver"

config BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS
	bool "Install private libraries"
	help
	  Two libraries require special agreement with NVidia to
	  develop code linking to those libraries: libnvidia-ifr.so
	  and libnvidia-fbc.so (to grab and encode an OpenGL buffer or
	  an X framebuffer.)

	  Say 'y' here if you plan on running a program that uses
	  those private libraries.

endif # BR2_PACKAGE_NVIDIA_DRIVER_XORG

config BR2_PACKAGE_NVIDIA_DRIVER_CUDA
	bool "CUDA support"

if BR2_PACKAGE_NVIDIA_DRIVER_CUDA

config BR2_PACKAGE_NVIDIA_DRIVER_OPENCL
	bool "OpenCL support"

config BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS
	bool "CUDA MPS server and control"
	help
	  Say 'y' here if you need to run more than one program
	  doing CUDA at the same time. The MPS server will be
	  launched automatically when needed.

endif # BR2_PACKAGE_NVIDIA_DRIVER_CUDA

comment "nvidia kernel module needs a kernel to be built"
	depends on !BR2_LINUX_KERNEL

config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
	bool "nvidia kernel module"
	depends on BR2_LINUX_KERNEL
	select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra
	help
	  Build the nvidia.ko kernel module.

	  If CUDA support (above) is set, and the target is x86_64, then
	  this will also build the nvidia-uvm.ko kernel module, which
	  provides Unified Memory access to the GPU and CPU memories for
	  CUDA programs.

endif # BR2_PACKAGE_NVIDIA_DRIVER
