config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
	bool
	default y
	# The ARC version needs C++11, thus gcc >= 4.8, like gdb-8.0.x
	depends on BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_arc
	depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
	depends on !BR2_microblaze
	depends on !BR2_nios2
	depends on !BR2_or1k
	depends on !BR2_riscv

comment "Host GDB Options"
	depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS

config BR2_PACKAGE_HOST_GDB
	bool "Build cross gdb for the host"
	# When the external toolchain gdbserver is used, we shouldn't
	# allow to build a cross-gdb, as the one of the external
	# toolchain should be used.
	depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
	help
	  Build a cross gdb that runs on the host machine and debugs
	  programs running on the target. It requires 'gdbserver'
	  installed on the target, see BR2_PACKAGE_GDB_SERVER to
	  enable it.

if BR2_PACKAGE_HOST_GDB

config BR2_PACKAGE_HOST_GDB_TUI
	bool "TUI support"
	help
	  This option enables terminal user interface (TUI) for gdb

config BR2_PACKAGE_HOST_GDB_PYTHON
	bool "Python support"
	help
	  This option enables the Python support in the cross gdb.

config BR2_PACKAGE_HOST_GDB_SIM
	bool "Simulator support"
	depends on !BR2_arc
	help
	  This option enables the simulator support in the cross gdb.

choice
	prompt "GDB debugger Version"
	default BR2_GDB_VERSION_8_1
	depends on !BR2_arc
	help
	  Select the version of gdb you wish to use.

config BR2_GDB_VERSION_7_12
	bool "gdb 7.12.x"

config BR2_GDB_VERSION_8_0
	bool "gdb 8.0.x"
	# Needs a C++11 compiler
	depends on BR2_HOST_GCC_AT_LEAST_4_8

config BR2_GDB_VERSION_8_1
	bool "gdb 8.1.x"
	# Needs a C++11 compiler
	depends on BR2_HOST_GCC_AT_LEAST_4_8

config BR2_GDB_VERSION_8_2
	bool "gdb 8.2.x"
	# Needs a C++11 compiler
	depends on BR2_HOST_GCC_AT_LEAST_4_8

endchoice

endif

# Tells whether the currently selected gdb version requires C++11
# support in the toolchain. When host-gdb is not enabled, the target
# gdb built is 8.0, which requires C++11 support, which is why
# BR2_PACKAGE_GDB_NEEDS_CXX11 is 'y' when BR2_PACKAGE_HOST_GDB is not
# enabled. When host-gdb is built, with the version set to 8.0 or 8.1
# then C++11 support is needed in the toolchain to build gdb for the
# target.
#
# Even though this option is related to target gdb dependencies, we
# keep it next to the BR2_GDB_VERSION so that they are kept in sync.
config BR2_PACKAGE_GDB_NEEDS_CXX11
	bool
	default y if !BR2_PACKAGE_HOST_GDB
	default y if BR2_GDB_VERSION_8_0
	default y if BR2_GDB_VERSION_8_1
	default y if BR2_GDB_VERSION_8_2
	default y if BR2_arc

# If cross-gdb is not enabled, the latest working version is chosen.
config BR2_GDB_VERSION
	string
	default "arc-2018.09-release-gdb" if BR2_arc
	default "7.12.1"   if BR2_GDB_VERSION_7_12
	default "8.0.1"    if BR2_GDB_VERSION_8_0
	default "8.1.1"    if BR2_GDB_VERSION_8_1 || !BR2_PACKAGE_HOST_GDB
	default "8.2.1"    if BR2_GDB_VERSION_8_2
	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
