###############################################################################
#
# Linux kernel 2.6 target (Advanced configuration)
#
###############################################################################
ifneq ($(filter $(TARGETS),linux26),)

# -----------------------------------------------------------------------------
# Make sure LINUX_HEADERS_VERSION is defined
ifeq ($(LINUX_HEADERS_VERSION),)
# We did not have headers (this is for real???)
LINUX_HEADERS_VERSION:=2.6.22.1
endif

# -----------------------------------------------------------------------------
# STRATEGY FOR DOWNLOAD_LINUX26_VERSION
# 1. Use definition from user Makefile
# 2. Use definition from Kconfig
# 3. Use Linux Headers version
# 4. Use default (2.6.22.1)
ifeq ($(DOWNLOAD_LINUX26_VERSION),)
ifneq ($(BR2_DOWNLOAD_LINUX26_VERSION),)
DOWNLOAD_LINUX26_VERSION:=$(strip $(subst ",,$(BR2_DOWNLOAD_LINUX26_VERSION)))
#"))
else
DOWNLOAD_LINUX26_VERSION:=$(LINUX_HEADERS_VERSION)
endif
endif

# -----------------------------------------------------------------------------
# STRATEGY FOR LINUX26_VERSION
# 1. Use definition from user Makefile
# 2. Use definition from Kconfig
# 3. Use Linux Headers version
# 4. Use default (2.6.22.1)
ifeq ($(LINUX26_VERSION),)
ifneq ($(BR2_LINUX26_VERSION),)
LINUX26_VERSION:=$(strip $(subst ",,$(BR2_LINUX26_VERSION)))
#"))
else
LINUX26_VERSION:=$(LINUX_HEADERS_VERSION)
endif
endif

# Ask the kernel what version number it will use when installing modules
LINUX26_VERSION_PROBED = `$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) -s kernelrelease`

ifeq ($(BOARD_PATH),)
BOARD_PATH:=$(strip $(subst ",,$(BR2_BOARD_PATH)))
#"))
endif

# Version of Linux AFTER patches
LINUX26_DIR:=$(PROJECT_BUILD_DIR)/linux-$(LINUX26_VERSION)

# for packages that need it
LINUX_VERSION:=$(LINUX26_VERSION)
LINUX_DIR:=$(LINUX26_DIR)

# -----------------------------------------------------------------------------
# Define source name and sites
LINUX26_SOURCE:=linux-$(DOWNLOAD_LINUX26_VERSION).tar.bz2
LINUX26_SITE:=$(strip $(subst ",,$(BR2_KERNEL_SITE)))
#"))

LINUX26_PATCH_SOURCE:=$(strip $(subst ",,$(BR2_KERNEL_PATCH)))
#"))
LINUX26_PATCH_SITE:=$(strip $(subst ",,$(BR2_KERNEL_PATCH_SITE)))
#"))

LINUX26_BSP_PATCH:=$(strip $(subst ",,$(BR2_LINUX_BSP_PATCH)))
#"))

LINUX_HEADERS_DEPENDS:=  $(LINUX26_BSP_PATCH)

ifneq ($(LINUX26_PATCH_SOURCE),)
LINUX_HEADERS_DEPENDS+=$(DL_DIR)/$(LINUX26_PATCH_SOURCE)
endif

# ------------------------------------
# kernel patches provided by buildroot
ifeq ($(strip $(LINUX26_PATCH_DIR)),)
LINUX26_PATCH_DIR:=$(BOARD_PATH)/kernel-patches/
endif

# kernel architecture patches provided by buildroot
KERNEL_ARCH_PATCH_DIR:=$(strip $(subst ",,$(BR2_KERNEL_ARCH_PATCH_DIR)))
#"))




# -----------------------------------------------------------------------------
# Linux kernel configuration file
# This is used if BR2_PACKAGE_LINUX_USE_KCONFIG is set
# Has to be set by the target/device
# If it is not set by the target/device, then pick the one from .config
ifndef LINUX26_KCONFIG
ifneq ($(strip $(subst ",,$(BR2_PACKAGE_LINUX_KCONFIG))),)
LINUX26_KCONFIG:=$(strip $(subst ",,$(BR2_PACKAGE_LINUX_KCONFIG)))
#"))
#"))
else
ifeq ($(BR2_i386),y)
LINUX26_KCONFIG:=$(BOARD_PATH)/linux26.config
else
LINUX26_KCONFIG:=$(BOARD_PATH)/linux-$(LINUX26_VERSION).config
endif
endif
endif

KERNEL_CONFIG_METHOD:=$(strip $(subst ",,$(BR2_KERNEL_CONFIG_METHOD)))
#"))
ifeq ($(KERNEL_CONFIG_METHOD),)
KERNEL_CONFIG_METHOD:=menuconfig
endif

# -----------------------------------------------------------------------------
ifndef LINUX26_FORMAT
ifneq ($(strip $(subst ",,$(BR2_PACKAGE_LINUX_FORMAT))),)
#"))
LINUX26_FORMAT:=$(strip $(subst ",,$(BR2_PACKAGE_LINUX_FORMAT)))
#"))
else
LINUX26_FORMAT:=zImage
endif
endif

# -----------------------------------------------------------------------------
# Has to be set by the target/device

LINUX26_MKIMAGE_DIR:=
LINUX26_MKIMAGE_DEP:=

# --------------
# VMLINUX
ifeq ($(LINUX26_FORMAT),vmlinux)
ifeq ($(LINUX26_BINLOC),)
LINUX26_BINLOC:=$(LINUX26_FORMAT)
endif
endif

# --------------
# UIMAGE
ifeq ($(LINUX26_FORMAT),uImage)
LINUX26_MKIMAGE_DIR:=$(PROJECT_BUILD_DIR)/u-boot-tools
LINUX26_MKIMAGE_DEP:=$(LINUX26_MKIMAGE_DIR)/mkimage
ifeq ($(LINUX26_BINLOC),)
LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT)
endif
endif

# --------------
# ZIMAGE
ifeq ($(LINUX26_FORMAT),zImage)
ifeq ($(LINUX26_BINLOC),)
LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT)
endif
endif

# --------------
# BZIMAGE
ifeq ($(LINUX26_FORMAT),bzImage)
ifeq ($(LINUX26_BINLOC),)
LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/bzImage
endif
endif

ROOTFS_STRIPPED_SUFFIX=$(strip $(subst ",,$(ROOTFS_SUFFIX)))
#"))
# -----------------------------------------------------------------------------
# File name for the Linux kernel binary
LINUX26_KERNEL_NAME:=$(LINUX26_FORMAT)$(ROOTFS_STRIPPED_SUFFIX)


ifeq ($(BOARD_NAME),)
BOARD_NAME=$(ARCH)
endif

ifndef LINUX26_KERNEL
LINUX26_KERNEL:=$(BINARIES_DIR)/$(LINUX26_KERNEL_NAME)
endif

# for packages that need it
LINUX_KERNEL:=$(LINUX26_KERNEL)


# -----------------------------------------------------------------------------
LINUX26_BZCAT:=$(BZCAT)

__LINUX26_NO_PIC=-fPIC -fpic -DPIC -fwrapv -ftrapv
LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
	ARCH=$(KERNEL_ARCH) \
	CFLAGS_KERNEL="$(filter-out $(__LINUX26_NO_PIC),$(TARGET_CFLAGS))" \
	INSTALL_MOD_PATH=$(TARGET_DIR) \
	CROSS_COMPILE=$(KERNEL_CROSS) \
	LDFLAGS="$(TARGET_LDFLAGS)" \
	LZMA="$(LZMA)" \
	PATH=$(LINUX26_MKIMAGE_DIR):$(PATH)

# =============================================================================
# ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION)))

ifneq ($(strip $(LINUX26_SOURCE)),$(strip $(LINUX_HEADERS_SOURCE)))
$(DL_DIR)/$(LINUX26_SOURCE):
	 $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION))

ifneq ($(strip $(LINUX26_PATCH_SOURCE)),)
$(DL_DIR)/$(LINUX26_PATCH_SOURCE):
	 $(call DOWNLOAD,$(LINUX26_PATCH_SITE),$(LINUX26_PATCH_SOURCE))
endif

$(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE)
	rm -rf $(LINUX26_DIR)
	@echo "*** Unpacking kernel source"
	$(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) -
ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION))
	# Rename the dir from the downloaded version to the AFTER patch version
	mv -f $(PROJECT_BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR)
	echo $(LINUX26_VERSION_PROBED) > $(PROJECT_BUILD_DIR)/.linux-version
endif
	touch $@


# -----------------------------------------------------------------------------
LINUX26_TARGETS+=$(LINUX26_KERNEL) $(PROJECT_BUILD_DIR)/.linux-version

ifeq ($(BR2_LINUX_COPYTO_ROOTFS),y)
LINUX26_TARGETS+=$(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME)
endif

ifeq ($(BR2_LINUX_COPYTO_TFTPBOOT),y)
LINUX26_TARGETS+=/tftpboot/$(LINUX26_KERNEL_NAME)
endif

ifneq ($(strip $(subst ",,$(BR2_LINUX_COPYTO))),)
LINUX_COPYTO:=$(strip $(subst ",,$(BR2_LINUX_COPYTO)))
#"))
#"))
LINUX26_TARGETS+=$(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME)
endif

ifneq ($(BR2_LINUX_COPY_CONFIGURATION),)
LINUX26_TARGETS+=$(TARGET_DIR)/boot/buildroot.config
LINUX26_TARGETS+=$(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config
LINUX26_TARGETS+=$(TARGET_DIR)/boot/uclibc.config
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
LINUX26_TARGETS+=$(TARGET_DIR)/boot/busybox.config
endif
endif
# -----------------------------------------------------------------------------

$(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
ifneq ($(LINUX26_PATCH_SOURCE),)
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX26_PATCH_SOURCE)
endif
ifneq ($(LINUX26_BSP_PATCH),)
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX26_BSP_PATCH)
endif
	toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \
		linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
ifeq ($(BR2_KERNEL_HEADERS_IPMI),y)
	toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers/ipmi \
		linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
endif
ifeq ($(BR2_KERNEL_HEADERS_LZMA),y)
	toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers/lzma \
		linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
endif
ifeq ($(BR2_KERNEL_HEADERS_RT),y)
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX_RT_SOURCE)
endif
ifeq ($(BR2_KERNEL_HEADERS_PATCH_DIR),y)
	if [ -d $(KERNEL_HEADERS_PATCH_DIR) ] ; then \
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \
		linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2} ; \
	fi
endif
ifeq ($(BR2_PACKAGE_OPENSWAN),y)
	toolchain/patch-kernel.sh $(LINUX26_DIR) package/openswan \
		linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2}
endif
	touch $@

$(LINUX26_DIR)/.patched.arch: $(LINUX26_DIR)/.patched
ifneq ($(BR2_KERNEL_ARCH_PATCH_DIR),)
	if [ -d $(KERNEL_ARCH_PATCH_DIR) ] ; then \
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_ARCH_PATCH_DIR) \
		linux-\*.patch{,.gz,.bz2} ; \
	fi
endif
	touch $@

$(LINUX26_DIR)/.patched.board: $(LINUX26_DIR)/.patched.arch $(KERNEL_COND_PATCHES)
ifneq ($(LINUX26_PATCH_DIR),)
	if [ -d $(LINUX26_PATCH_DIR) ] ; then \
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) \
		linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2} ; \
	fi
endif
	touch $@

# =============================================================================
linux_patch: $(LINUX26_DIR)/.patched.board

KERNEL_EXTRA_VERSION:=$(strip $(subst ",,$(BR2_EXTRA_VERSION)))
#"))

lxcf:	$(LINUX26_DIR)/.config

$(LINUX26_DIR)/.config:	$(LINUX26_DIR)/.patched.board
ifeq ($(BR2_PACKAGE_LINUX_USE_DEFCONFIG),y)
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig
endif
ifeq ($(BR2_PACKAGE_LINUX_USE_XCONFIG),y)
ifeq ($(KERNEL_CONFIG_METHOD),xconfig)
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig || \
		$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig \
else
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig
endif
endif
ifeq ($(BR2_PACKAGE_LINUX_USE_KCONFIG),y)
	# Try user defined config
	if [ -f "$(LINUX26_KCONFIG)" ] ; then \
		cp -dpf $(LINUX26_KCONFIG) $@ ; \
	fi
	# Try to get a config for this linux version in the board directory
	echo "LINUX26_VERSION = $(LINUX26_VERSION)"
	if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
	    if [ -f "$(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config" ] ; then \
		cp -dpf $(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config $@ ; \
	    fi ; \
	fi
	# Try to get a config for latest linux version in the board directory
	if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
		scripts/get_linux_config.sh $(BOARD_PATH) $(LINUX26_DIR) ; \
	fi
	# Use a board config defined in the linux source.
	if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
		$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig || \
			echo "$(BOARD_NAME)_defconfig failed..." ; \
	fi
	# let the user create his/her own config
	if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
		$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(KERNEL_CONFIG_METHOD) ; \
	fi
endif
ifneq ($(strip $(subst ",,$(BR2_EXTRA_VERSION))),)
	$(SED) 's,^EXTRAVERSION.*,EXTRAVERSION = $(KERNEL_EXTRA_VERSION),g' $(LINUX26_DIR)/Makefile
endif
# $(strip $(subst ",, - ))

# -----------------------------------------------------------------------------
$(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.config
	$(SED) '/CONFIG_AEABI=y/d' $(LINUX26_DIR)/.config
ifeq ($(BR2_ARM_EABI),y)
	echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config
	$(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config
	echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config
else
	echo "# CONFIG_AEABI is not set" >> $(LINUX26_DIR)/.config
endif
	$(SED) '/CONFIG_IPV6=y/d' $(LINUX26_DIR)/.config
ifeq ($(BR2_INET_IPV6),y)
	echo "CONFIG_IPV6=y" >> $(LINUX26_DIR)/.config
else
	echo "# CONFIG_IPV6 is not set" >> $(LINUX26_DIR)/.config
endif
	$(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config
	$(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config
ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
	echo "CONFIG_INITRAMFS_SOURCE=\"$(INITRAMFS_TARGET)\"" >> \
		$(LINUX26_DIR)/.config
	echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config
	echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config
else
	echo "CONFIG_INITRAMFS_SOURCE=\"\"" >> $(LINUX26_DIR)/.config
endif
ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y)
	# precedence for a small initramfs
	$(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config
	$(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config
	echo "CONFIG_INITRAMFS_SOURCE=\"$(BB_INITRAMFS_TARGET)\"" >> \
		$(LINUX26_DIR)/.config
	echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config
	echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config
endif
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) oldconfig
	touch $@

# -----------------------------------------------------------------------------
$(LINUX26_DIR)/.depend_done: $(LINUX26_DIR)/.configured $(LINUX26_MKIMAGE_DEP)
	mkdir -p $(TARGET_DIR)/boot
	-mv $(LINUX26_DIR)/localversion* $(TARGET_DIR)/boot
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) prepare
	touch $@

$(LINUX26_DIR)/$(LINUX26_BINLOC): $(INITRAMFS_TARGET) $(BB_INITRAMFS_TARGET) \
		$(LINUX26_DIR)/.depend_done
	$(MAKE) $(LINUX26_MAKE_FLAGS) \
		-C $(LINUX26_DIR) $(LINUX26_FORMAT)
	touch $@

$(LINUX26_KERNEL): $(LINUX26_DIR)/$(LINUX26_BINLOC)
	cp -pf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_KERNEL)
	touch $@

# -----------------------------------------------------------------------------
$(PROJECT_BUILD_DIR)/autotools-stamps/linux_modules_target_installed: $(LINUX26_DIR)/.depend_done
	rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)
	rm -f $(TARGET_DIR)/sbin/cardmgr
	# Make Linux depend on modules only if enabled in the .config.
	@if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then	\
		echo "*** Installing Linux kernel modules" ;				\
		$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules;		\
		$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR)				\
			DEPMOD=$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26		\
			INSTALL_MOD_PATH=$(TARGET_DIR) modules_install;			\
		rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build;	\
		rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source;	\
		$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX26_VERSION_PROBED); \
	else										\
		echo "*** Skipping installing modules since it is not enabled" ;	\
	fi
	touch $@

linux26-menuconfig: $(LINUX26_DIR)/.patched host-sed
	[ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig
	-[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured

linux26-xconfig: $(LINUX26_DIR)/.patched host-sed
	[ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config
	$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig
	-[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured

$(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL)
	mkdir -p $(TARGET_DIR)/boot
	cp -dpf $(LINUX26_KERNEL) $(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME)

$(TARGET_DIR)/boot/buildroot.config: .config
	mkdir -p $(TARGET_DIR)/boot
	cp -dpf .config $(TARGET_DIR)/boot/buildroot.config

$(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config: $(LINUX26_DIR)/.config
	mkdir -p $(TARGET_DIR)/boot
	cp -dpf $(LINUX26_DIR)/.config $(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config

$(TARGET_DIR)/boot/uclibc.config: $(UCLIBC_DIR)/.config
	mkdir -p $(TARGET_DIR)/boot
	cp -dpf $(UCLIBC_DIR)/.config $(TARGET_DIR)/boot/uclibc.config

$(TARGET_DIR)/boot/busybox.config: $(BUSYBOX_DIR)/.config
	mkdir -p $(TARGET_DIR)/boot
	cp -dpf $(BUSYBOX_DIR)/.config $(TARGET_DIR)/boot/busybox.config

/tftpboot/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL)
	-mkdir -p /tftpboot
	-cp -dpf $(LINUX26_KERNEL) $@
	touch $@

ifneq ($(LINUX_COPYTO),/tftpboot)
$(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL)
	mkdir -p $(LINUX_COPYTO)
	cp -dpf $(LINUX26_KERNEL) $@
	touch $@
endif

$(PROJECT_BUILD_DIR)/.linux-version: $(LINUX26_KERNEL)
	echo $(LINUX26_VERSION_PROBED) > $(PROJECT_BUILD_DIR)/.linux-version
	echo LINUX_MODULES=`$(LINUX26_VERSION_PROBED)`

$(LINUX26_MKIMAGE_DIR)/mkimage:	$(U_BOOT_TOOLS)
	mkdir -p $(LINUX26_MKIMAGE_DIR)
	cp $(MKIMAGE) $(LINUX26_MKIMAGE_DIR)

linux26: $(LINUX26_TARGETS)

linux26-version: $(PROJECT_BUILD_DIR)/.linux-version

linux26-modules: cross-depmod26 $(PROJECT_BUILD_DIR)/autotools-stamps/linux_modules_target_installed

linux26-source: $(DL_DIR)/$(LINUX26_SOURCE)

linux26-unpacked: $(LINUX26_DIR)/.patched

linux26-config: host-sed $(LINUX26_DIR)/.configured

linux26-update:
	cp -dpf $(LINUX26_DIR)/.config $(LINUX26_KCONFIG)

# force rebuild
linux26-force:
	touch $(LINUX26_DIR)/.configured

# This has been renamed so we do _NOT_ by default run this on 'make clean'
linux26clean:
	rm -f $(PROJECT_BUILD_DIR)/autotools-stamps/linux_modules_target_installed
	rm -f $(LINUX26_KERNEL) $(LINUX26_DIR)/.configured
	-$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX26_DIR) clean

linux26-dirclean:
	rm -rf $(LINUX26_DIR)

linux26-status: linux-status

#	@echo =$()
linux-status:
	@echo BOARD_NAME=$(BOARD_NAME)
	@echo BR2_BOARD_PATH=$(BR2_BOARD_PATH)
	@echo BR2_CUSTOM_LINUX26_PATCH=$(BR2_CUSTOM_LINUX26_PATCH)
	@echo BR2_CUSTOM_LINUX26_PATCH_SITE=$(BR2_CUSTOM_LINUX26_PATCH_SITE)
	@echo BR2_DOWNLOAD_LINUX26_VERSION=$(BR2_DOWNLOAD_LINUX26_VERSION)
	@echo BR2_LINUX_BSP_PATCH=$(BR2_LINUX_BSP_PATCH)
	@echo BR2_LINUX_COPYTO=$(BR2_LINUX_COPYTO)
	@echo BR2_LINUX_COPYTO_ROOTFS=$(BR2_LINUX_COPYTO_ROOTFS)
	@echo BR2_LINUX_COPYTO_TFTPBOOT=$(BR2_LINUX_COPYTO_TFTPBOOT)
	@echo BR2_LINUX_VERSION=$(BR2_LINUX_VERSION)
	@echo BR2_LINUX26_CUSTOM=$(BR2_LINUX26_CUSTOM)
	@echo BR2_LINUX26_VERSION=$(BR2_LINUX26_VERSION)
	@echo BR2_KERNEL_ADD_LATEST_MM_PATCH=$(BR2_KERNEL_ADD_LATEST_MM_PATCH)
	@echo BR2_KERNEL_ADD_LATEST_RC_PATCH=$(BR2_KERNEL_ADD_LATEST_RC_PATCH)
	@echo BR2_KERNEL_ADD_LATEST_SNAPSHOT=$(BR2_KERNEL_ADD_LATEST_SNAPSHOT)
	@echo BR2_KERNEL_ADD_MINORPATCH=$(BR2_KERNEL_ADD_MINORPATCH)
	@echo BR2_KERNEL_ARCH_PATCH_DIR=$(BR2_KERNEL_ARCH_PATCH_DIR)
	@echo BR2_KERNEL_GIT_LEVEL=$(BR2_KERNEL_GIT_LEVEL)
	@echo BR2_KERNEL_MINORLEVEL=$(BR2_KERNEL_MINORLEVEL)
	@echo BR2_KERNEL_MM_LEVEL=$(BR2_KERNEL_MM_LEVEL)
	@echo BR2_KERNEL_PATCH=$(BR2_KERNEL_PATCH)
	@echo BR2_KERNEL_PATCH_SITE=$(BR2_KERNEL_PATCH_SITE)
	@echo BR2_KERNEL_RC_LEVEL=$(BR2_KERNEL_RC_LEVEL)
	@echo BR2_KERNEL_SITE=$(BR2_KERNEL_SITE)
	@echo BR2_PACKAGE_LINUX_KCONFIG=$(BR2_PACKAGE_LINUX_KCONFIG)
	@echo BR2_PACKAGE_LINUX_USE_DEFCONFIG=$(BR2_PACKAGE_LINUX_USE_DEFCONFIG)
	@echo BR2_PACKAGE_LINUX_USE_KCONFIG=$(BR2_PACKAGE_LINUX_USE_KCONFIG)
	@echo BR2_PACKAGE_LINUX_USE_XCONFIG=$(BR2_PACKAGE_LINUX_USE_XCONFIG)
	@echo DOWNLOAD_LINUX26_VERSION=$(DOWNLOAD_LINUX26_VERSION)
	@echo KERNEL_ARCH_PATCH_DIR=$(KERNEL_ARCH_PATCH_DIR)
	@echo KERNEL_COND_PATCHES=$(KERNEL_COND_PATCHES)
	@echo KERNEL_EXT=$(KERNEL_EXT)
	@echo KERNEL_EXTRA_VERSION=$(KERNEL_EXTRA_VERSION)
	@echo KERNEL_HEADERS_PATCH_DIR=$(KERNEL_HEADERS_PATCH_DIR)
	@echo LINUX_COPYTO=$(LINUX_COPYTO)
	@echo LINUX_HEADERS_VERSION=$(LINUX_HEADERS_VERSION)
	@echo LINUX26_BINLOC=$(LINUX26_BINLOC)
	@echo LINUX26_DIR=$(LINUX26_DIR)
	@echo LINUX26_FORMAT=$(LINUX26_FORMAT)
	@echo LINUX26_HEADERS_PATCH_DIR=$(LINUX26_HEADERS_PATCH_DIR)
	@echo LINUX26_KERNEL=$(LINUX26_KERNEL)
	@echo LINUX26_KERNEL_NAME=$(LINUX26_KERNEL_NAME)
	@echo LINUX26_LATEST_GIT_PATCH=$(LINUX26_LATEST_GIT_PATCH)
	@echo LINUX26_LATEST_MM_PATCH=$(LINUX26_LATEST_MM_PATCH)
	@echo LINUX26_LATEST_RC_PATCH=$(LINUX26_LATEST_RC_PATCH)
	@echo LINUX26_PATCH_DIR=$(LINUX26_PATCH_DIR)
	@echo LINUX26_SOURCE=$(LINUX26_SOURCE)
	@echo LINUX26_TARGETS=$(LINUX26_TARGETS)
	@echo LINUX26_VERSION=$(LINUX26_VERSION)
	@echo PROJECT_BUILD_DIR=$(PROJECT_BUILD_DIR)
	@echo TARGETS=$(TARGETS)

endif
