if BR2_KERNEL_LINUX_ADVANCED
# --- "Linux kernel options"
# This file exports the following symbols for use by Makefile's
#
# BR2_PACKAGE_LINUX
#
# BR2_KERNEL_SITE
# BR2_DOWNLOAD_LINUX26_VERSION
# BR2_LINUX26_VERSION
#
# BR2_KERNEL_PATCH_SITE
# BR2_KERNEL_PATCH
#
# BR2_LINUX26_CUSTOM
# BR2_CUSTOM_LINUX26_PATCH_SITE
# BR2_CUSTOM_LINUX26_PATCH
#
# BR2_LINUX_BSP_PATCH
#
# BR2_PACKAGE_LINUX_USE_KCONFIG
# BR2_PACKAGE_LINUX_USE_DEFCONFIG
# BR2_PACKAGE_LINUX_USE_XCONFIG
# BR2_PACKAGE_LINUX_KCONFIG
#
# BR2_PACKAGE_LINUX_FORMAT
#
# BR2_LINUX_COPYTO_ROOTFS
# BR2_LINUX_COPYTO_TFTPBOOT
# BR2_LINUX_COPYTO
#

source "target/linux/Config.in.versions"

config BR2_KERNEL_PATCH_LEVEL
	string
	default $(BR2_KERNEL_LATEST_2_6_29) if BR2_LINUX_2_6_29 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_28) if BR2_LINUX_2_6_28 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_27) if BR2_LINUX_2_6_27 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_26) if BR2_LINUX_2_6_26 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_25) if BR2_LINUX_2_6_25 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_24) if BR2_LINUX_2_6_24 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_23) if BR2_LINUX_2_6_23 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_22) if BR2_LINUX_2_6_22 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_21) if BR2_LINUX_2_6_21 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default $(BR2_KERNEL_LATEST_2_6_20) if BR2_LINUX_2_6_20 && BR2_KERNEL_ADD_LATEST_MINORPATCH
	default "$(BR2_KERNEL_MINORLEVEL)" if BR2_KERNEL_ADD_MINORPATCH

config BR2_KERNEL_NEXT_VERSION
	string
	default "2.6.29" if BR2_LINUX_2_6_28
	default "2.6.28" if BR2_LINUX_2_6_27
	default "2.6.27" if BR2_LINUX_2_6_26
	default "2.6.26" if BR2_LINUX_2_6_25
	default "2.6.25" if BR2_LINUX_2_6_24
	default "2.6.24" if BR2_LINUX_2_6_23
	default "2.6.23" if BR2_LINUX_2_6_22
	default "2.6.22" if BR2_LINUX_2_6_21
	default "2.6.21" if BR2_LINUX_2_6_20

config BR2_KERNEL_THIS_VERSION
	string
	default "2.6.29" if BR2_LINUX_2_6_29
	default "2.6.28" if BR2_LINUX_2_6_28
	default "2.6.27" if BR2_LINUX_2_6_27
	default "2.6.26" if BR2_LINUX_2_6_26
	default "2.6.25" if BR2_LINUX_2_6_25
	default "2.6.24" if BR2_LINUX_2_6_24
	default "2.6.23" if BR2_LINUX_2_6_23
	default "2.6.22" if BR2_LINUX_2_6_22
	default "2.6.21" if BR2_LINUX_2_6_21
	default "2.6.20" if BR2_LINUX_2_6_20

config BR2_KERNEL_SITE
	string
	default "http://ftp.kernel.org/pub/linux/kernel/v2.6"

config BR2_MM_PATCH_SITE
	string
	default "http://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6"

config BR2_MM_PATCH_DIR
	string
	default "$(BR2_DOWNLOAD_LINUX26_VERSION)/$(LINUX26_LATEST_MM_VERSION)" if BR2_KERNEL_ADD_LATEST_MM_PATCH
	default "$(BR2_DOWNLOAD_LINUX26_VERSION)/$(BR2_LINUX26_MM_VERSION)" if BR2_KERNEL_ADD_MM_PATCH

config BR2_RC_MM_PATCH_DIR
	string
	default "$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)/2.6.$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)"

