X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=include%2Fkernel-build.mk;h=b7bcf0e17deb8a963c1cdeb87acaf85baebea68c;hp=04878f8250a9fd608d1ab3d58efffb195866cf97;hb=83bcacb5215c21e1894fbe3d651d83948479ce91;hpb=86c966a8ae9c4e74b912a16a760aaed17c68eb32 diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 04878f8250..b7bcf0e17d 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -4,7 +4,6 @@ # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -include $(INCLUDE_DIR)/host.mk include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/depends.mk @@ -12,7 +11,7 @@ ifneq ($(DUMP),1) all: compile endif -KERNEL_FILE_DEPENDS=$(GENERIC_PATCH_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR) +KERNEL_FILE_DEPENDS=$(GENERIC_BACKPORT_DIR) $(GENERIC_PATCH_DIR) $(GENERIC_HACK_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR) STAMP_PREPARED=$(LINUX_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,$(KERNEL_FILE_DEPENDS),))) STAMP_CONFIGURED:=$(LINUX_DIR)/.configured include $(INCLUDE_DIR)/download.mk @@ -43,7 +42,21 @@ endef define Download/kernel URL:=$(LINUX_SITE) FILE:=$(LINUX_SOURCE) - MD5SUM:=$(LINUX_KERNEL_MD5SUM) + HASH:=$(LINUX_KERNEL_HASH) +endef + +KERNEL_GIT_OPTS:= +ifneq ($(strip $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY)),"") + KERNEL_GIT_OPTS+=--reference $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY) +endif + +define Download/git-kernel + URL:=$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)) + PROTO:=git + VERSION:=$(CONFIG_KERNEL_GIT_REF) + FILE:=$(LINUX_SOURCE) + SUBDIR:=linux-$(LINUX_VERSION) + OPTS:=$(KERNEL_GIT_OPTS) endef ifdef CONFIG_COLLECT_KERNEL_DEBUG @@ -73,6 +86,7 @@ endif define BuildKernel $(if $(QUILT),$(Build/Quilt)) $(if $(LINUX_SITE),$(call Download,kernel)) + $(if $(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),$(call Download,git-kernel)) .NOTPARALLEL: @@ -86,7 +100,7 @@ define BuildKernel $(KERNEL_BUILD_DIR)/symtab.h: FORCE rm -f $(KERNEL_BUILD_DIR)/symtab.h touch $(KERNEL_BUILD_DIR)/symtab.h - +$(MAKE) $(KERNEL_MAKEOPTS) vmlinux + +$(KERNEL_MAKE) vmlinux find $(LINUX_DIR) $(STAGING_DIR_ROOT)/lib/modules -name \*.ko | \ xargs $(TARGET_CROSS)nm | \ awk '$$$$1 == "U" { print $$$$2 } ' | \ @@ -133,7 +147,7 @@ define BuildKernel endef download: $(if $(LINUX_SITE),$(DL_DIR)/$(LINUX_SOURCE)) - prepare: $(STAMP_CONFIGURED) + prepare: $(STAMP_PREPARED) compile: $(LINUX_DIR)/.modules $(MAKE) -C image compile TARGET_BUILD= @@ -141,7 +155,9 @@ define BuildKernel rm -f $(LINUX_DIR)/.config.prev rm -f $(STAMP_CONFIGURED) $(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config - $(_SINGLE)$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib -lncurses" $$@ + $(_SINGLE)$(KERNEL_MAKE) \ + $(if $(findstring Darwin,$(HOST_OS)),HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib -lncurses") \ + $$@ $(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET) install: $(LINUX_DIR)/.image