comment "Kernel Header Options"

config BR2_PACKAGE_HOST_LINUX_HEADERS
	bool

choice
	prompt "Kernel Headers"
	default BR2_KERNEL_HEADERS_AS_KERNEL if BR2_LINUX_KERNEL
	default BR2_KERNEL_HEADERS_5_4
	help
	  Select the kernel version to get headers from.

	  The kernel headers must be at least as old as the oldest
	  kernel you intend to run on your target.

	  If you use Buildroot to build a kernel, then you can use
	  the sources from that kernel as source for the headers.

	  If you choose a custom version of the kernel headers, or
	  choose to use the same sources as the kernel, you'll have to
	  select (below) the series of that kernel, so that Buildroot
	  can show or hide packages that have strong requirements on the
	  kernel headers.

config BR2_KERNEL_HEADERS_AS_KERNEL
	bool "Same as kernel being built"
	depends on BR2_LINUX_KERNEL
	select BR2_KERNEL_HEADERS_LATEST if BR2_LINUX_KERNEL_LATEST_VERSION

config BR2_KERNEL_HEADERS_4_4
	bool "Linux 4.4.x kernel headers"
	depends on !BR2_riscv
	depends on !BR2_csky
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4

config BR2_KERNEL_HEADERS_4_9
	bool "Linux 4.9.x kernel headers"
	depends on !BR2_riscv
	depends on !BR2_csky
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9

config BR2_KERNEL_HEADERS_4_14
	bool "Linux 4.14.x kernel headers"
	depends on !BR2_riscv
	depends on !BR2_csky
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14

config BR2_KERNEL_HEADERS_4_19
	bool "Linux 4.19.x kernel headers"
	depends on !BR2_csky
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19

config BR2_KERNEL_HEADERS_5_4
	bool "Linux 5.4.x kernel headers"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4
	select BR2_KERNEL_HEADERS_LATEST

config BR2_KERNEL_HEADERS_VERSION
	bool "Manually specified Linux version"
	help
	  This option allows you to use a specific official version from
	  kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...

	  Note: you cannot use this option to select a _longterm_ 2.6
	  kernel, because these kernels are not located at the standard
	  URL at kernel.org. Instead, select "Custom tarball" and
	  specify the right URL directly.

config BR2_KERNEL_HEADERS_CUSTOM_TARBALL
	bool "Custom tarball"
	help
	  This option allows you to specify a URL pointing to a kernel
	  source tarball. This URL can use any protocol recognized by
	  Buildroot, like http://, ftp://, file:// or scp://.

	  When pointing to a local tarball using file://, you may want
	  to use a make variable like $(TOPDIR) to reference the root of
	  the Buildroot tree.

config BR2_KERNEL_HEADERS_CUSTOM_GIT
	bool "Custom Git repository"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Git repository.

endchoice

# Select this for the latest kernel headers version (for license hashes)
config BR2_KERNEL_HEADERS_LATEST
	bool

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_KERNEL_HEADERS_CUSTOM_TARBALL_LOCATION
	string "URL of custom kernel tarball"
	depends on BR2_KERNEL_HEADERS_CUSTOM_TARBALL

if BR2_KERNEL_HEADERS_CUSTOM_GIT

config BR2_KERNEL_HEADERS_CUSTOM_REPO_URL
	string "URL of custom repository"

config BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION
	string "Custom repository version"
	help
	  Revision to use in the typical format used by
	  Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..

endif

choice
	bool "Custom kernel headers series"
	depends on BR2_KERNEL_HEADERS_VERSION || BR2_KERNEL_HEADERS_AS_KERNEL || \
		   BR2_KERNEL_HEADERS_CUSTOM_TARBALL || BR2_KERNEL_HEADERS_CUSTOM_GIT
	help
	  Specify the kernel headers series you manually selected,
	  above.

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

	  If your kernel headers are more recent than the latest version
	  in the choice, then select the latest version.

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4
	bool "5.4.x or later"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_3
	bool "5.3.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_2
	bool "5.2.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_1
	bool "5.1.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_0
	bool "5.0.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_20
	bool "4.20.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19
	bool "4.19.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_18
	bool "4.18.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_17
	bool "4.17.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_16
	bool "4.16.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15
	bool "4.15.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14
	bool "4.14.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_13
	bool "4.13.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_12
	bool "4.12.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_11
	bool "4.11.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_10
	bool "4.10.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9
	bool "4.9.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8
	bool "4.8.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7
	bool "4.7.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6
	bool "4.6.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5
	bool "4.5.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5

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 "4.4.234"	if BR2_KERNEL_HEADERS_4_4
	default "4.9.234"	if BR2_KERNEL_HEADERS_4_9
	default "4.14.195"	if BR2_KERNEL_HEADERS_4_14
	default "4.19.142"	if BR2_KERNEL_HEADERS_4_19
	default "5.4.61"	if BR2_KERNEL_HEADERS_5_4
	default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
	default "custom"	if BR2_KERNEL_HEADERS_CUSTOM_TARBALL
	default BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION \
		if BR2_KERNEL_HEADERS_CUSTOM_GIT