config BR2_KERNEL_PATCH_SITE
	string
	default "$(BR2_KERNEL_SITE)" if 			BR2_KERNEL_ADD_LATEST_MINORPATCH
	default "$(BR2_KERNEL_SITE)" if 			BR2_KERNEL_ADD_MINORPATCH
	default "$(BR2_KERNEL_SITE)/testing" if 		BR2_KERNEL_ADD_LATEST_RC_PATCH
	default "$(BR2_KERNEL_SITE)/testing" if 		BR2_KERNEL_ADD_RC_PATCH
	default "$(BR2_KERNEL_SITE)/snapshots" if 		BR2_KERNEL_ADD_LATEST_SNAPSHOT
	default "$(BR2_KERNEL_SITE)/snapshots" if 		BR2_KERNEL_ADD_SNAPSHOT
	default "$(BR2_MM_PATCH_SITE)/$(BR2_MM_PATCH_DIR)/" if	BR2_KERNEL_ADD_LATEST_MM_PATCH
	default "$(BR2_MM_PATCH_SITE)/$(BR2_MM_PATCH_DIR)/" if	BR2_KERNEL_ADD_MM_PATCH
	default $(BR2_CUSTOM_LINUX26_PATCH_SITE) if 		BR2_LINUX26_CUSTOM

config BR2_LINUX26_RC_VERSION
	string
	default "$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)" if BR2_KERNEL_ADD_RC_PATCH

config BR2_LINUX26_SNAPSHOT_VERSION
	string
	default "$(BR2_KERNEL_THIS_VERSION)-git$(BR2_KERNEL_GIT_LEVEL)" if BR2_KERNEL_ADD_SNAPSHOT

config BR2_LINUX26_RC_SNAPSHOT_VERSION
	string
	default "$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-git$(BR2_KERNEL_GIT_LEVEL)" if BR2_KERNEL_ADD_SNAPSHOT

config BR2_LINUX26_MM_VERSION
	string
	default "$(BR2_KERNEL_THIS_VERSION)-mm$(BR2_KERNEL_MM_LEVEL)" if BR2_KERNEL_ADD_MM_PATCH

config BR2_LINUX26_RC_MM_VERSION
	string
	default "$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)" if BR2_KERNEL_ADD_MM_PATCH

# ---------------------------------------------------------------------------

choice
	prompt "Linux Kernel Version"
	default BR2_LINUX_2_6_STABLE
	help
	  Select the specific Linux version you want to use

config BR2_LINUX_2_6_STABLE
	bool "The latest stable Linux kernel (2.6.29.4)"

config BR2_LINUX_2_6_29
	bool "Linux 2.6.29"
	select BR2_KERNEL_BASE
	
config BR2_LINUX_2_6_28
	bool "Linux 2.6.28"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_27
	bool "Linux 2.6.27"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_26
	bool "Linux 2.6.26"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_25
	bool "Linux 2.6.25"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_24
	bool "Linux 2.6.24"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_23
	bool "Linux 2.6.23"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_22
	bool "Linux 2.6.22"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_21
	bool "Linux 2.6.21"
	select BR2_KERNEL_BASE

config BR2_LINUX_2_6_20
	bool "Linux 2.6.20"
	select BR2_KERNEL_BASE

config BR2_LINUX26_CUSTOM
	bool "Linux <custom> version"

endchoice

if BR2_LINUX26_CUSTOM
config BR2_CUSTOM_DOWNLOAD_LINUX26_VERSION
	string "Linux Tarball version"
	default "2.6.30"
	help
	  Specify any .tar.bz2 file

config BR2_CUSTOM_LINUX26_VERSION
	string "Linux Version"
	default "2.6.30"
	help
	  Specify what the linux version will be called

config BR2_CUSTOM_LINUX26_PATCH
	string "patch name"
	default "patch-2.6.30-rc4.bz2"
	help
	  Specify a patch to be downloaded

config BR2_CUSTOM_LINUX26_PATCH_SITE
	string "patch site"
	default "http://www.kernel.org/pub/linux/kernel/v2.6/testing"
	help
	  Specify from where the patch will be downloaded.
endif

# -----------------------------------------------

menu "Patches"
	depends on BR2_PACKAGE_LINUX

config BR2_KERNEL_ADD_KERNEL_ORG_PATCH
	bool "Add kernel.org patch"
	depends on BR2_KERNEL_BASE
	help
	  Add pre, snapshot or -mm patches
	  from http://www.kernel.org/

