config BR2_PACKAGE_HOST_LINUX_HEADERS
	bool

comment "Kernel Header Options"

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_AS_KERNEL if BR2_LINUX_KERNEL
	default BR2_KERNEL_HEADERS_4_4
	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_AS_KERNEL
		bool "Same as kernel"
		depends on BR2_LINUX_KERNEL

	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_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_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_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_4_2
		bool "Linux 4.2.x kernel headers"
		depends on BR2_DEPRECATED_SINCE_2016_02
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2

	config BR2_KERNEL_HEADERS_4_3
		bool "Linux 4.3.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3

	config BR2_KERNEL_HEADERS_4_4
		bool "Linux 4.4.x kernel headers"
		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4

	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 || BR2_KERNEL_HEADERS_AS_KERNEL
	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_4
	bool "4.4.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3
	bool "4.3.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2
	bool "4.2.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2

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.2.78"	if BR2_KERNEL_HEADERS_3_2
	default "3.4.110"	if BR2_KERNEL_HEADERS_3_4
	default "3.10.98"	if BR2_KERNEL_HEADERS_3_10
	default "3.12.55"	if BR2_KERNEL_HEADERS_3_12
	default "3.14.62"	if BR2_KERNEL_HEADERS_3_14
	default "3.17.8"	if BR2_KERNEL_HEADERS_3_17
	default "3.18.27"	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.18"	if BR2_KERNEL_HEADERS_4_1
	default "4.2.8"		if BR2_KERNEL_HEADERS_4_2
	default "4.3.6"		if BR2_KERNEL_HEADERS_4_3
	default "4.4.3"		if BR2_KERNEL_HEADERS_4_4
	default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
