config BR2_PACKAGE_PETITBOOT
	bool "petitboot"
	depends on BR2_PACKAGE_KEXEC_ARCH_SUPPORTS || BR2_PACKAGE_KEXEC_LITE_ARCH_SUPPORTS
	depends on BR2_USE_MMU # lvm2, agetty
	depends on BR2_USE_WCHAR # elfutils, kexec-lite
	depends on !BR2_STATIC_LIBS # elfutils, kexec-lite, lvm2
	depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils, kexec-lite, lvm2
	depends on BR2_PACKAGE_HAS_UDEV
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || !BR2_PACKAGE_KEXEC_ARCH_SUPPORTS # kexec
	select BR2_PACKAGE_ELFUTILS
	select BR2_PACKAGE_LVM2 # devmapper
	select BR2_PACKAGE_NCURSES
	select BR2_PACKAGE_NCURSES_WCHAR
	# run-time dependencies
	select BR2_PACKAGE_KEXEC if !BR2_PACKAGE_KEXEC_LITE_ARCH_SUPPORTS
	select BR2_PACKAGE_KEXEC_LITE if BR2_PACKAGE_KEXEC_LITE_ARCH_SUPPORTS && !BR2_PACKAGE_KEXEC
	select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC
	select BR2_PACKAGE_NVME if ( BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le )
	select BR2_PACKAGE_POWERPC_UTILS if ( BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le )
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_AGETTY
	help
	  Petitboot is a small kexec-based bootloader

	  NOTE: petitboot looks best in a UTF-8 locale; be sure there
	  is one listed in BR2_GENERATE_LOCALE.

	  http://www.kernel.org/pub/linux/kernel/people/geoff/petitboot/petitboot.html

if BR2_PACKAGE_PETITBOOT

config BR2_PACKAGE_PETITBOOT_GETTY_PORT
	string "TTY port(s)"
	default "console"
	help
	  Specify a space-separated list of ports to run the petitboot
	  UI on. Wildcards are allowed. Example: "hvc* ttys0 ttyS*"

endif # BR2_PACKAGE_PETITBOOT

comment "petitboot needs a toolchain w/ wchar, dynamic library, threads, udev /dev management"
	depends on BR2_PACKAGE_KEXEC_ARCH_SUPPORTS
	depends on BR2_USE_MMU
	depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS || \
		!BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_PACKAGE_HAS_UDEV

comment "petitboot w/ kexec needs a toolchain w/ headers >= 3.17"
	depends on BR2_PACKAGE_KEXEC_ARCH_SUPPORTS && !BR2_PACKAGE_KEXEC_LITE_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