config BR2_KERNEL_ADD_LATEST
	bool "Use only the latest patch version"
	default y
	depends on BR2_KERNEL_ADD_KERNEL_ORG_PATCH
	help
	  Restrict the choices to the latest versions

choice
	prompt "Add a kernel.org patch to the Linux Kernel"
	depends on BR2_PACKAGE_LINUX
	depends on !BR2_KERNEL_PREPATCHED
	depends on BR2_KERNEL_ADD_KERNEL_ORG_PATCH
	help
	  Select a patch to add to the Linux kernel

config BR2_KERNEL_ADD_LATEST_MINORPATCH
	bool "Add _latest_ '.#' minor patch"
	depends on BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_MINORPATCH
	bool "Add a '.#' minor patch"
	depends on !BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_LATEST_RC_PATCH
	bool "Add _latest_ '-rc#' patch"
	depends on BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_RC_PATCH
	bool "Add an '-rc#' patch"
	depends on !BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_LATEST_SNAPSHOT
	bool "Add _latest_ 'snapshot' patch"
	depends on BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_SNAPSHOT
	bool "Add a 'snapshot' patch (linux-2.6.X-rc#-git#)"
	depends on !BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_LATEST_MM_PATCH
	bool "Add _latest_ '-mm' patch for the stable linux kernel"
	depends on BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

config BR2_KERNEL_ADD_MM_PATCH
	bool "Add an '-mm#' patch for the stable linux kernel"
	depends on !BR2_KERNEL_ADD_LATEST
	select BR2_KERNEL_ADD_PATCH

endchoice

config BR2_KERNEL_ADD_PATCH
	bool

config BR2_KERNEL_MINORLEVEL
	string "patch level"
	default ""
	depends on BR2_KERNEL_ADD_MINORPATCH

config BR2_KERNEL_RC_LEVEL
	string "-rc patch level"
	default ""
	depends on BR2_KERNEL_ADD_RC_PATCH || BR2_KERNEL_ADD_SNAPSHOT

config BR2_KERNEL_GIT_LEVEL
	string "-git patch level"
	default ""
	depends on BR2_KERNEL_ADD_SNAPSHOT

config BR2_KERNEL_MM_LEVEL
	string "-mm patch level"
	default ""
	depends on BR2_KERNEL_ADD_MM_PATCH

source "target/device/Config.in.linux.patches"

config BR2_LINUX_BSP_PATCH
	string "Additional patch to apply (from \$(DL_DIR))"
	default ""
	help
	  Apply a patch located in \$(DL_DIR).
	  You need to download or create this before
	  enable this option

config BR2_KERNEL_PATCH
	string
	default "patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2" if	BR2_KERNEL_ADD_LATEST_MINORPATCH
	default "patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2" if	BR2_KERNEL_ADD_MINORPATCH
	default "patch-$(LINUX26_LATEST_RC_VERSION).bz2" if					BR2_KERNEL_ADD_LATEST_RC_PATCH
	default "patch-$(BR2_LINUX26_RC_VERSION).bz2" if					BR2_KERNEL_ADD_RC_PATCH
	default "patch-$(LINUX26_LATEST_GIT_VERSION).bz2" if					BR2_KERNEL_ADD_LATEST_SNAPSHOT
	default "patch-$(BR2_LINUX26_SNAPSHOT_VERSION).bz2" if					BR2_KERNEL_ADD_SNAPSHOT
	default "$(LINUX26_LATEST_MM_VERSION).bz2" if						BR2_KERNEL_ADD_LATEST_MM_PATCH
	default "$(BR2_LINUX26_MM_VERSION).bz2"	if						BR2_KERNEL_ADD_MM_PATCH
	default "$(BR2_CUSTOM_LINUX26_PATCH)" if						BR2_LINUX26_CUSTOM

