config BR2_PACKAGE_HOST_LINUX_HEADERS
	bool

comment "Kernel Header Options"

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_3_10
	help
	  Select the version of kernel header files you wish to use.
	  You must select the correct set of header files to match
	  the kernel you intend to use on your target system.

	  For the snapshot, you have to provide the
	  linux-2.6.tar.bz2 tarball in your download dir.

	config BR2_KERNEL_HEADERS_3_0
		bool "Linux 3.0.x kernel headers"
		depends on !BR2_arc

	config BR2_KERNEL_HEADERS_3_1
		bool "Linux 3.1.x kernel headers"
		depends on BR2_DEPRECATED && !BR2_arc

	config BR2_KERNEL_HEADERS_3_2
		bool "Linux 3.2.x kernel headers"
		depends on !BR2_arc

	config BR2_KERNEL_HEADERS_3_3
		bool "Linux 3.3.x kernel headers"
		depends on BR2_DEPRECATED && !BR2_arc

	config BR2_KERNEL_HEADERS_3_4
		bool "Linux 3.4.x kernel headers"
		depends on !BR2_arc

	config BR2_KERNEL_HEADERS_3_5
		bool "Linux 3.5.x kernel headers"
		depends on BR2_DEPRECATED && !BR2_arc

	config BR2_KERNEL_HEADERS_3_6
		bool "Linux 3.6.x kernel headers"
		depends on BR2_DEPRECATED && !BR2_arc

	config BR2_KERNEL_HEADERS_3_7
		bool "Linux 3.7.x kernel headers"
		depends on BR2_DEPRECATED && !BR2_arc

	config BR2_KERNEL_HEADERS_3_8
		bool "Linux 3.8.x kernel headers"
		depends on BR2_DEPRECATED && !BR2_arc

	config BR2_KERNEL_HEADERS_3_9
		bool "Linux 3.9.x kernel headers"

	config BR2_KERNEL_HEADERS_3_10
		bool "Linux 3.10.x kernel headers"

	config BR2_KERNEL_HEADERS_VERSION
		bool "Manually specified Linux version"

	config BR2_KERNEL_HEADERS_SNAP
		bool "Local Linux snapshot (linux-2.6.tar.bz2)"
endchoice

config BR2_DEFAULT_KERNEL_VERSION
	string "linux version"
	depends on BR2_KERNEL_HEADERS_VERSION
	help
	  Specify the version you want to use.
	  E.G.: 3.6.10

config BR2_DEFAULT_KERNEL_HEADERS
	string
	default "3.0.94"	if BR2_KERNEL_HEADERS_3_0
	default "3.1.10"	if BR2_KERNEL_HEADERS_3_1
	default "3.2.50"	if BR2_KERNEL_HEADERS_3_2
	default "3.3.8"		if BR2_KERNEL_HEADERS_3_3
	default "3.4.60"	if BR2_KERNEL_HEADERS_3_4
	default "3.5.7"		if BR2_KERNEL_HEADERS_3_5
	default "3.6.11"	if BR2_KERNEL_HEADERS_3_6
	default "3.7.10"	if BR2_KERNEL_HEADERS_3_7
	default "3.8.13"	if BR2_KERNEL_HEADERS_3_8
	default "3.9.11"	if BR2_KERNEL_HEADERS_3_9
	default "3.10.10"	if BR2_KERNEL_HEADERS_3_10
	default "2.6"		if BR2_KERNEL_HEADERS_SNAP
	default $BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
