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_2_1
		bool "gdb 6.2.1"
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED

	config BR2_GDB_VERSION_6_3
		bool "gdb 6.3"
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED

	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

	config BR2_GDB_VERSION_SNAPSHOT
		bool "gdb snapshot"
		depends on !BR2_avr32 && !BR2_nios2

endchoice

config BR2_GDB_VERSION
	string
	default "6.2.1"    if BR2_GDB_VERSION_6_2_1
	default "6.3"      if BR2_GDB_VERSION_6_3
	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
	default "snapshot" if BR2_GDB_VERSION_SNAPSHOT