config BR2_EXTRA_VERSION
	string
	default ".$(BR2_KERNEL_PATCH_LEVEL)" if					BR2_KERNEL_ADD_LATEST_MINORPATCH
	default ".$(BR2_KERNEL_PATCH_LEVEL)" if					BR2_KERNEL_ADD_MINORPATCH
	default "$(BR2_KERNEL_RC_LEVEL)" if					BR2_KERNEL_ADD_LATEST_RC_PATCH
	default "$(BR2_KERNEL_RC_LEVEL)" if					BR2_KERNEL_ADD_RC_PATCH
	default "$(BR2_KERNEL_GIT_LEVEL)" if					BR2_KERNEL_ADD_LATEST_SNAPSHOT
	default "$(BR2_KERNEL_GIT_LEVEL)" if					BR2_KERNEL_ADD_SNAPSHOT
	default	"$(BR2_KERNEL_MM_LEVEL)" if					BR2_KERNEL_ADD_LATEST_MM_PATCH
	default	"$(BR2_KERNEL_MM_LEVEL)" if					BR2_KERNEL_ADD_MM_PATCH
	default	"$(BR2_CUSTOM_LINUX26_VERSION)" if				BR2_LINUX26_CUSTOM
endmenu

# -----------------------------------------------

config BR2_KERNEL_PREPATCHED
	bool

config BR2_KERNEL_BASE
	bool

config BR2_KERNEL_LATEST
	bool

config BR2_DOWNLOAD_LINUX26_VERSION
	string
	default "$(BR2_KERNEL_THIS_VERSION)" if					BR2_KERNEL_BASE
	default "$(BR2_KERNEL_CURRENT_VERSION)" if				BR2_LINUX_2_6_STABLE
	default "$(BR2_DEFAULT_KERNEL_HEADERS)" if				BR2_KERNEL_LINUX_HEADERS_VERSION
	default  $(BR2_CUSTOM_DOWNLOAD_LINUX26_VERSION) if			BR2_LINUX26_CUSTOM

config BR2_LINUX26_VERSION
	string
	default "$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)" if	BR2_KERNEL_ADD_LATEST_MINORPATCH&& BR2_KERNEL_BASE
	default "$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)" if	BR2_KERNEL_ADD_MINORPATCH	&& BR2_KERNEL_BASE
	default "$(LINUX26_LATEST_RC_VERSION)" if				BR2_KERNEL_ADD_LATEST_RC_PATCH
	default "$(BR2_LINUX26_RC_VERSION)" if					BR2_KERNEL_ADD_RC_PATCH		&& BR2_KERNEL_BASE
	default "$(LINUX26_LATEST_GIT_VERSION)" if 				BR2_KERNEL_ADD_LATEST_SNAPSHOT
	default "$(BR2_LINUX26_SNAPSHOT_VERSION)" if				BR2_KERNEL_ADD_SNAPSHOT		&& BR2_KERNEL_BASE
	default "$(LINUX26_LATEST_MM_VERSION)" if 				BR2_KERNEL_ADD_LATEST_MM_PATCH
	default "$(BR2_LINUX26_MM_VERSION)" if					BR2_KERNEL_ADD_MM_PATCH		&& BR2_KERNEL_BASE
	default "$(BR2_KERNEL_THIS_VERSION)" if				      ! BR2_KERNEL_ADD_PATCH		&& BR2_KERNEL_BASE
	default "$(BR2_KERNEL_CURRENT_VERSION)"if				BR2_LINUX_2_6_STABLE
	default "$(BR2_CUSTOM_LINUX26_VERSION)" if				BR2_LINUX26_CUSTOM

menu "Linux Kernel Configuration"

choice
	prompt "Linux Kernel Configuration"
	depends on BR2_PACKAGE_LINUX
	default BR2_PACKAGE_LINUX_USE_KCONFIG
	help
	  Select the way to configure the Linux

config BR2_PACKAGE_LINUX_USE_KCONFIG
	bool ".config file"
	depends on BR2_PACKAGE_LINUX
	help
	  kernel's .config to use to build a kernel for the target.

	  If the above setting is empty, you can change the default
	  board-imposed value by passing LINUX26_KCONFIG=<path> to
	  make.

config BR2_PACKAGE_LINUX_USE_DEFCONFIG
	bool "Run make <board>_defconfig "
	depends on BR2_PACKAGE_LINUX
	help
	  Configure Linux by make <board>_defconfig
	  You have to supply a BOARD_NAME, either by
	  defining it in a BSP or by make BOARD_NAME=<board>

config BR2_PACKAGE_LINUX_USE_XCONFIG
	bool "Run make ARCH=$(ARCH) [xconfig|menuconfig] before build"
	depends on BR2_PACKAGE_LINUX
	help
	  Configure Linux by make xconfig|menuconfig
endchoice

