# Choose the kernel headers to use for kernel-headers target. This is
# ignored if you are building your own kernel or using the system kernel.
#

comment "Kernel Header Options"

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_3_2
	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_2_6_35
		bool "Linux 2.6.35.x kernel headers"

	config BR2_KERNEL_HEADERS_2_6_36
		bool "Linux 2.6.36.x kernel headers"

	config BR2_KERNEL_HEADERS_2_6_37
		bool "Linux 2.6.37.x kernel headers"

	config BR2_KERNEL_HEADERS_2_6_38
		bool "Linux 2.6.38.x kernel headers"

	config BR2_KERNEL_HEADERS_2_6_39
		bool "Linux 2.6.39.x kernel headers"

	config BR2_KERNEL_HEADERS_3_0
		bool "Linux 3.0.x kernel headers"

	config BR2_KERNEL_HEADERS_3_1
		bool "Linux 3.1.x kernel headers"

	config BR2_KERNEL_HEADERS_3_2
		bool "Linux 3.2.x kernel headers"

	config BR2_KERNEL_HEADERS_VERSION
		bool "Linux 2.6 (manually specified 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.: 2.6.38

config BR2_DEFAULT_KERNEL_HEADERS
	string
	default "2.6.35.14"	if BR2_KERNEL_HEADERS_2_6_35
	default "2.6.36.4"	if BR2_KERNEL_HEADERS_2_6_36
	default "2.6.37.6"	if BR2_KERNEL_HEADERS_2_6_37
	default "2.6.38.8"	if BR2_KERNEL_HEADERS_2_6_38
	default "2.6.39.4"	if BR2_KERNEL_HEADERS_2_6_39
	default "3.0.22"	if BR2_KERNEL_HEADERS_3_0
	default "3.1.10"	if BR2_KERNEL_HEADERS_3_1
	default "3.2.7"		if BR2_KERNEL_HEADERS_3_2
	default "2.6"		if BR2_KERNEL_HEADERS_SNAP
	default $BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
