# Choose binutils version.

comment "Binutils Options"

choice
	prompt "Binutils Version"
	default BR2_BINUTILS_VERSION_2_19
	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_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
		bool "binutils 2.19"
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

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