1 #Android makefile to build kernel as a part of Android Build
3 ifeq ($(KERNEL_DEFCONFIG
),)
4 $(error KERNEL_DEFCONFIG must be set
as environment variable
)
7 ifeq ($(INSTALLED_KERNEL_TARGET
),)
8 INSTALLED_KERNEL_TARGET
:= $(PRODUCT_OUT
)/kernel
9 INSTALLED_DTBOIMAGE_TARGET
:= $(PRODUCT_OUT
)/dtbo.img
10 BOARD_PREBUILT_DTBOIMAGE
:= $(PRODUCT_OUT
)/prebuilt_dtbo.img
11 INSTALLED_DTB_TARGET
:= $(PRODUCT_OUT
)/dtb.img
12 BOARD_MKBOOTIMG_ARGS
+= \
13 --second
$(INSTALLED_DTB_TARGET
) \
17 TARGET_KERNEL_ARCH
:= $(strip $(TARGET_KERNEL_ARCH
))
18 ifeq ($(TARGET_KERNEL_ARCH
),)
21 KERNEL_ARCH
:= $(TARGET_KERNEL_ARCH
)
24 ifeq ($(CROSS_COMPILE
),)
25 KERNEL_CROSS_COMPILE
:= aarch64-linux-android-
27 KERNEL_CROSS_COMPILE
:= $(CROSS_COMPILE
)
30 ifeq ($(CLANG_TRIPLE
),)
31 CLANG_TRIPLE
:= aarch64-linux-gnu-
33 CLANG_TRIPLE
:= $(CLANG_TRIPLE
)
36 ifeq ($(TARGET_PREBUILT_KERNEL
),)
38 TARGET_KERNEL_SOURCE
:= kernel
/$(TARGET_KERNEL
)
39 KERNEL_CONFIG
:= $(TARGET_KERNEL_SOURCE
)/.config
40 KERNEL_BOOT
:= $(TARGET_KERNEL_SOURCE
)/arch
/$(KERNEL_ARCH
)/boot
41 KERNEL_BIN
:= $(KERNEL_BOOT
)/Image
42 KERNEL_DTB_DIR
:= $(KERNEL_BOOT
)/dts
/exynos
43 KERNEL_DTB
:= $(KERNEL_DTB_DIR
)/exynos9610.dtb
44 KERNEL_DTBO_CFG
:= $(KERNEL_DTB_DIR
)/exynos9610_dtboimg.cfg
45 MKDTIMG
:= $(HOST_OUT_EXECUTABLES
)/mkdtimg
47 ifeq ($(KERNEL_DEFCONFIG
),)
48 $(error Kernel configuration not defined
, cannot build kernel
)
51 ifeq ($(N_KERNEL_BUILD_THREAD
),)
52 N_KERNEL_BUILD_THREAD
:= 1
55 TARGET_PREBUILT_KERNEL
:= $(KERNEL_BIN
)
59 $(hide
) echo
"Clean Up prebuilts"
60 rm -f
$(KERNEL_CONFIG
)
63 rm -f
$(INSTALLED_KERNEL_TARGET
)
64 rm -f
$(INSTALLED_DTBOIMAGE_TARGET
)
65 rm -f
$(INSTALLED_DTB_TARGET
)
70 .PHONY
: kernel-distclean
72 $(MAKE
) -C
$(TARGET_KERNEL_SOURCE
) ARCH
=$(KERNEL_ARCH
) CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) distclean
74 $(KERNEL_CONFIG
): remove-bins
75 $(hide
) echo
"make $(KERNEL_DEFCONFIG)"
76 $(MAKE
) -C
$(TARGET_KERNEL_SOURCE
) ARCH
=$(KERNEL_ARCH
) CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) $(KERNEL_DEFCONFIG
)
78 $(KERNEL_BIN
): $(KERNEL_CONFIG
)
79 $(hide
) echo
"Building kernel..."
80 $(MAKE
) -C
$(TARGET_KERNEL_SOURCE
) ARCH
=$(KERNEL_ARCH
) CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) CLANG_TRIPLE
=$(CLANG_TRIPLE
) CC
=clang
-j
$(N_KERNEL_BUILD_THREAD
)
82 $(INSTALLED_KERNEL_TARGET
): $(INSTALLED_DTBOIMAGE_TARGET
)
83 cp
$(KERNEL_BIN
) $(INSTALLED_KERNEL_TARGET
)
84 cp
$(KERNEL_DTB
) $(INSTALLED_DTB_TARGET
)
86 $(BOARD_PREBUILT_DTBOIMAGE
): $(MKDTIMG
) $(KERNEL_DTBO_CFG
) $(KERNEL_BIN
)
87 $(hide
) echo
"Building DTBOIMAGE..."
88 ln
-sf
$(TARGET_KERNEL_SOURCE
)/arch
89 $(MKDTIMG
) cfg_create
$@
$(KERNEL_DTBO_CFG
)
92 endif #TARGET_PREBUILT_KERNEL
93 endif #KERNEL_DEFCONFIG