Merge "AndroidKernel: add support to configure DLKM install path"
This commit is contained in:
commit
272879fc1f
7 changed files with 68 additions and 15 deletions
|
@ -6,6 +6,13 @@ ifeq ($(KERNEL_TARGET),)
|
||||||
INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
|
INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
|
||||||
endif
|
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
|
||||||
|
|
||||||
TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
|
TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
|
||||||
ifeq ($(TARGET_KERNEL_ARCH),)
|
ifeq ($(TARGET_KERNEL_ARCH),)
|
||||||
KERNEL_ARCH := arm
|
KERNEL_ARCH := arm
|
||||||
|
@ -91,8 +98,8 @@ TARGET_PREBUILT_INT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)-dtb
|
||||||
endif
|
endif
|
||||||
|
|
||||||
KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr
|
KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr
|
||||||
KERNEL_MODULES_INSTALL := system
|
KERNEL_MODULES_INSTALL ?= system
|
||||||
KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules
|
KERNEL_MODULES_OUT ?= $(PRODUCT_OUT)/$(KERNEL_MODULES_INSTALL)/lib/modules
|
||||||
|
|
||||||
TARGET_PREBUILT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)
|
TARGET_PREBUILT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)
|
||||||
|
|
||||||
|
@ -124,43 +131,43 @@ $(KERNEL_OUT):
|
||||||
mkdir -p $(KERNEL_OUT)
|
mkdir -p $(KERNEL_OUT)
|
||||||
|
|
||||||
$(KERNEL_CONFIG): $(KERNEL_OUT)
|
$(KERNEL_CONFIG): $(KERNEL_OUT)
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
|
||||||
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
||||||
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
||||||
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
||||||
|
|
||||||
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
|
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
|
||||||
$(hide) echo "Building kernel..."
|
$(hide) echo "Building kernel..."
|
||||||
$(hide) rm -rf $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts
|
$(hide) rm -rf $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS)
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS)
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS) modules
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS) modules
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) INSTALL_MOD_PATH=$(BUILD_ROOT_LOC)../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) modules_install
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) INSTALL_MOD_PATH=$(BUILD_ROOT_LOC)../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) modules_install
|
||||||
$(mv-modules)
|
$(mv-modules)
|
||||||
$(clean-module-folder)
|
$(clean-module-folder)
|
||||||
|
|
||||||
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT)
|
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT)
|
||||||
$(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \
|
$(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \
|
||||||
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) headers_install; fi
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) headers_install; fi
|
||||||
$(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \
|
$(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \
|
||||||
echo "Used a different defconfig for header generation"; \
|
echo "Used a different defconfig for header generation"; \
|
||||||
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi
|
||||||
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
||||||
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
||||||
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
||||||
|
|
||||||
kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) tags
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) tags
|
||||||
|
|
||||||
kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
||||||
env KCONFIG_NOTIMESTAMP=true \
|
env KCONFIG_NOTIMESTAMP=true \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) menuconfig
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) menuconfig
|
||||||
env KCONFIG_NOTIMESTAMP=true \
|
env KCONFIG_NOTIMESTAMP=true \
|
||||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) savedefconfig
|
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) savedefconfig
|
||||||
cp $(KERNEL_OUT)/defconfig $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)
|
cp $(KERNEL_OUT)/defconfig $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1030,6 +1030,11 @@ config BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES
|
||||||
Space separated list of names of dtbs to append when
|
Space separated list of names of dtbs to append when
|
||||||
building a concatenated Image.gz-dtb.
|
building a concatenated Image.gz-dtb.
|
||||||
|
|
||||||
|
config BUILD_ARM64_DT_OVERLAY
|
||||||
|
bool "enable DT overlay compilation support"
|
||||||
|
depends on OF
|
||||||
|
help
|
||||||
|
This option enables support for DT overlay compilation.
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Userspace binary formats"
|
menu "Userspace binary formats"
|
||||||
|
|
|
@ -92,6 +92,10 @@ endif
|
||||||
|
|
||||||
KBUILD_DTBS := dtbs
|
KBUILD_DTBS := dtbs
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y)
|
||||||
|
export DTC_FLAGS := -@
|
||||||
|
endif
|
||||||
|
|
||||||
all: $(KBUILD_IMAGE) $(KBUILD_DTBS)
|
all: $(KBUILD_IMAGE) $(KBUILD_DTBS)
|
||||||
|
|
||||||
boot := arch/arm64/boot
|
boot := arch/arm64/boot
|
||||||
|
|
|
@ -64,6 +64,11 @@ ifneq ($(hostprogs-y)$(hostprogs-m),)
|
||||||
include scripts/Makefile.host
|
include scripts/Makefile.host
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Do not include host rules unless needed
|
||||||
|
ifneq ($(dtbo-y),)
|
||||||
|
include scripts/Makefile.dtbo
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(KBUILD_SRC),)
|
ifneq ($(KBUILD_SRC),)
|
||||||
# Create output directory if not already present
|
# Create output directory if not already present
|
||||||
_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
|
_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
|
||||||
|
|
24
scripts/Makefile.dtbo
Normal file
24
scripts/Makefile.dtbo
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
__dtbo := $(sort $(dtbo-y))
|
||||||
|
|
||||||
|
dtbo-base := $(sort $(foreach m,$(__dtbo),$($(m)-base)))
|
||||||
|
dtbo := $(foreach m,$(__dtbo),$(if $($(m)-base),$(m)))
|
||||||
|
|
||||||
|
__dtbo := $(addprefix $(obj)/,$(__dtbo))
|
||||||
|
dtbo-base := $(addprefix $(obj)/,$(dtbo-base))
|
||||||
|
dtbo := $(addprefix $(obj)/,$(dtbo))
|
||||||
|
|
||||||
|
ifneq ($(DTC_OVERLAY_TEST_EXT),)
|
||||||
|
DTC_OVERLAY_TEST = $(DTC_OVERLAY_TEST_EXT)
|
||||||
|
quiet_cmd_dtbo_verify = VERIFY $@
|
||||||
|
cmd_dtbo_verify = $(DTC_OVERLAY_TEST) $(addprefix $(obj)/,$($(@F)-base)) $@ $(dot-target).dtb
|
||||||
|
else
|
||||||
|
cmd_dtbo_verify = true
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(obj)/%.dtbo: $(src)/%.dts FORCE
|
||||||
|
$(call if_changed_dep,dtc)
|
||||||
|
$(call if_changed,dtbo_verify)
|
||||||
|
|
||||||
|
$(call multi_depend, $(dtbo), , -base)
|
||||||
|
|
||||||
|
always += $(dtbo)
|
|
@ -287,10 +287,16 @@ cmd_dt_S_dtb= \
|
||||||
$(obj)/%.dtb.S: $(obj)/%.dtb
|
$(obj)/%.dtb.S: $(obj)/%.dtb
|
||||||
$(call cmd,dt_S_dtb)
|
$(call cmd,dt_S_dtb)
|
||||||
|
|
||||||
|
ifneq ($(DTC_EXT),)
|
||||||
|
DTC = $(DTC_EXT)
|
||||||
|
else
|
||||||
|
DTC = $(objtree)/scripts/dtc/dtc
|
||||||
|
endif
|
||||||
|
|
||||||
quiet_cmd_dtc = DTC $@
|
quiet_cmd_dtc = DTC $@
|
||||||
cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
|
cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
|
||||||
$(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
|
$(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
|
||||||
$(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \
|
$(DTC) -O dtb -o $@ -b 0 \
|
||||||
-i $(dir $<) $(DTC_FLAGS) \
|
-i $(dir $<) $(DTC_FLAGS) \
|
||||||
-d $(depfile).dtc.tmp $(dtc-tmp) ; \
|
-d $(depfile).dtc.tmp $(dtc-tmp) ; \
|
||||||
cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
|
cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# scripts/dtc makefile
|
# scripts/dtc makefile
|
||||||
|
|
||||||
hostprogs-y := dtc
|
hostprogs-y := dtc
|
||||||
|
ifeq ($(DTC_EXT),)
|
||||||
always := $(hostprogs-y)
|
always := $(hostprogs-y)
|
||||||
|
endif
|
||||||
|
|
||||||
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
|
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
|
||||||
srcpos.o checks.o util.o
|
srcpos.o checks.o util.o
|
||||||
|
|
Loading…
Add table
Reference in a new issue