X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fkernel-build.mk;h=c371e78ab9b0b63bdd4de77cfa426ce0d3afbf9b;hb=8636a172146f3b78474c61a7021ca2628b3370b1;hp=04878f8250a9fd608d1ab3d58efffb195866cf97;hpb=86c966a8ae9c4e74b912a16a760aaed17c68eb32;p=oweals%2Fopenwrt.git diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 04878f8250..c371e78ab9 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 } ' | \ @@ -117,10 +131,16 @@ define BuildKernel $(Kernel/Configure) touch $$@ + $(LINUX_DIR)/.modules: export STAGING_PREFIX=$$(STAGING_DIR_HOST) + $(LINUX_DIR)/.modules: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig + $(LINUX_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE $(Kernel/CompileModules) touch $$@ + $(LINUX_DIR)/.image: export STAGING_PREFIX=$$(STAGING_DIR_HOST) + $(LINUX_DIR)/.image: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig + $(LINUX_DIR)/.image: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig $(LINUX_DIR)/.image: $(STAMP_CONFIGURED) $(if $(CONFIG_STRIP_KERNEL_EXPORTS),$(KERNEL_BUILD_DIR)/symtab.h) FORCE $(Kernel/CompileImage) $(Kernel/CollectDebug) @@ -133,7 +153,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,8 +161,17 @@ 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" $$@ - $(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET) + $(_SINGLE)$(KERNEL_MAKE) \ + $(if $(findstring Darwin,$(HOST_OS)), \ + HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib -lncurses" \ + HOSTLDLIBS_mconf="-L$(STAGING_DIR_HOST)/lib -lncurses" \ + filechk_conf_cfg=" :" \ + ) \ + YACC=$(STAGING_DIR_HOST)/bin/bison \ + $$@ + $(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config | \ + grep -vE '(CONFIG_CC_(HAS_ASM_GOTO|IS_GCC|IS_CLANG)|GCC_VERSION)=' \ + > $(LINUX_RECONFIG_TARGET) install: $(LINUX_DIR)/.image +$(MAKE) -C image compile install TARGET_BUILD=