2 # Copyright (C) 2009-2011 The Android-x86 Open Source Project
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 ifeq ($(LINUX_KERNEL_VERSION
),kernel-3.10
)
11 ifneq ($(strip $(MTK_EMULATOR_SUPPORT
)),yes
)
12 ifneq ($(strip $(MTK_PROJECT_NAME
)),)
14 ifneq ($(wildcard $(call my-dir
)/arch
/$(TARGET_ARCH
)/configs
/$(KERNEL_DEFCONFIG
)),)
16 KERNEL_DIR
:= $(call my-dir
)
17 ROOTDIR
:= $(abspath
$(TOP
))
19 ifneq ($(filter /% ~
%,$(OUT_DIR
)),)
20 KERNEL_OUT
:= $(TARGET_OUT_INTERMEDIATES
)/KERNEL_OBJ
22 KERNEL_OUT
:= $(ROOTDIR
)/$(TARGET_OUT_INTERMEDIATES
)/KERNEL_OBJ
25 ifeq ($(TARGET_ARCH
), arm64
)
26 ifeq ($(MTK_APPENDED_DTB_SUPPORT
), yes
)
27 TARGET_PREBUILT_KERNEL
:= $(KERNEL_OUT
)/arch
/$(TARGET_ARCH
)/boot
/Image.gz-dtb
29 TARGET_PREBUILT_KERNEL
:= $(KERNEL_OUT
)/arch
/$(TARGET_ARCH
)/boot
/Image.gz
32 ifeq ($(MTK_APPENDED_DTB_SUPPORT
), yes
)
33 TARGET_PREBUILT_KERNEL
:= $(KERNEL_OUT
)/arch
/$(TARGET_ARCH
)/boot
/zImage-dtb
35 TARGET_PREBUILT_KERNEL
:= $(KERNEL_OUT
)/arch
/$(TARGET_ARCH
)/boot
/zImage
38 TARGET_PREBUILT_KERNEL_BIN
:= $(KERNEL_OUT
)/arch
/$(TARGET_ARCH
)/boot
/zImage.bin
40 TARGET_KERNEL_CONFIG
:= $(KERNEL_OUT
)/.config
41 KERNEL_HEADERS_INSTALL
:= $(KERNEL_OUT
)/usr
43 ifneq ($(strip $(TARGET_NO_KERNEL
)),true
)
44 INSTALLED_KERNEL_TARGET
:= $(PRODUCT_OUT
)/kernel
46 INSTALLED_KERNEL_TARGET
:=
49 ifeq ($(KERNEL_CROSS_COMPILE
),)
50 ifeq ($(TARGET_ARCH
), arm64
)
51 KERNEL_CROSS_COMPILE
:= aarch64-linux-android-
53 KERNEL_CROSS_COMPILE
:= arm-eabi-
60 .PHONY
: kernel kernel-defconfig kernel-menuconfig clean-kernel
61 kernel-menuconfig
: |
$(KERNEL_OUT
)
62 $(MAKE
) -C
$(KERNEL_DIR
) O
=$(KERNEL_OUT
) ARCH
=$(TARGET_ARCH
) MTK_TARGET_PROJECT
=${MTK_TARGET_PROJECT} CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) ROOTDIR
=$(ROOTDIR
) menuconfig
64 kernel-savedefconfig
: |
$(KERNEL_OUT
)
65 cp
$(TARGET_KERNEL_CONFIG
) $(KERNEL_DIR
)/arch
/$(TARGET_ARCH
)/configs
/$(KERNEL_DEFCONFIG
)
67 $(TARGET_PREBUILT_KERNEL
): kernel
70 $(TARGET_KERNEL_CONFIG
) kernel-defconfig
: $(KERNEL_DIR
)/arch
/$(TARGET_ARCH
)/configs
/$(KERNEL_DEFCONFIG
) |
$(KERNEL_OUT
)
71 $(MAKE
) -C
$(KERNEL_DIR
) O
=$(KERNEL_OUT
) ARCH
=$(TARGET_ARCH
) MTK_TARGET_PROJECT
=${MTK_TARGET_PROJECT} CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) ROOTDIR
=$(ROOTDIR
) $(KERNEL_DEFCONFIG
)
72 $(MAKE
) -C
$(KERNEL_DIR
) O
=$(KERNEL_OUT
) ARCH
=$(TARGET_ARCH
) MTK_TARGET_PROJECT
=${MTK_TARGET_PROJECT} CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) ROOTDIR
=$(ROOTDIR
) oldconfig
74 $(KERNEL_HEADERS_INSTALL
): $(TARGET_KERNEL_CONFIG
) |
$(KERNEL_OUT
)
75 $(MAKE
) -C
$(KERNEL_DIR
) O
=$(KERNEL_OUT
) ARCH
=$(TARGET_ARCH
) MTK_TARGET_PROJECT
=${MTK_TARGET_PROJECT} CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) ROOTDIR
=$(ROOTDIR
) headers_install
77 kernel
: $(TARGET_KERNEL_CONFIG
) $(KERNEL_HEADERS_INSTALL
) |
$(KERNEL_OUT
)
78 $(MAKE
) -C
$(KERNEL_DIR
) O
=$(KERNEL_OUT
) ARCH
=$(TARGET_ARCH
) MTK_TARGET_PROJECT
=${MTK_TARGET_PROJECT} CROSS_COMPILE
=$(KERNEL_CROSS_COMPILE
) ROOTDIR
=$(ROOTDIR
)
80 $(INSTALLED_KERNEL_TARGET
): kernel
82 ifeq ($(strip $(MTK_HEADER_SUPPORT
)),yes
)
83 $(TARGET_PREBUILT_KERNEL_BIN
): $(TARGET_PREBUILT_KERNEL
) |
$(HOST_OUT_EXECUTABLES
)/mkimage
84 $(HOST_OUT_EXECUTABLES
)/mkimage
$< KERNEL
0xffffffff > $@
86 $(INSTALLED_KERNEL_TARGET
): $(TARGET_PREBUILT_KERNEL_BIN
) |
$(ACP
)
87 $(copy-file-to-target
)
89 $(INSTALLED_KERNEL_TARGET
): $(TARGET_PREBUILT_KERNEL
) |
$(ACP
)
90 $(copy-file-to-target
)
99 endif # Ifeq ($(LINUX_KERNEL_VERSION),kernel-3.10)