lib: libdss: only execute libdss-build.sh when CC is clang
[GitHub/MotorolaMobilityLLC/kernel-slsi.git] / AndroidKernel.mk
CommitLineData
d2d91247
YK
1#Android makefile to build kernel as a part of Android Build
2
3ifeq ($(KERNEL_DEFCONFIG),)
4$(error KERNEL_DEFCONFIG must be set as environment variable)
5endif
6
7ifeq ($(INSTALLED_KERNEL_TARGET),)
8INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
5e65f8b9 9INSTALLED_DTBOIMAGE_TARGET := $(PRODUCT_OUT)/dtbo.img
48b1217f 10BOARD_PREBUILT_DTBOIMAGE := $(PRODUCT_OUT)/prebuilt_dtbo.img
d2d91247 11INSTALLED_DTB_TARGET := $(PRODUCT_OUT)/dtb.img
215c2e67
YK
12BOARD_MKBOOTIMG_ARGS += \
13 --second $(INSTALLED_DTB_TARGET) \
14 --second_offset 0
d2d91247
YK
15endif
16
17TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
18ifeq ($(TARGET_KERNEL_ARCH),)
19KERNEL_ARCH := arm64
20else
21KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
22endif
23
24ifeq ($(CROSS_COMPILE),)
25KERNEL_CROSS_COMPILE := aarch64-linux-android-
26else
27KERNEL_CROSS_COMPILE := $(CROSS_COMPILE)
28endif
29
30ifeq ($(CLANG_TRIPLE),)
31CLANG_TRIPLE := aarch64-linux-gnu-
32else
33CLANG_TRIPLE := $(CLANG_TRIPLE)
34endif
35
36ifeq ($(TARGET_PREBUILT_KERNEL),)
37
38TARGET_KERNEL_SOURCE := kernel/$(TARGET_KERNEL)
39KERNEL_CONFIG := $(TARGET_KERNEL_SOURCE)/.config
40KERNEL_BOOT := $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/boot
41KERNEL_BIN := $(KERNEL_BOOT)/Image
42KERNEL_DTB_DIR := $(KERNEL_BOOT)/dts/exynos
f573bcc7 43KERNEL_DTB := $(KERNEL_DTB_DIR)/exynos9610.dtb
d2d91247 44KERNEL_DTBO_CFG := $(KERNEL_DTB_DIR)/exynos9610_dtboimg.cfg
d2d91247
YK
45MKDTIMG := $(HOST_OUT_EXECUTABLES)/mkdtimg
46
dcaf6363
SK
47KERNEL_MERGE_CONFIG := $(TARGET_KERNEL_SOURCE)/scripts/kconfig/merge_config.sh
48KERNEL_CONFIG_BASE := $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/configs
49KERNEL_DEFCONFIG_PATH := $(KERNEL_CONFIG_BASE)/$(KERNEL_DEFCONFIG)
50
d2d91247
YK
51ifeq ($(KERNEL_DEFCONFIG),)
52$(error Kernel configuration not defined, cannot build kernel)
53else
54
dcaf6363
SK
55ifeq ($(TARGET_BUILD_VARIANT),eng)
56MAKE_CONFIG_CMD := $(MAKE) -C $(TARGET_KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
57else
58ifeq ($(TARGET_BUILD_VARIANT),userdebug)
59KERNEL_USER_CFG := $(KERNEL_CONFIG_BASE)/$(TARGET_SOC)_userdebug.cfg
60else
61KERNEL_USER_CFG := $(KERNEL_CONFIG_BASE)/$(TARGET_SOC)_user.cfg
62endif
63MAKE_CONFIG_CMD := ARCH=$(KERNEL_ARCH) $(KERNEL_MERGE_CONFIG) -m -O $(TARGET_KERNEL_SOURCE) $(KERNEL_DEFCONFIG_PATH) $(KERNEL_USER_CFG);
64MAKE_CONFIG_CMD += $(MAKE) -C $(TARGET_KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) KCONFIG_ALLCONFIG=.config alldefconfig
65endif
66
d2d91247
YK
67ifeq ($(N_KERNEL_BUILD_THREAD),)
68N_KERNEL_BUILD_THREAD := 1
69endif
70
71TARGET_PREBUILT_KERNEL := $(KERNEL_BIN)
72
a948ffd0 73.PHONY: phony-rebuild
d2d91247
YK
74
75.PHONY: kernel
76kernel: $(KERNEL_BIN)
77
78.PHONY: kernel-distclean
79kernel-distclean:
80 $(MAKE) -C $(TARGET_KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) distclean
81
a948ffd0 82$(KERNEL_CONFIG): phony-rebuild
d2d91247 83 $(hide) echo "make $(KERNEL_DEFCONFIG)"
dcaf6363 84 $(MAKE_CONFIG_CMD)
d2d91247
YK
85
86$(KERNEL_BIN): $(KERNEL_CONFIG)
87 $(hide) echo "Building kernel..."
88 $(MAKE) -C $(TARGET_KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) CLANG_TRIPLE=$(CLANG_TRIPLE) CC=clang -j$(N_KERNEL_BUILD_THREAD)
89
48b1217f 90$(INSTALLED_KERNEL_TARGET): $(INSTALLED_DTBOIMAGE_TARGET)
d2d91247
YK
91 cp $(KERNEL_BIN) $(INSTALLED_KERNEL_TARGET)
92 cp $(KERNEL_DTB) $(INSTALLED_DTB_TARGET)
48b1217f
TA
93
94$(BOARD_PREBUILT_DTBOIMAGE): $(MKDTIMG) $(KERNEL_DTBO_CFG) $(KERNEL_BIN)
5e65f8b9 95 $(hide) echo "Building DTBOIMAGE..."
d2d91247 96 ln -sf $(TARGET_KERNEL_SOURCE)/arch
48b1217f 97 $(MKDTIMG) cfg_create $@ $(KERNEL_DTBO_CFG)
d2d91247 98 rm -f arch
d2d91247
YK
99
100endif #TARGET_PREBUILT_KERNEL
101endif #KERNEL_DEFCONFIG