# Choose binutils version.

comment "Binutils Options"

choice
	prompt "Binutils Version"
	default BR2_BINUTILS_VERSION_2_19_1
	help
	  Select the version of binutils you wish to use.

	config BR2_BINUTILS_VERSION_2_17
		depends on !BR2_nios2
		depends on BR2_DEPRECATED || (BR2_avr32 && BR2_EXT_BINUTILS_VERSION_2_17)
		bool "binutils 2.17"

	config BR2_BINUTILS_VERSION_2_17_50_0_17
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED
		bool "binutils 2.17.50.0.17"

	config BR2_BINUTILS_VERSION_2_18
		depends on !BR2_nios2
		depends on BR2_DEPRECATED || BR2_avr32
		depends on BR2_EXT_BINUTILS_VERSION_2_18
		bool "binutils 2.18"

	config BR2_BINUTILS_VERSION_2_18_50_0_1
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED
		bool "binutils 2.18.50.0.1"

	config BR2_BINUTILS_VERSION_2_18_50_0_3
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED
		bool "binutils 2.18.50.0.3"

	config BR2_BINUTILS_VERSION_2_18_50_0_6
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED
		bool "binutils 2.18.50.0.6"

	config BR2_BINUTILS_VERSION_2_18_50_0_8
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED
		bool "binutils 2.18.50.0.8"

	config BR2_BINUTILS_VERSION_2_18_50_0_9
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED
		bool "binutils 2.18.50.0.9"

	config BR2_BINUTILS_VERSION_2_19
		depends on !BR2_avr32 && !BR2_nios2
		depends on BR2_DEPRECATED || BR2_RECENT
		bool "binutils 2.19"

	config BR2_BINUTILS_VERSION_2_19_1
		depends on !BR2_avr32 && !BR2_nios2
		bool "binutils 2.19.1"

endchoice

config BR2_BINUTILS_VERSION
	string
	default "2.15"		if BR2_nios2
	default "2.17"		if BR2_BINUTILS_VERSION_2_17
	default "2.17.50.0.17"	if BR2_BINUTILS_VERSION_2_17_50_0_17
	default "2.18"		if BR2_BINUTILS_VERSION_2_18
	default "2.18.50.0.1"	if BR2_BINUTILS_VERSION_2_18_50_0_1
	default "2.18.50.0.3"	if BR2_BINUTILS_VERSION_2_18_50_0_3
	default "2.18.50.0.6"	if BR2_BINUTILS_VERSION_2_18_50_0_6
	default "2.18.50.0.8"	if BR2_BINUTILS_VERSION_2_18_50_0_8
	default "2.18.50.0.9"	if BR2_BINUTILS_VERSION_2_18_50_0_9
	default "2.19"		if BR2_BINUTILS_VERSION_2_19
	default "2.19.1"	if BR2_BINUTILS_VERSION_2_19_1

config BR2_EXTRA_BINUTILS_CONFIG_OPTIONS
	string "Additional binutils options"
	default ""
	help
	  Any additional binutils options you may want to include.
