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_10
	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

config BR2_KERNEL_HEADERS_5_10
	bool "Linux 5.10.x kernel headers"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10
	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_10
	bool "5.10.x or later"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_9
	bool "5.9.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8
	bool "5.8.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7
	bool "5.7.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_6
	bool "5.6.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_5
	bool "5.5.x"
	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5

config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4
	bool "5.4.x"
	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.251"	if BR2_KERNEL_HEADERS_4_4
	default "4.9.251"	if BR2_KERNEL_HEADERS_4_9
	default "4.14.215"	if BR2_KERNEL_HEADERS_4_14
	default "4.19.167"	if BR2_KERNEL_HEADERS_4_19
	default "5.4.89"	if BR2_KERNEL_HEADERS_5_4
	default "5.10.7"	if BR2_KERNEL_HEADERS_5_10
	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