config BR2_PACKAGE_LINUX_KCONFIG
	string ".config file"
	depends on BR2_PACKAGE_LINUX_USE_KCONFIG
	default "$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-$(BR2_LINUX26_VERSION).config"
	help
	  kernel's .config to use to build a kernel for the target.

	  If the above setting is empty, you can change the default
	  board-imposed value by passing LINUX26_KCONFIG=<path> to
	  make.

choice
	prompt "Preferred config tool"
	default BR2_MAKE_MENUCONFIG
	depends on BR2_PACKAGE_LINUX_USE_XCONFIG
	help
	  Define the preferred tool to invoke if a configuration is invalid

config	BR2_MAKE_XCONFIG
	bool "make xconfig (needs QT3 headers on host)"
	help
	  Run "make xconfig" if kernel ".config" is invalid

config	BR2_MAKE_MENUCONFIG
	bool "make menuconfig"
	help
	  Run "make menuconfig" if kernel ".config" is invalid

endchoice

config BR2_KERNEL_CONFIG_METHOD
	string
	default "xconfig"	if BR2_MAKE_XCONFIG
	default "menuconfig"	if BR2_MAKE_MENUCONFIG

endmenu

choice
	prompt "kernel binary format"
	depends on BR2_PACKAGE_LINUX
	default BR2_LINUX_BIN_BZIMAGE if BR2_i386
	default BR2_LINUX_BIN_BZIMAGE if BR2_x86_64
	default BR2_LINUX_BIN_UIMAGE
	help
	  Select the specific Linux binary type you want to use

config BR2_LINUX_BIN_BZIMAGE
	bool "bzImage"
	depends on BR2_PACKAGE_LINUX

config BR2_LINUX_BIN_UIMAGE
	bool "uImage"
	depends on BR2_PACKAGE_LINUX
	select BR2_TARGET_UBOOT

config BR2_LINUX_BIN_VMLINUX
	bool "vmlinux"
	depends on BR2_PACKAGE_LINUX

config BR2_LINUX_BIN_ZIMAGE
	bool "zImage"
	depends on BR2_PACKAGE_LINUX

config BR2_LINUX_BIN_CUSTOM
	bool "<custom> Linux binary"
	depends on BR2_PACKAGE_LINUX
	help
	  Build custom Linux binary format

endchoice

config BR2_LINUX_BIN_CUSTOM_BIN
	string "custom kernel binary format"
	depends on BR2_LINUX_BIN_CUSTOM
	default ""
	help
	  Which Linux binary format?

config BR2_PACKAGE_LINUX_FORMAT
	string #"kernel binary format"
	depends on BR2_PACKAGE_LINUX
	default "bzImage" if BR2_LINUX_BIN_BZIMAGE
	default "uImage" if BR2_LINUX_BIN_UIMAGE
	default "vmlinux" if BR2_LINUX_BIN_VMLINUX
	default "zImage" if BR2_LINUX_BIN_ZIMAGE
	default $(BR2_LINUX_BIN_CUSTOM_BIN) if BR2_LINUX_BIN_CUSTOM
	help
	  kernel binary format.
	  Popular values include:
	  - bzImage
	  - zImage
	  - vmlinux
	  - zImage
	  - xipImage
	  and other, architecture dependant formats.

	  Note that the default format is supposed to be set by your
	  board-description, if any.
	  i386 and compatible default to bzImage if nothing was given
	  above.
	  If the above setting is empty, you can change the default
	  board-imposed value by passing LINUX26_FORMAT=<string> to
	  make.

menu "Destinations for linux kernel binaries"

config BR2_LINUX_COPYTO_ROOTFS
	bool "Copy kernel to root file system"
	depends on BR2_PACKAGE_LINUX
	help
	  Copy kernel to <root>/boot directory

config BR2_LINUX_COPYTO_TFTPBOOT
	bool "Copy kernel to /tftpboot"
	help
	  Copy kernel to /tftpboot directory

config BR2_LINUX_COPYTO
	string "Copy kernel to <dir>..."
	default ""
	help
	  Copy kernel to secondary location

config BR2_LINUX_COPY_CONFIGURATION
	bool "Copy buildroot configuration to Linux file system"
	help
	  The configuration files for buildroot, uclibc, busybox and linux
	  are copied to the "<root>/boot" directory.

endmenu
endif

