config BR2_PACKAGE_HOST_LINUX_HEADERS
	bool

comment "Kernel Header Options"

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_3_13
	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_2
		bool "Linux 3.2.x kernel headers"
		depends on !BR2_arc

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

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

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

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

	config BR2_KERNEL_HEADERS_3_9
		bool "Linux 3.9.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2013_11

	config BR2_KERNEL_HEADERS_3_10
		bool "Linux 3.10.x kernel headers"

	config BR2_KERNEL_HEADERS_3_11
		bool "Linux 3.11.x kernel headers"

	config BR2_KERNEL_HEADERS_3_12
		bool "Linux 3.12.x kernel headers"

	config BR2_KERNEL_HEADERS_3_13
		bool "Linux 3.13.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.101"	if BR2_KERNEL_HEADERS_3_0
	default "3.2.54"	if BR2_KERNEL_HEADERS_3_2
	default "3.4.79"	if BR2_KERNEL_HEADERS_3_4
	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.29"	if BR2_KERNEL_HEADERS_3_10
	default "3.11.10"	if BR2_KERNEL_HEADERS_3_11
	default "3.12.10"	if BR2_KERNEL_HEADERS_3_12
	default "3.13.2"	if BR2_KERNEL_HEADERS_3_13
	default "2.6"		if BR2_KERNEL_HEADERS_SNAP
	default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
