config BR2_TARGET_SYSLINUX
	bool "syslinux"
	depends on BR2_i386 || BR2_x86_64
	# Make sure at least one of the flavors is installed
	select BR2_TARGET_SYSLINUX_ISOLINUX \
		if !BR2_TARGET_SYSLINUX_PXELINUX && \
		   !BR2_TARGET_SYSLINUX_MBR && \
		   !BR2_TARGET_SYSLINUX_EFI
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	help
	  The syslinux bootloader for x86 systems.
	  This includes: syslinux, pxelinux, extlinux.

	  http://syslinux.org

if BR2_TARGET_SYSLINUX

config BR2_TARGET_SYSLINUX_LEGACY_BIOS
	bool

config BR2_TARGET_SYSLINUX_ISOLINUX
	bool "install isolinux"
	select BR2_TARGET_SYSLINUX_LEGACY_BIOS
	help
	  Install the legacy-BIOS 'isolinux' image, to boot off
	  optical media (CDROM, DVD.)

config BR2_TARGET_SYSLINUX_PXELINUX
	bool "install pxelinux"
	select BR2_TARGET_SYSLINUX_LEGACY_BIOS
	help
	  Install the legacy-BIOS 'pxelinux' image, to boot off
	  the network using PXE.

config BR2_TARGET_SYSLINUX_MBR
	bool "install mbr"
	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19615
	select BR2_TARGET_SYSLINUX_LEGACY_BIOS
	help
	  Install the legacy-BIOS 'mbr' image, to boot off a
	  local MBR-partition (e.g. prepared with 'extlinux'
	  or 'syslinux').

config BR2_TARGET_SYSLINUX_EFI
	bool "install efi"
	depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS
	select BR2_PACKAGE_GNU_EFI
	help
	  Install the 'efi' image, to boot from an EFI environment.

if BR2_TARGET_SYSLINUX_LEGACY_BIOS

config BR2_TARGET_SYSLINUX_C32
	string "modules to install"
	help
	  Enter a space-separated list of .c32 modules to install.
	  Leave empty to install no module.

endif # BR2_TARGET_SYSLINUX_LEGACY_BIOS

endif # BR2_TARGET_SYSLINUX
