Defenderconfig: add extra config for product
authorzhaoxp3 <zhaoxp3@motorola.com>
Wed, 15 Aug 2018 05:22:22 +0000 (13:22 +0800)
committerxiest1 <xiest1@lenovo.com>
Tue, 5 Nov 2019 09:30:14 +0000 (17:30 +0800)
add extra kernel config for product

Change-Id: Iadc24ef2b167d4c76178de532134ea5a057dcfa1
Signed-off-by: zhaoxp3 <zhaoxp3@motorola.com>
Reviewed-on: https://gerrit.mot.com/1227129
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Submit-Approved: Jira Key

AndroidKernel.mk
arch/arm64/configs/ext_config/moto-erd9610-kane.config [new file with mode: 0644]
defconfig.mk [new file with mode: 0644]
scripts/kconfig/Makefile

index bc2a4379119c3fc173f507a8d793d5a171e3458f..8722fd847a98391c9a3978f2de3b4acfdf0e8b4d 100644 (file)
@@ -22,6 +22,13 @@ else
 KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
 endif
 
+TARGET_KERNEL_MAKE_ENV := $(strip $(TARGET_KERNEL_MAKE_ENV))
+ifeq ($(TARGET_KERNEL_MAKE_ENV),)
+KERNEL_MAKE_ENV :=
+else
+KERNEL_MAKE_ENV := $(TARGET_KERNEL_MAKE_ENV)
+endif
+
 ifeq ($(CROSS_COMPILE),)
 KERNEL_CROSS_COMPILE := aarch64-linux-android-
 else
@@ -49,6 +56,9 @@ else
 CLANG_TRIPLE := $(CLANG_TRIPLE)
 endif
 
+BUILD_ROOT_LOC := ../../
+KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/kernel/$(TARGET_KERNEL)
+KERNEL_OUT := $(KERNEL_OBJECTS)
 ifeq ($(TARGET_PREBUILT_KERNEL),)
 
 KERNEL_CONFIG := $(KERNEL_OBJECTS)/.config
@@ -95,9 +105,27 @@ ifeq ($(N_KERNEL_BUILD_THREAD),)
 N_KERNEL_BUILD_THREAD := 1
 endif
 
+include $(TARGET_KERNEL_SOURCE)/defconfig.mk
+
+
 TARGET_PREBUILT_KERNEL := $(KERNEL_BIN)
 
-.PHONY: phony-rebuild
+# 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) defoldconfig ) || ( rm -f $(2) && false )
+endef
+
+
+$(KERNEL_OUT):
+       mkdir -p $(KERNEL_OUT)
 
 .PHONY: kernel
 kernel: $(KERNEL_BIN)
@@ -106,14 +134,11 @@ kernel: $(KERNEL_BIN)
 kernel-distclean:
        $(MAKE) -C $(TARGET_KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) distclean
 
-$(KERNEL_CONFIG): phony-rebuild
-ifeq ($(TARGET_PRODUCT),kane_factory)
-       cat $(ERD9609_DEFCONFIG_PATH) $(ROBUSTA2_FACTORY_DEFCONFIG_PATH) > $(ERD9609_ROBUSTA2_FACTORY_DEFCONFIG_PATH)
-endif
-       $(hide) echo "make $(KERNEL_DEFCONFIG)"
-       $(MAKE_CONFIG_CMD)
+$(KERNEL_CONFIG): $(TARGET_DEFCONFIG)
+       $(hide) echo "make $(KERNEL_CONFIG)"
+       $(call do-kernel-config,$(BUILD_ROOT_LOC)$(KERNEL_OUT),$@,$(TARGET_DEFCONFIG),$(TARGET_KERNEL_SOURCE),$(KERNEL_MAKE_ENV),$(KERNEL_ARCH),$(KERNEL_CROSS_COMPILE),$(MAKE))
 
-$(KERNEL_BIN): $(KERNEL_CONFIG)
+$(KERNEL_BIN): $(KERNEL_OUT) $(KERNEL_CONFIG)
        $(hide) echo "Building kernel..."
        $(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(PWD)/$(KERNEL_OBJECTS) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) CLANG_TRIPLE=$(CLANG_TRIPLE) CC=$(CC) $(LLVM_OPTIONS) -j$(N_KERNEL_BUILD_THREAD)
 
diff --git a/arch/arm64/configs/ext_config/moto-erd9610-kane.config b/arch/arm64/configs/ext_config/moto-erd9610-kane.config
new file mode 100644 (file)
index 0000000..5845457
--- /dev/null
@@ -0,0 +1,4 @@
+#MOTO
+CONFIG_USB_ANDROID_USBNET=y
+CONFIG_BOOTINFO=y
+CONFIG_PSTORE_RAM_ANNOTATION_APPEND=y
diff --git a/defconfig.mk b/defconfig.mk
new file mode 100644 (file)
index 0000000..b7492a1
--- /dev/null
@@ -0,0 +1,47 @@
+DEFCONFIGSRC                   := $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/configs
+LJAPDEFCONFIGSRC               := ${DEFCONFIGSRC}/ext_config
+DEFCONFIG_BASENAME             := $(subst -perf,,$(subst _defconfig,,$(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
+
+#previous config not defined yet
+PRODUCT_SPECIFIC_DEFCONFIGS :=  $(DEFCONFIGSRC)/$(KERNEL_DEFCONFIG)
+# 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:
index 297c1bf35140ac0823e33110350430bd0bec0cdc..ab7e056efa8dac69e4413a1ee6f0e26a1982c1a5 100644 (file)
@@ -34,6 +34,9 @@ config: $(obj)/conf
 nconfig: $(obj)/nconf
        $< $(silent) $(Kconfig)
 
+defoldconfig: $(obj)/conf
+       $< --defconfig=.config $(Kconfig)
+
 silentoldconfig: $(obj)/conf
        $(Q)mkdir -p include/config include/generated
        $(Q)test -e include/generated/autoksyms.h || \