config BR2_PACKAGE_LIBV4L
	bool "libv4l"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_MMU # fork()
	depends on !BR2_STATIC_LIBS # dlopen()
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # media headers
	# wait for libv4l 1.7+ for musl compatibility
	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC
	select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL
	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
	help
	  libv4l is a collection of libraries which adds a thin abstraction
	  layer on top of video4linux2 devices. libv4l consists of 3 different
	  libraries: libv4lconvert, libv4l1 and libv4l2.

	  http://linuxtv.org/wiki/index.php/V4l-utils

if BR2_PACKAGE_LIBV4L

comment "libv4l JPEG support not enabled"
	depends on !BR2_PACKAGE_JPEG

config BR2_PACKAGE_LIBV4L_UTILS
	bool "v4l-utils tools"
	depends on BR2_ENABLE_LOCALE
	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
	help
	  v4l-utils is a collection of various video4linux and DVB utilities.
	  Enable this if you want to build the following tools:
	  - cx18-ctl
	  - dvb-fe-tool, dvbv5-zap, dvbv5-scan, dvb-format-convert
	  - decode_tm6000
	  - ir-keytable
	  - media-ctl
	  - v4l2-compliance
	  - v4l2-ctl, cx18-ctl, ivtv-ctl
	  - v4l2-sysfs-path
	  - rds-ctl
	  - qv4l2 (if Qt is enabled)

comment "libv4l-utils tools need a toolchain w/ locale"
	depends on !BR2_ENABLE_LOCALE

endif

comment "libv4l needs an uClibc or (e)glibc toolchain w/ threads, dynamic library, C++ and headers >= 3.0"
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \
		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \
		|| !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
