Debug build for msm-copper target fails due to usage of relative path to get the Device Tree file. This change replaces the relative path with absolute path from top level directory in the workspace. Change-Id: Idd39679028209cf75c327f61703e9fc51ad32d29 Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
90 lines
3.2 KiB
Makefile
90 lines
3.2 KiB
Makefile
#Android makefile to build kernel as a part of Android Build
|
|
PERL = perl
|
|
|
|
ifeq ($(TARGET_PREBUILT_KERNEL),)
|
|
|
|
KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
|
|
KERNEL_CONFIG := $(KERNEL_OUT)/.config
|
|
TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/arm/boot/zImage
|
|
KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr
|
|
KERNEL_MODULES_INSTALL := system
|
|
KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules
|
|
KERNEL_IMG=$(KERNEL_OUT)/arch/arm/boot/Image
|
|
|
|
MSM_ARCH ?= $(shell $(PERL) -e 'while (<>) {$$a = $$1 if /CONFIG_ARCH_((?:MSM|QSD)[a-zA-Z0-9]+)=y/; $$r = $$1 if /CONFIG_MSM_SOC_REV_(?!NONE)(\w+)=y/;} print lc("$$a$$r\n");' $(KERNEL_CONFIG))
|
|
KERNEL_USE_OF ?= $(shell $(PERL) -e '$$of = "n"; while (<>) { if (/CONFIG_USE_OF=y/) { $$of = "y"; break; } } print $$of;' kernel/arch/arm/configs/$(KERNEL_DEFCONFIG))
|
|
|
|
ifeq "$(KERNEL_USE_OF)" "y"
|
|
KERNEL_ZIMG = $(KERNEL_OUT)/arch/arm/boot/zImage
|
|
DTB_FILE = $(KERNEL_OUT)/arch/arm/boot/$(MSM_ARCH).dtb
|
|
DTS_FILE = $(TOP)/kernel/arch/arm/boot/dts/$(MSM_ARCH).dts
|
|
FULL_KERNEL = $(KERNEL_OUT)/arch/arm/boot/$(MSM_ARCH)-zImage
|
|
DTC = $(KERNEL_OUT)/scripts/dtc/dtc
|
|
|
|
define append-dtb
|
|
md $(KERNEL_OUT)/arch/arm/boot;\
|
|
$(DTC) -p 1024 -O dtb -o $(DTB_FILE) $(DTS_FILE);\
|
|
cat $(KERNEL_ZIMG) $(DTB_FILE) > $(FULL_KERNEL)
|
|
endef
|
|
else
|
|
FULL_KERNEL = $(KERNEL_IMG)
|
|
|
|
define append-dtb
|
|
endef
|
|
endif
|
|
|
|
ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true)
|
|
$(info Using uncompressed kernel)
|
|
TARGET_PREBUILT_KERNEL := $(KERNEL_OUT)/piggy
|
|
else
|
|
TARGET_PREBUILT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)
|
|
endif
|
|
|
|
define mv-modules
|
|
mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.dep`;\
|
|
if [ "$$mdpath" != "" ];then\
|
|
mpath=`dirname $$mdpath`;\
|
|
ko=`find $$mpath/kernel -type f -name *.ko`;\
|
|
for i in $$ko; do mv $$i $(KERNEL_MODULES_OUT)/; done;\
|
|
fi
|
|
endef
|
|
|
|
define clean-module-folder
|
|
mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.dep`;\
|
|
if [ "$$mdpath" != "" ];then\
|
|
mpath=`dirname $$mdpath`; rm -rf $$mpath;\
|
|
fi
|
|
endef
|
|
|
|
$(KERNEL_OUT):
|
|
mkdir -p $(KERNEL_OUT)
|
|
|
|
$(KERNEL_CONFIG): $(KERNEL_OUT)
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- $(KERNEL_DEFCONFIG)
|
|
|
|
$(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL)
|
|
$(hide) gunzip -c $(KERNEL_OUT)/arch/arm/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy
|
|
|
|
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi-
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=arm CROSS_COMPILE=arm-eabi- modules_install
|
|
$(mv-modules)
|
|
$(clean-module-folder)
|
|
$(append-dtb)
|
|
|
|
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG)
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- headers_install
|
|
|
|
kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- tags
|
|
|
|
kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
|
env KCONFIG_NOTIMESTAMP=true \
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig
|
|
env KCONFIG_NOTIMESTAMP=true \
|
|
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- savedefconfig
|
|
cp $(KERNEL_OUT)/defconfig kernel/arch/arm/configs/$(KERNEL_DEFCONFIG)
|
|
|
|
endif
|