config BR2_PACKAGE_OPKG_UTILS
	bool "opkg-utils"
	depends on !BR2_nios2 || BR2_PACKAGE_BUSYBOX # binutils
	depends on BR2_USE_MMU # bash, python3
	depends on BR2_USE_WCHAR # python3
	depends on BR2_TOOLCHAIN_HAS_THREADS # python3 <- libffi
	depends on !BR2_STATIC_LIBS # python3
	depends on !BR2_PACKAGE_PYTHON # python3
	select BR2_PACKAGE_BINUTILS if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_BINUTILS_TARGET if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_COREUTILS if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_DIFFUTILS if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_FINDUTILS if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_GREP if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_GZIP if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_SED if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_TAR if !BR2_PACKAGE_BUSYBOX # runtime
	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
	select BR2_PACKAGE_BASH # runtime
	select BR2_PACKAGE_PYTHON3 # runtime
	help
	  Helper scripts for use with the opkg package manager.

	  https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/

comment "opkg-utils needs a toolchain w/ wchar, threads, dynamic library"
	depends on !BR2_nios2 || BR2_PACKAGE_BUSYBOX
	depends on BR2_USE_MMU
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

comment "opkg-utils needs python3"
	depends on !BR2_nios2 || BR2_PACKAGE_BUSYBOX
	depends on BR2_USE_MMU
	depends on BR2_PACKAGE_PYTHON
