comment "Gdb Options"

config BR2_PACKAGE_GDB
	bool "Build gdb debugger for the Target"
	select BR2_PACKAGE_NCURSES
	help
	    Build the full gdb debugger to run on the target.

config BR2_PACKAGE_GDB_SERVER
	bool "Build gdb server for the Target"
	help
	    Build the gdbserver stub to run on the target.
	    A full gdb is needed to debug the progam.

config BR2_PACKAGE_GDB_HOST
	bool "Build gdb for the Host"
	help
	    Build gdb to run on the host to debug programs run on the target.

choice
	prompt "GDB debugger Version"
	default BR2_GDB_VERSION_6_8 if !BR2_avr32
	default BR2_GDB_VERSION_6_7_1 if BR2_avr32
	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_GDB_SERVER || BR2_PACKAGE_GDB_HOST
	help
	  Select the version of gdb you wish to use.

	config BR2_GDB_VERSION_6_4
		bool "gdb 6.4"
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED

	config BR2_GDB_VERSION_6_5
		bool "gdb 6.5"
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED

	config BR2_GDB_VERSION_6_6
		bool "gdb 6.6"
		depends on !BR2_avr32
		depends on BR2_DEPRECATED

	config BR2_GDB_VERSION_6_7_1
		bool "gdb 6.7.1"

	config BR2_GDB_VERSION_6_8
		bool "gdb 6.8"
		depends on !BR2_avr32

endchoice

config BR2_GDB_VERSION
	string
	default "6.4"      if BR2_GDB_VERSION_6_4
	default "6.5"      if BR2_GDB_VERSION_6_5
	default "6.6"      if BR2_GDB_VERSION_6_6
	default "6.7.1"    if BR2_GDB_VERSION_6_7_1
	default "6.8"      if BR2_GDB_VERSION_6_8
