-$(LINUX_DIR)/vmlinux: $(STAMP_DIR)/.linux-compile pkg-install ramdisk-config
- $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH)
-
-$(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
- $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@
- touch -c $(LINUX_KERNEL)
-
-$(LINUX_DIR)/.modules_done:
- rm -rf $(KERNEL_BUILD_DIR)/modules
- $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules
- $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install
- touch $(LINUX_DIR)/.modules_done
-
-modules: $(LINUX_DIR)/.modules_done
-packages: $(TARGETS)
-
-$(STAMP_DIR)/.linux-compile:
- @$(MAKE) modules
- @$(MAKE) packages
- ln -sf $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux
- touch $@
-
-$(KERNEL_IPKG):
- rm -rf $(KERNEL_IDIR)
- mkdir -p $(KERNEL_IDIR)/etc
- $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) ../control/kernel.control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH)
- if [ -f ./config/$(BOARD).modules ]; then \
- cp ./config/$(BOARD).modules $(KERNEL_IDIR)/etc/modules; \
- fi
- $(IPKG_BUILD) $(KERNEL_IDIR) $(KERNEL_BUILD_DIR)
-
-$(TOPDIR)/.kernel.mk:
- echo "BOARD:=$(BOARD)" > $@
- echo "LINUX_VERSION:=$(LINUX_VERSION)" >> $@
- echo "LINUX_RELEASE:=$(LINUX_RELEASE)" >> $@
-
-pkg-install: FORCE
- @for pkg in $(INSTALL_TARGETS); do \
- $(IPKG) install $$pkg || echo; \
- done
-
-source: $(DL_DIR)/$(LINUX_SOURCE)
-prepare: $(LINUX_DIR)/.configured
- @mkdir -p $(STAMP_DIR) $(PACKAGE_DIR)
-
-compile: prepare $(STAMP_DIR)/.linux-compile
-
-install: compile $(LINUX_KERNEL)
-
-mostlyclean: FORCE
- rm -f $(STAMP_DIR)/.linux-compile
- rm -f $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/.modules_done
- rm -f $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/.drivers-unpacked
- $(MAKE) -C $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) clean
- rm -f $(LINUX_KERNEL)
-
-rebuild: FORCE
- -$(MAKE) mostlyclean
- if [ -f $(LINUX_KERNEL) ]; then \
- $(MAKE) clean; \
- fi
- $(MAKE) compile $(MAKE_TRACE)
-
-clean: FORCE
- rm -f $(STAMP_DIR)/.linux-compile
- rm -rf $(KERNEL_BUILD_DIR)
- rm -f $(TARGETS)
+ifdef CONFIG_COLLECT_KERNEL_DEBUG
+ define Kernel/CollectDebug
+ rm -rf $(KERNEL_BUILD_DIR)/debug
+ mkdir -p $(KERNEL_BUILD_DIR)/debug/modules
+ $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/debug/
+ -$(CP) \
+ $(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/* \
+ $(KERNEL_BUILD_DIR)/debug/modules/
+ $(FIND) $(KERNEL_BUILD_DIR)/debug -type f | $(XARGS) $(KERNEL_CROSS)strip --only-keep-debug
+ $(TAR) c -C $(KERNEL_BUILD_DIR) debug | bzip2 -c -9 > $(BIN_DIR)/kernel-debug.tar.bz2
+ endef
+endif