buildrootschalter/target/linux/Makefile.in
Will Wagner 102ca91d74 Repair initramfs dependancies after move to fs
The restructure for building root filesystems changed the target name
for the initramfs file, to build the file the trget is now
initramfs-root but the generated file is rootfs.initramfs

Signed-off-by: Will Wagner <will_wagner@carallon.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-04-20 00:02:36 +02:00

247 lines
8.0 KiB
Makefile

#############################################################
#
# Linux kernel 2.6 target
#
#############################################################
ifneq ($(filter $(TARGETS),linux26),)
ifeq ($(DOWNLOAD_LINUX26_VERSION),)
# User did not define linux version, try using headers
ifeq ($(LINUX_HEADERS_VERSION),)
# We did not have headers (this is for real???)
# Version of linuc before patches
DOWNLOAD_LINUX26_VERSION=2.6.22.1
# Version of Linux after applying any patches
LINUX26_VERSION=2.6.22.1
else
# OK, we have headers, use them...
DOWNLOAD_LINUX26_VERSION=$(LINUX_HEADERS_VERSION)
LINUX26_VERSION=$(LINUX_HEADERS_VERSION)
endif
endif
LINUX26_SOURCE=linux-$(DOWNLOAD_LINUX26_VERSION).tar.bz2
LINUX26_BZCAT:=$(BZCAT)
LINUX26_SITE=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6
ifeq ($(BOARD_PATH),)
BOARD_PATH:=$(call qstrip,$(BR2_BOARD_PATH))
endif
# Linux kernel configuration file
# 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 ($(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)),)
LINUX26_KCONFIG=$(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG))
else
# LINUX26_KCONFIG=$(BOARD_PATH)/linux26.config
endif
endif
ifndef LINUX26_FORMAT
ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)),)
LINUX26_FORMAT=$(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT))
else
LINUX26_FORMAT=zImage
endif
endif
# Has to be set by the target/device
ifndef LINUX26_BINLOC
# default:
ifeq ($(LINUX26_FORMAT),vmlinux)
LINUX26_BINLOC=$(LINUX26_FORMAT)
else
ifeq ($(BR2_ARCH),"cris")
LINUX26_BINLOC=arch/$(KERNEL_ARCH)/arch-v10/boot/$(LINUX26_FORMAT)
else
LINUX26_BINLOC=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT)
endif
endif
endif
ROOTFS_STRIPPED_SUFFIX=$(call qstrip,$(ROOTFS_SUFFIX))
# File name for the Linux kernel binary
ifndef LINUX26_KERNEL
LINUX26_KERNEL_NAME=$(BINARIES_DIR)/$(LINUX26_FORMAT)$(ROOTFS_STRIPPED_SUFFIX)
endif
# Version of Linux AFTER patches
LINUX26_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION)
# for packages that need it
LINUX_VERSION:=$(LINUX26_VERSION)
LINUX_DIR=$(LINUX26_DIR)
LINUX_KERNEL=$(LINUX26_KERNEL_NAME)
# kernel patches
ifeq ($(strip $(LINUX26_PATCH_DIR)),)
ifneq ($(BOARD_PATH),)
LINUX26_PATCH_DIR:=$(BOARD_PATH)/kernel-patches/
endif
endif
LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
ARCH=$(KERNEL_ARCH) \
INSTALL_MOD_PATH=$(TARGET_DIR) \
CROSS_COMPILE=$(KERNEL_CROSS) \
LDFLAGS="$(TARGET_LDFLAGS)" \
LZMA="$(LZMA)"
$(LINUX26_KCONFIG):
@if [ ! -f "$(LINUX26_KCONFIG)" ] ; then \
echo ""; \
echo "You should create a .config for your kernel"; \
echo "and install it as $(LINUX26_KCONFIG)"; \
echo ""; \
sleep 5; \
fi
ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION)))
$(DL_DIR)/$(LINUX26_SOURCE):
$(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION))
$(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE)
rm -rf $(LINUX26_DIR)
@echo "*** Unpacking kernel source"
$(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION))
# Rename the dir from the downloaded version to the AFTER patch version
mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR)
endif
touch $@
$(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \
linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
ifeq ($(BR2_KERNEL_HEADERS_RT),y)
toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX_RT_SOURCE)
endif
ifneq ($(KERNEL_HEADERS_PATCH_DIR),)
toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \
linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
endif
ifeq ($(BR2_PACKAGE_OPENSWAN),y)
toolchain/patch-kernel.sh $(LINUX26_DIR) package/openswan \
linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
endif
ifneq ($(LINUX26_PATCH_DIR),)
if [ -d $(LINUX26_PATCH_DIR) ] ; then \
toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) linux-$(LINUX26_VERSION)\*.patch ; \
fi
endif
touch $@
$(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.patched $(LINUX26_KCONFIG)
cp -dpf $(LINUX26_KCONFIG) $(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=\"$(BINARIES_DIR)/rootfs.initramfs\"" >> \
$(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
$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) prepare
touch $@
$(LINUX26_KERNEL_NAME): $(INITRAMFS_TARGET) $(BB_INITRAMFS_TARGET) \
$(LINUX26_DIR)/.depend_done
$(MAKE) $(LINUX26_MAKE_FLAGS) \
-C $(LINUX26_DIR) $(LINUX26_FORMAT)
cp -pf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_KERNEL_NAME)
touch -c $@
$(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep: $(LINUX26_DIR)/.configured
rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)
rm -f $(TARGET_DIR)/sbin/cardmgr
@if grep -q CONFIG_MODULES=y $(LINUX26_DIR)/.config; then \
set -x; \
echo "Have CONFIG_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)/build \
$(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/source; \
$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX_HEADERS_VERSION); \
else \
echo "No CONFIG_MODULES"; \
fi
touch -c $@
linux26-menuconfig: host-sed dirs $(LINUX26_DIR)/.patched
if [ ! -f $(LINUX26_DIR)/.config ]; then \
[ -n "$(LINUX26_KCONFIG)" ] && [ -f $(LINUX26_KCONFIG) ] && \
cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config || \
true; \
fi
$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig
-[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured
linux26-xconfig: host-sed dirs $(LINUX26_DIR)/.patched
[ -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
linux26: $(LINUX26_KERNEL_NAME)
$(LINUX26_DIR)/.modules_installed: $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep
touch $@
linux26-modules: cross-depmod26 $(LINUX26_DIR)/.modules_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 $(LINUX26_KERNEL_NAME) $(LINUX26_DIR)/.configured
-$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX26_DIR) clean
linux26-dirclean:
rm -rf $(LINUX26_DIR)
endif