config BR2_PACKAGE_HOST_LINUX_HEADERS
	bool

comment "Kernel Header Options"

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_4_1
	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 && !BR2_nios2
		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 && !BR2_nios2
		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 && !BR2_nios2
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4

	config BR2_KERNEL_HEADERS_3_10
		bool "Linux 3.10.x kernel headers"
		depends on !BR2_nios2
		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
		depends on !BR2_nios2
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11

	config BR2_KERNEL_HEADERS_3_12
		bool "Linux 3.12.x kernel headers"
		depends on !BR2_nios2
		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
		depends on !BR2_nios2
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13

	config BR2_KERNEL_HEADERS_3_14
		bool "Linux 3.14.x kernel headers"
		depends on !BR2_nios2
		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
		depends on !BR2_nios2
		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
		depends on !BR2_nios2
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16

	config BR2_KERNEL_HEADERS_3_17
		bool "Linux 3.17.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2015_05
		depends on !BR2_nios2
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17

	config BR2_KERNEL_HEADERS_3_18
		bool "Linux 3.18.x kernel headers"
		depends on !BR2_nios2
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18

	config BR2_KERNEL_HEADERS_3_19
		bool "Linux 3.19.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2015_08
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19

	config BR2_KERNEL_HEADERS_4_0
		bool "Linux 4.0.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2015_08
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0

	config BR2_KERNEL_HEADERS_4_1
		bool "Linux 4.1.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1

	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_4_1
	bool "4.1.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0
	bool "4.0.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_19
	bool "3.19.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19

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.69"	if BR2_KERNEL_HEADERS_3_2
	default "3.4.108"	if BR2_KERNEL_HEADERS_3_4
	default "3.10.85"	if BR2_KERNEL_HEADERS_3_10
	default "3.11.10"	if BR2_KERNEL_HEADERS_3_11
	default "3.12.45"	if BR2_KERNEL_HEADERS_3_12
	default "3.13.11"	if BR2_KERNEL_HEADERS_3_13
	default "3.14.49"	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.19"	if BR2_KERNEL_HEADERS_3_18
	default "3.19.8"	if BR2_KERNEL_HEADERS_3_19
	default "4.0.9"		if BR2_KERNEL_HEADERS_4_0
	default "4.1.4"		if BR2_KERNEL_HEADERS_4_1
	default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
