kernel/config: Add Moto ext_config feature
Add ext_config feature to extend qcom's defconfig There make files can compose some kconfig files into one Change-Id: Ic1444100f61300e7ee16a81c73afde3dac81da0a Signed-off-by: zhaoxp3 <zhaoxp3@motorola.com> Reviewed-on: https://gerrit.mot.com/1499581 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Wang Wang <wangwang1@lenovo.com> Submit-Approved: Jira Key
This commit is contained in:
1 parent
053c068ed6
commit
8c9c8c58a5
3 files changed
+76
-10
No files matched your search
+29
-10
@@ -33,9 +33,8 @@ $(warning Forcing kernel header generation only for '$(TARGET_KERNEL_HEADER_ARCH
|
||||
KERNEL_HEADER_ARCH := $(TARGET_KERNEL_HEADER_ARCH)
|
||||
endif
|
||||
|
||||
KERNEL_HEADER_DEFCONFIG := $(strip $(KERNEL_HEADER_DEFCONFIG))
|
||||
ifeq ($(KERNEL_HEADER_DEFCONFIG),)
|
||||
KERNEL_HEADER_DEFCONFIG := $(KERNEL_DEFCONFIG)
|
||||
ifeq ($(shell echo $(KERNEL_DEFCONFIG) | grep vendor),)
|
||||
KERNEL_DEFCONFIG := vendor/$(KERNEL_DEFCONFIG)
|
||||
endif
|
||||
|
||||
# Force 32-bit binder IPC for 64bit kernel with 32bit userspace
|
||||
@@ -152,11 +151,31 @@ $(KERNEL_USR): $(KERNEL_HEADERS_INSTALL)
|
||||
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_USR)
|
||||
endif
|
||||
|
||||
include $(TARGET_KERNEL_SOURCE)/defconfig.mk
|
||||
|
||||
KERNEL_HEADER_DEFCONFIG := $(strip $(KERNEL_HEADER_DEFCONFIG))
|
||||
ifeq ($(KERNEL_HEADER_DEFCONFIG),)
|
||||
KERNEL_HEADER_DEFCONFIG := $(TARGET_DEFCONFIG)
|
||||
endif
|
||||
|
||||
# Make the kernel config
|
||||
# $1 output dir
|
||||
# $2 kernel config filepath
|
||||
# $3 defconfig
|
||||
# $4 kernel source
|
||||
# $5 kernel make env
|
||||
# $6 kernel architecture
|
||||
# $7 cross compile sub-command
|
||||
# $8 make command
|
||||
define do-kernel-config
|
||||
( cp $(3) $(2) && $(8) -C $(4) O=$(1) $(5) ARCH=$(6) CROSS_COMPILE=$(7) $(9) defoldconfig ) || ( rm -f $(2) && false )
|
||||
endef
|
||||
|
||||
$(KERNEL_OUT):
|
||||
mkdir -p $(KERNEL_OUT)
|
||||
|
||||
$(KERNEL_CONFIG): $(KERNEL_OUT)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_DEFCONFIG)
|
||||
$(KERNEL_CONFIG): $(KERNEL_OUT) $(TARGET_DEFCONFIG)
|
||||
$(call do-kernel-config,$(BUILD_ROOT_LOC)$(KERNEL_OUT),$@,$(TARGET_DEFCONFIG),$(TARGET_KERNEL_SOURCE),$(KERNEL_MAKE_ENV),$(KERNEL_ARCH),$(KERNEL_CROSS_COMPILE),$(MAKE),$(real_cc))
|
||||
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
||||
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
||||
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
||||
@@ -165,7 +184,7 @@ $(KERNEL_CONFIG): $(KERNEL_OUT)
|
||||
ifeq ($(TARGET_KERNEL_APPEND_DTB), true)
|
||||
TARGET_PREBUILT_INT_KERNEL_IMAGE := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image
|
||||
$(TARGET_PREBUILT_INT_KERNEL_IMAGE): $(KERNEL_USR)
|
||||
$(TARGET_PREBUILT_INT_KERNEL_IMAGE): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
|
||||
$(TARGET_PREBUILT_INT_KERNEL_IMAGE): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
|
||||
$(hide) echo "Building kernel modules..."
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_CFLAGS) Image
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_CFLAGS) modules
|
||||
@@ -179,7 +198,7 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_PREBUILT_INT_KERNEL_IMAGE)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_CFLAGS)
|
||||
else
|
||||
TARGET_PREBUILT_INT_KERNEL_IMAGE := $(TARGET_PREBUILT_INT_KERNEL)
|
||||
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
|
||||
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
|
||||
$(hide) echo "Building kernel..."
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_CFLAGS)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_CFLAGS) modules
|
||||
@@ -188,10 +207,10 @@ $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
|
||||
$(clean-module-folder)
|
||||
endif
|
||||
|
||||
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT)
|
||||
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG)
|
||||
$(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \
|
||||
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_HEADER_DEFCONFIG); \
|
||||
$(call do-kernel-config,$(BUILD_ROOT_LOC)$(KERNEL_OUT),$(KERNEL_CONFIG),$(KERNEL_HEADER_DEFCONFIG),$(TARGET_KERNEL_SOURCE),$(KERNEL_MAKE_ENV),$(KERNEL_ARCH),$(KERNEL_CROSS_COMPILE),$(MAKE),$(real_cc)); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) headers_install;\
|
||||
if [ -d "$(KERNEL_HEADERS_INSTALL)/include/bringup_headers" ]; then \
|
||||
cp -Rf $(KERNEL_HEADERS_INSTALL)/include/bringup_headers/* $(KERNEL_HEADERS_INSTALL)/include/ ;\
|
||||
@@ -200,7 +219,7 @@ $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT)
|
||||
$(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \
|
||||
echo "Used a different defconfig for header generation"; \
|
||||
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) $(KERNEL_DEFCONFIG); fi
|
||||
$(call do-kernel-config,$(BUILD_ROOT_LOC)$(KERNEL_OUT),$(KERNEL_CONFIG),$(TARGET_DEFCONFIG),$(TARGET_KERNEL_SOURCE),$(KERNEL_MAKE_ENV),$(KERNEL_ARCH),$(KERNEL_CROSS_COMPILE),$(MAKE),$(real_cc)); fi
|
||||
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
||||
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
||||
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
DEFCONFIGSRC := $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/configs
|
||||
LJAPDEFCONFIGSRC := ${DEFCONFIGSRC}/vendor/ext_config
|
||||
DEFCONFIG_BASENAME := $(subst -perf,,$(subst _defconfig,,$(notdir $(KERNEL_DEFCONFIG))))
|
||||
PRODUCT_SPECIFIC_DEFCONFIGS := $(DEFCONFIGSRC)/$(KERNEL_DEFCONFIG) $(LJAPDEFCONFIGSRC)/moto-$(DEFCONFIG_BASENAME).config
|
||||
TARGET_DEFCONFIG := $(KERNEL_OUT)/mapphone_defconfig
|
||||
KERNEL_DEBUG_DEFCONFIG := $(LJAPDEFCONFIGSRC)/debug-$(DEFCONFIG_BASENAME).config
|
||||
PRODUCT_KERNEL_DEBUG_DEFCONFIG := $(LJAPDEFCONFIGSRC)/$(PRODUCT_DEBUG_DEFCONFIG)
|
||||
FACTORY_DEFCONFIG := $(LJAPDEFCONFIGSRC)/factory-$(DEFCONFIG_BASENAME).config
|
||||
|
||||
# add debug config file for non-user build
|
||||
ifneq ($(TARGET_BUILD_VARIANT), user)
|
||||
ifneq ($(TARGET_NO_KERNEL_DEBUG), true)
|
||||
ifneq ($(wildcard $(KERNEL_DEBUG_DEFCONFIG)),)
|
||||
PRODUCT_SPECIFIC_DEFCONFIGS += $(KERNEL_DEBUG_DEFCONFIG)
|
||||
# Add a product-specific debug defconfig, too
|
||||
ifneq ($(PRODUCT_DEBUG_DEFCONFIG),)
|
||||
PRODUCT_SPECIFIC_DEFCONFIGS += $(PRODUCT_KERNEL_DEBUG_DEFCONFIG)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_FACTORY_DEFCONFIG), true)
|
||||
PRODUCT_SPECIFIC_DEFCONFIGS += $(FACTORY_DEFCONFIG)
|
||||
endif
|
||||
|
||||
# append all additional configs
|
||||
ifneq ($(KERNEL_EXTRA_CONFIG),)
|
||||
PRODUCT_SPECIFIC_DEFCONFIGS += $(KERNEL_EXTRA_CONFIG:%=$(LJAPDEFCONFIGSRC)/%.config)
|
||||
endif
|
||||
|
||||
define do-make-defconfig
|
||||
$(hide) mkdir -p $(dir $(1))
|
||||
( perl -le 'print "# This file was automatically generated from:\n#\t" . join("\n#\t", @ARGV) . "\n"' $(2) && cat $(2) ) > $(1) || ( rm -f $(1) && false )
|
||||
endef
|
||||
|
||||
#
|
||||
# make combined defconfig file
|
||||
#---------------------------------------
|
||||
$(TARGET_DEFCONFIG): FORCE $(PRODUCT_SPECIFIC_DEFCONFIGS)
|
||||
$(call do-make-defconfig,$@,$(PRODUCT_SPECIFIC_DEFCONFIGS))
|
||||
|
||||
.PHONY: FORCE
|
||||
FORCE:
|
||||
@@ -40,6 +40,9 @@ build_nconfig: $(obj)/nconf
|
||||
|
||||
build_gconfig: $(obj)/gconf
|
||||
|
||||
defoldconfig: $(obj)/conf
|
||||
$< $(silent) --defconfig=.config $(Kconfig)
|
||||
|
||||
build_xconfig: $(obj)/qconf
|
||||
|
||||
localyesconfig localmodconfig: $(obj)/conf
|
||||
|
||||
Reference in new issue
Block a user