firmware-utils: fix build on big endian systems
[openwrt.git] / include / kernel-build.mk
index 7c5d1fb..432efd6 100644 (file)
@@ -44,6 +44,19 @@ define Download/kernel
   MD5SUM:=$(LINUX_KERNEL_MD5SUM)
 endef
 
+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
+
 define BuildKernel
   $(if $(QUILT),$(Build/Quilt))
   $(if $(LINUX_SITE),$(call Download,kernel))
@@ -76,7 +89,7 @@ define BuildKernel
                echo; \
        ) > $$@
 
-  $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_CONFIG) $(GENERIC_LINUX_CONFIG) $(TOPDIR)/.config
+  $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_KCONFIG_LIST) $(TOPDIR)/.config
        $(Kernel/Configure)
        touch $$@
 
@@ -86,6 +99,7 @@ define BuildKernel
 
   $(LINUX_DIR)/.image: $(STAMP_CONFIGURED) $(if $(CONFIG_STRIP_KERNEL_EXPORTS),$(KERNEL_BUILD_DIR)/symtab.h) FORCE
        $(Kernel/CompileImage)
+       $(Kernel/CollectDebug)
        touch $$@
        
   mostlyclean: FORCE
@@ -99,14 +113,11 @@ define BuildKernel
   compile: $(LINUX_DIR)/.modules
        $(MAKE) -C image compile TARGET_BUILD=
 
-  oldconfig menuconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE
-       [ -e "$(LINUX_CONFIG)" ] || touch "$(LINUX_CONFIG)"
-       $(LINUX_CONFCMD) > $(LINUX_DIR)/.config
-       touch $(LINUX_CONFIG)
+  oldconfig menuconfig nconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE
+       rm -f $(STAMP_CONFIGURED)
+       $(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config
        $(_SINGLE)$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $$@
-       $(SCRIPT_DIR)/kconfig.pl '>' $(if $(LINUX_SUBCONFIG),'+' $(GENERIC_LINUX_CONFIG) $(LINUX_CONFIG),$(GENERIC_LINUX_CONFIG)) \
-               $(LINUX_DIR)/.config > $(if $(LINUX_SUBCONFIG),$(LINUX_SUBCONFIG),$(LINUX_CONFIG))
-       $(Kernel/Configure)
+       $(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET)
 
   install: $(LINUX_DIR)/.image
        +$(MAKE) -C image compile install TARGET_BUILD=
This page took 0.021414 seconds and 4 git commands to generate.