comment "gptfdisk needs a toolchain w/ largefile, wchar, C++"
	depends on !(BR2_LARGEFILE && BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)

config BR2_PACKAGE_GPTFDISK
	bool "gptfdisk"
	depends on BR2_LARGEFILE
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_USE_WCHAR # util-linux
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	select BR2_PACKAGE_GPTFDISK_GDISK if \
		!(BR2_PACKAGE_GPTFDISK_SGDISK || BR2_PACKAGE_GPTFDISK_CGDISK)
	help
	  GPT fdisk (consisting of the gdisk and sgdisk programs) is a
	  text-mode partitioning tool that works on Globally Unique Identifier
	  (GUID) Partition Table (GPT) disks, rather than on the more common
	  (through 2010) Master Boot Record (MBR) partition tables.

	  http://www.rodsbooks.com/gdisk/

if BR2_PACKAGE_GPTFDISK

config BR2_PACKAGE_GPTFDISK_GDISK
	bool "interactive gdisk"
	help
	  Install the interactive GUID partition table (GPT) manipulator
	  /usr/sbin/gdisk which is modelled after and quite similar in use
	  to the traditional MBR based fdisk tool.

config BR2_PACKAGE_GPTFDISK_SGDISK
	bool "command line sgdisk"
	select BR2_PACKAGE_POPT
	help
	  Install the command-line GUID partition table (GPT) manipulator
	  /usr/sbin/sgdisk which is named after the traditional MBR based
	  sfdisk tool albeit with an entirely different option syntax.

config BR2_PACKAGE_GPTFDISK_CGDISK
	bool "ncurses cgdisk"
	select BR2_PACKAGE_NCURSES
	help
	  Install the ncurses-based GUID partition table (GPT)
	  manipulator /usr/sbin/cgdisk.

endif
