menu "Kernel"

config BR2_LINUX_KERNEL
	bool "Linux Kernel"
	help
	  Enable this option if you want to build a Linux kernel for
	  your embedded device

if BR2_LINUX_KERNEL

#
# Version selection. We provide the choice between:
#
#  1. A single fairly recent stable kernel version
#  2. In case an internal toolchain has been built, the same kernel
#     version as the kernel headers
#  3. A custom stable version
#  4. A custom tarball
#
choice
	prompt "Kernel version"
	default BR2_LINUX_KERNEL_2_6_37

config BR2_LINUX_KERNEL_2_6_37
	bool "2.6.37.2"

config BR2_LINUX_KERNEL_SAME_AS_HEADERS
	bool "Same as toolchain kernel headers"
	depends on BR2_TOOLCHAIN_BUILDROOT
	help
	  This option will re-use the same kernel sources as the one
	  that have been used for the kernel headers of the
	  cross-compiling toolchain. Having the same version for the
	  kernel running on the system and for the kernel headers is
	  not a requirement, but using the same version allows to
	  download only one tarball of the kernel sources.

config BR2_LINUX_KERNEL_CUSTOM_VERSION
	bool "Custom version"
	help
	  This option allows to use a specific 2.6.x or 2.6.x.y
	  official versions, as available on kernel.org

config BR2_LINUX_KERNEL_CUSTOM_TARBALL
	bool "Custom tarball"
	help
	  This option allows to specify the http or ftp location of a
	  specific kernel source tarball

endchoice

config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
	string "Kernel version"
	depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
	default "2.6.37.2"

config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
	string "URL of custom kernel tarball"
	depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL

config BR2_LINUX_KERNEL_VERSION
	string
	default "2.6.37" if BR2_LINUX_KERNEL_2_6_37
	default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION
	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL

#
# Patch selection
#

config BR2_LINUX_KERNEL_PATCH
	string "Custom kernel patches"
	help
	  A space-separated list of patches to apply to the
	  kernel. Each patch can be described as an URL, a local file
	  path, or a directory. In the case of a directory, all files
	  matching linux-*.patch in the directory will be applied.

#
# Configuration selection
#

choice
	prompt "Kernel configuration"
	default BR2_LINUX_KERNEL_USE_DEFCONFIG

config BR2_LINUX_KERNEL_USE_DEFCONFIG
	bool "Using a defconfig"

config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	bool "Using a custom config file"

endchoice

config BR2_LINUX_KERNEL_DEFCONFIG
	string "Defconfig name"
	depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
	help
	 Name of the defconfig file to use, without the trailing
	 _defconfig

config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	help
	  Path to the kernel configuration file

#
# Binary format
#

choice
	prompt "Kernel binary format"

config BR2_LINUX_KERNEL_UIMAGE
	bool "uImage"
	depends on BR2_arm || BR2_armeb || BR2_bfin || BR2_powerpc || BR2_avr32 || BR2_sh || BR2_sh64

config BR2_LINUX_KERNEL_BZIMAGE
	bool "bzImage"
	depends on BR2_i386 || BR2_x86_64

config BR2_LINUX_KERNEL_ZIMAGE
	bool "zImage"
	depends on BR2_arm || BR2_armeb || BR2_powerpc || BR2_sparc || BR2_sh || BR2_sh64 || BR2_xtensa

config BR2_LINUX_KERNEL_VMLINUX_BIN
	bool "vmlinux.bin"
	depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64

config BR2_LINUX_KERNEL_VMLINUX
	bool "vmlinux"
	depends on BR2_mips || BR2_mipsel

endchoice

endif # BR2_LINUX_KERNEL

endmenu
