|
|
|
@ -190,6 +190,25 @@ endif
|
|
|
|
|
|
|
|
|
|
KERNEL_ADDITIONAL_CONFIG_OUT := $(KERNEL_OUT)/.additional_config
|
|
|
|
|
|
|
|
|
|
# Internal implementation of make-kernel-target
|
|
|
|
|
# $(1): output path (The value passed to O=)
|
|
|
|
|
# $(2): target to build (eg. defconfig, modules, dtbo.img)
|
|
|
|
|
define internal-make-kernel-target
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(2)
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
# Make a kernel target
|
|
|
|
|
# $(1): The kernel target to build (eg. defconfig, modules, modules_install)
|
|
|
|
|
define make-kernel-target
|
|
|
|
|
$(call internal-make-kernel-target,$(KERNEL_OUT),$(1))
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
# Make a DTBO target
|
|
|
|
|
# $(1): The DTBO target to build (eg. dtbo.img, defconfig)
|
|
|
|
|
define make-dtbo-target
|
|
|
|
|
$(call internal-make-kernel-target,$(PRODUCT_OUT)/dtbo,$(1))
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
.PHONY: force_additional_config
|
|
|
|
|
$(KERNEL_ADDITIONAL_CONFIG_OUT): force_additional_config
|
|
|
|
|
$(hide) cmp -s $(KERNEL_ADDITIONAL_CONFIG_SRC) $@ || cp $(KERNEL_ADDITIONAL_CONFIG_SRC) $@;
|
|
|
|
@ -197,29 +216,31 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): force_additional_config
|
|
|
|
|
$(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
|
|
|
|
|
@echo "Building Kernel Config"
|
|
|
|
|
$(hide) mkdir -p $(KERNEL_OUT)
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
|
|
|
|
|
$(call make-kernel-target,VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG))
|
|
|
|
|
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
|
|
|
|
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
|
|
|
|
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) oldconfig; fi
|
|
|
|
|
$(call make-kernel-target,oldconfig); \
|
|
|
|
|
fi
|
|
|
|
|
# Create defconfig build artifact
|
|
|
|
|
$(hide) $(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
|
|
|
|
|
$(call make-kernel-target,savedefconfig)
|
|
|
|
|
$(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
|
|
|
|
|
echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
|
|
|
|
|
$(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi
|
|
|
|
|
$(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig); \
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
.PHONY: TARGET_KERNEL_BINARIES
|
|
|
|
|
TARGET_KERNEL_BINARIES: $(KERNEL_CONFIG)
|
|
|
|
|
@echo "Building Kernel"
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
|
|
|
|
|
$(call make-kernel-target,$(BOARD_KERNEL_IMAGE_NAME))
|
|
|
|
|
$(hide) if grep -q '^CONFIG_OF=y' $(KERNEL_CONFIG); then \
|
|
|
|
|
echo "Building DTBs"; \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
|
|
|
|
|
$(call make-kernel-target,dtbs); \
|
|
|
|
|
fi
|
|
|
|
|
$(hide) if grep -q '=m' $(KERNEL_CONFIG); then \
|
|
|
|
|
echo "Building Kernel Modules"; \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
|
|
|
|
|
$(call make-kernel-target,modules); \
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
.PHONY: INSTALLED_KERNEL_MODULES
|
|
|
|
@ -229,7 +250,7 @@ INSTALLED_KERNEL_MODULES: depmod-host
|
|
|
|
|
$(hide) rm -rf $(KERNEL_DEPMOD_STAGING_DIR)
|
|
|
|
|
$(hide) if grep -q '=m' $(KERNEL_CONFIG); then \
|
|
|
|
|
echo "Installing Kernel Modules"; \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
|
|
|
|
|
$(call make-kernel-target,INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install) && \
|
|
|
|
|
mofile=$$(find $(KERNEL_MODULES_OUT) -type f -name modules.order) && \
|
|
|
|
|
mpath=$$(dirname $$mofile) && \
|
|
|
|
|
for f in $$(find $$mpath/kernel -type f -name '*.ko'); do \
|
|
|
|
@ -250,27 +271,27 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES)
|
|
|
|
|
.PHONY: kerneltags
|
|
|
|
|
kerneltags: $(KERNEL_CONFIG)
|
|
|
|
|
$(hide) mkdir -p $(KERNEL_OUT)
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) tags
|
|
|
|
|
$(call make-kernel-target,tags)
|
|
|
|
|
|
|
|
|
|
.PHONY: kernelsavedefconfig alldefconfig
|
|
|
|
|
|
|
|
|
|
kernelsavedefconfig:
|
|
|
|
|
$(hide) mkdir -p $(KERNEL_OUT)
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
|
|
|
|
|
$(call make-kernel-target,$(KERNEL_DEFCONFIG))
|
|
|
|
|
env KCONFIG_NOTIMESTAMP=true \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
|
|
|
|
|
$(call make-kernel-target,savedefconfig)
|
|
|
|
|
cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)
|
|
|
|
|
|
|
|
|
|
alldefconfig:
|
|
|
|
|
$(hide) mkdir -p $(KERNEL_OUT)
|
|
|
|
|
env KCONFIG_NOTIMESTAMP=true \
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) alldefconfig
|
|
|
|
|
$(call make-kernel-target,alldefconfig)
|
|
|
|
|
|
|
|
|
|
TARGET_PREBUILT_DTBO = $(PRODUCT_OUT)/dtbo/arch/$(KERNEL_ARCH)/boot/dtbo.img
|
|
|
|
|
$(TARGET_PREBUILT_DTBO): $(AVBTOOL)
|
|
|
|
|
echo -e ${CL_GRN}"Building DTBO.img"${CL_RST}
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
|
|
|
|
|
$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
|
|
|
|
|
$(call make-dtbo-target,$(KERNEL_DEFCONFIG))
|
|
|
|
|
$(call make-dtbo-target,dtbo.img)
|
|
|
|
|
$(AVBTOOL) add_hash_footer \
|
|
|
|
|
--image $@ \
|
|
|
|
|
--partition_size $(BOARD_DTBOIMG_PARTITION_SIZE) \
|
|
|
|
|