Skip to content
Snippets Groups Projects
Select Git revision
  • 2aed351e3f2014138a9551e0cb481128d3f3bd91
  • master default protected
  • android-msm-bullhead-3.10-nougat_kgdb_less_changes
  • android-msm-bullhead-3.10-nougat_kgdb
  • android-msm-bullhead-3.10-nougat_klist
  • android-4.4
  • android-msm-vega-4.4-oreo-daydream
  • android-msm-wahoo-4.4-p-preview-5
  • android-msm-wahoo-4.4-pie
  • android-msm-marlin-3.18-p-preview-5
  • android-msm-marlin-3.18-pie
  • android-msm-wahoo-2018.07-oreo-m2
  • android-msm-wahoo-2018.07-oreo-m4
  • android-msm-wahoo-4.4-p-preview-4
  • android-msm-bullhead-3.10-oreo-m6
  • android-msm-angler-3.10-oreo-m6
  • android-msm-marlin-3.18-p-preview-4
  • android-msm-stargazer-3.18-oreo-wear-dr
  • android-msm-catshark-3.18-oreo-wear-dr
  • android-msm-wahoo-4.4-oreo-m2
  • android-msm-wahoo-4.4-oreo-m4
  • android-daydreamos-8.0.0_r0.5
  • android-8.1.0_r0.92
  • android-8.1.0_r0.91
  • android-daydreamos-8.0.0_r0.4
  • android-p-preview-5_r0.2
  • android-p-preview-5_r0.1
  • android-9.0.0_r0.5
  • android-9.0.0_r0.4
  • android-9.0.0_r0.2
  • android-9.0.0_r0.1
  • android-8.1.0_r0.81
  • android-8.1.0_r0.80
  • android-8.1.0_r0.78
  • android-8.1.0_r0.76
  • android-8.1.0_r0.75
  • android-8.1.0_r0.72
  • android-8.1.0_r0.70
  • android-p-preview-4_r0.2
  • android-p-preview-4_r0.1
  • android-wear-8.0.0_r0.30
41 results

class.c

Blame
  • AndroidKernel.mk 5.27 KiB
    #Android makefile to build kernel as a part of Android Build
    PERL		= perl
    
    KERNEL_TARGET := $(strip $(INSTALLED_KERNEL_TARGET))
    ifeq ($(KERNEL_TARGET),)
    INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
    endif
    
    TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
    ifeq ($(TARGET_KERNEL_ARCH),)
    KERNEL_ARCH := arm
    else
    KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
    endif
    
    TARGET_KERNEL_HEADER_ARCH := $(strip $(TARGET_KERNEL_HEADER_ARCH))
    ifeq ($(TARGET_KERNEL_HEADER_ARCH),)
    KERNEL_HEADER_ARCH := $(KERNEL_ARCH)
    else
    $(warning Forcing kernel header generation only for '$(TARGET_KERNEL_HEADER_ARCH)')
    KERNEL_HEADER_ARCH := $(TARGET_KERNEL_HEADER_ARCH)
    endif
    
    KERNEL_HEADER_DEFCONFIG := $(strip $(KERNEL_HEADER_DEFCONFIG))
    ifeq ($(KERNEL_HEADER_DEFCONFIG),)
    KERNEL_HEADER_DEFCONFIG := $(KERNEL_DEFCONFIG)
    endif
    
    # Force 32-bit binder IPC for 64bit kernel with 32bit userspace
    ifeq ($(KERNEL_ARCH),arm64)
    ifeq ($(TARGET_ARCH),arm)
    KERNEL_CONFIG_OVERRIDE := CONFIG_ANDROID_BINDER_IPC_32BIT=y
    endif
    endif
    
    TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
    ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
    KERNEL_CROSS_COMPILE := arm-eabi-
    else
    KERNEL_CROSS_COMPILE := $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
    endif
    
    ifeq ($(TARGET_PREBUILT_KERNEL),)
    
    KERNEL_GCC_NOANDROID_CHK := $(shell (echo "int main() {return 0;}" | $(KERNEL_CROSS_COMPILE)gcc -E -mno-android - > /dev/null 2>&1 ; echo $$?))
    ifeq ($(strip $(KERNEL_GCC_NOANDROID_CHK)),0)
    KERNEL_CFLAGS := KCFLAGS=-mno-android
    endif
    
    KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
    KERNEL_CONFIG := $(KERNEL_OUT)/.config
    
    ifeq ($(KERNEL_DEFCONFIG)$(wildcard $(KERNEL_CONFIG)),)
    $(error Kernel configuration not defined, cannot build kernel)
    else
    
    ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true)
    $(info Using uncompressed kernel)
    TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image
    else
    TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/zImage
    endif
    
    ifeq ($(TARGET_KERNEL_APPEND_DTB), true)
    $(info Using appended DTB)
    TARGET_PREBUILT_INT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)-dtb
    endif
    
    KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr
    KERNEL_MODULES_INSTALL := system
    KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules
    
    TARGET_PREBUILT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)
    
    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=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
    	$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
    			echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
    			echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
    			$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
    
    $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
    	$(hide) echo "Building kernel..."
    	$(hide) rm -rf $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts
    	$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS)
    	$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS) modules
    	$(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) modules_install
    	$(mv-modules)
    	$(clean-module-folder)
    
    $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT)
    	$(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \
    			$(hide) rm -f ../$(KERNEL_CONFIG); \
    			$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \
    			$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) headers_install; fi
    	$(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \
    			echo "Used a different defconfig for header generation"; \
    			$(hide) rm -f ../$(KERNEL_CONFIG); \
    			$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi
    	$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
    			echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
    			echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
    			$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
    
    kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
    	$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) tags
    
    kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
    	env KCONFIG_NOTIMESTAMP=true \
    	     $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) menuconfig
    	env KCONFIG_NOTIMESTAMP=true \
    	     $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) savedefconfig
    	cp $(KERNEL_OUT)/defconfig kernel/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)
    
    endif
    endif