config BR2_PACKAGE_HOST_LINUX_HEADERS
	bool

comment "Kernel Header Options"

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_3_18
	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.

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

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

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

	config BR2_KERNEL_HEADERS_3_10
		bool "Linux 3.10.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10

	config BR2_KERNEL_HEADERS_3_11
		bool "Linux 3.11.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2014_08
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11

	config BR2_KERNEL_HEADERS_3_12
		bool "Linux 3.12.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12

	config BR2_KERNEL_HEADERS_3_13
		bool "Linux 3.13.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2014_08
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13

	config BR2_KERNEL_HEADERS_3_14
		bool "Linux 3.14.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14

	config BR2_KERNEL_HEADERS_3_15
		bool "Linux 3.15.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2014_08
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15

	config BR2_KERNEL_HEADERS_3_16
		bool "Linux 3.16.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2015_02
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16

	config BR2_KERNEL_HEADERS_3_17
		bool "Linux 3.17.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17

	config BR2_KERNEL_HEADERS_3_18
		bool "Linux 3.18.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18

	config BR2_KERNEL_HEADERS_VERSION
		bool "Manually specified Linux version"
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

choice
	bool "Custom kernel headers series"
	depends on BR2_KERNEL_HEADERS_VERSION
	default BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD
	help
	  Set to the kernel headers series you manually set above.

	  This is used to hide/show some packages that have strict
	  requirements on the version of kernel headers.

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18
	bool "3.18.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_17
	bool "3.17.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_16
	bool "3.16.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_15
	bool "3.15.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14
	bool "3.14.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_13
	bool "3.13.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12
	bool "3.12.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_11
	bool "3.11.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10
	bool "3.10.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9
	bool "3.9.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_8
	bool "3.8.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_7
	bool "3.7.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_6
	bool "3.6.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_5
	bool "3.5.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4
	bool "3.4.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_3
	bool "3.3.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_2
	bool "3.2.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_1
	bool "3.1.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_0
	bool "3.0.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD
	bool "2.6.x"

endchoice

config BR2_DEFAULT_KERNEL_HEADERS
	string
	default "3.0.101"	if BR2_KERNEL_HEADERS_3_0
	default "3.2.66"	if BR2_KERNEL_HEADERS_3_2
	default "3.4.106"	if BR2_KERNEL_HEADERS_3_4
	default "3.10.68"	if BR2_KERNEL_HEADERS_3_10
	default "3.11.10"	if BR2_KERNEL_HEADERS_3_11
	default "3.12.37"	if BR2_KERNEL_HEADERS_3_12
	default "3.13.11"	if BR2_KERNEL_HEADERS_3_13
	default "3.14.32"	if BR2_KERNEL_HEADERS_3_14
	default "3.15.10"	if BR2_KERNEL_HEADERS_3_15
	default "3.16.7"	if BR2_KERNEL_HEADERS_3_16
	default "3.17.8"	if BR2_KERNEL_HEADERS_3_17
	default "3.18.6"	if BR2_KERNEL_HEADERS_3_18
	default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
