[COMMON] chub: nanohub: don't reset on chub error status
[GitHub/MotorolaMobilityLLC/kernel-slsi.git] / AndroidKernel.mk
1 #Android makefile to build kernel as a part of Android Build
2
3 ifeq ($(KERNEL_DEFCONFIG),)
4 $(error KERNEL_DEFCONFIG must be set as environment variable)
5 endif
6
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) \
14 --second_offset 0
15 endif
16
17 TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
18 ifeq ($(TARGET_KERNEL_ARCH),)
19 KERNEL_ARCH := arm64
20 else
21 KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
22 endif
23
24 ifeq ($(CROSS_COMPILE),)
25 KERNEL_CROSS_COMPILE := aarch64-linux-android-
26 else
27 KERNEL_CROSS_COMPILE := $(CROSS_COMPILE)
28 endif
29
30 ifeq ($(CLANG_TRIPLE),)
31 CLANG_TRIPLE := aarch64-linux-gnu-
32 else
33 CLANG_TRIPLE := $(CLANG_TRIPLE)
34 endif
35
36 ifeq ($(TARGET_PREBUILT_KERNEL),)
37
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
46
47 ifeq ($(KERNEL_DEFCONFIG),)
48 $(error Kernel configuration not defined, cannot build kernel)
49 else
50
51 ifeq ($(N_KERNEL_BUILD_THREAD),)
52 N_KERNEL_BUILD_THREAD := 1
53 endif
54
55 TARGET_PREBUILT_KERNEL := $(KERNEL_BIN)
56
57 .PHONY: remove-bins
58 remove-bin:
59 $(hide) echo "Clean Up prebuilts"
60 rm -f $(KERNEL_CONFIG)
61 rm -f $(KERNEL_BIN)
62 rm -f $(KERNEL_DTB)
63 rm -f $(INSTALLED_KERNEL_TARGET)
64 rm -f $(INSTALLED_DTBOIMAGE_TARGET)
65 rm -f $(INSTALLED_DTB_TARGET)
66
67 .PHONY: kernel
68 kernel: $(KERNEL_BIN)
69
70 .PHONY: kernel-distclean
71 kernel-distclean:
72 $(MAKE) -C $(TARGET_KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) distclean
73
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)
77
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)
81
82 $(INSTALLED_KERNEL_TARGET): $(INSTALLED_DTBOIMAGE_TARGET)
83 cp $(KERNEL_BIN) $(INSTALLED_KERNEL_TARGET)
84 cp $(KERNEL_DTB) $(INSTALLED_DTB_TARGET)
85
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)
90 rm -f arch
91
92 endif #TARGET_PREBUILT_KERNEL
93 endif #KERNEL_DEFCONFIG