config BR2_PACKAGE_OPENVMTOOLS_ARCH_SUPPORTS
	bool
	default y if BR2_i386
	default y if BR2_x86_64
	default y if BR2_aarch64

config BR2_PACKAGE_OPENVMTOOLS
	bool "openvmtools"
	depends on BR2_PACKAGE_OPENVMTOOLS_ARCH_SUPPORTS
	depends on BR2_USE_MMU # libglib2
	depends on BR2_USE_WCHAR # libglib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
	depends on BR2_ENABLE_LOCALE
	depends on !BR2_STATIC_LIBS
	depends on !BR2_TOOLCHAIN_USES_UCLIBC
	select BR2_PACKAGE_LIBGLIB2
	select BR2_PACKAGE_LIBDNET
	select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC
	help
	  Open Virtual Machine Tools for VMware guest OS

	  https://github.com/vmware/open-vm-tools

	  ICU locales, Xerces, and X11 tools are currently not
	  supported.

	  NOTE: Support for vmblock-fuse will be enabled in
	  openvmtools if the libfuse package is selected.

if BR2_PACKAGE_OPENVMTOOLS

config BR2_PACKAGE_OPENVMTOOLS_PAM
	bool "PAM support"
	# linux-pam needs locale, dynamic library and wchar, but we
	# already have these dependencies on the main symbol, above.
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # linux-pam
	select BR2_PACKAGE_LINUX_PAM
	help
	  Support for PAM in openvmtools

comment "PAM support needs a toolchain w/ gcc >= 4.9"
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9

config BR2_PACKAGE_OPENVMTOOLS_RESOLUTIONKMS
	bool "resolutionkms support"
	depends on BR2_PACKAGE_HAS_UDEV
	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
	depends on BR2_i386 || BR2_x86_64 # libdrm vmwgfx
	select BR2_PACKAGE_LIBDRM
	select BR2_PACKAGE_LIBDRM_VMWGFX
	help
	  Enable support for resolutionkms

comment "resolutionkms needs udev, a toolchain w/ threads"
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS

endif

comment "openvmtools needs a glibc or musl toolchain w/ wchar, threads, locale, dynamic library"
	depends on BR2_PACKAGE_OPENVMTOOLS_ARCH_SUPPORTS
	depends on BR2_USE_MMU
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_ENABLE_LOCALE || BR2_STATIC_LIBS || \
		BR2_TOOLCHAIN_USES_UCLIBC
