diff options
author | Axel Fagerstedt <axel.fagerstedt@linaro.org> | 2012-12-11 10:37:59 +0100 |
---|---|---|
committer | Axel Fagerstedt <axel.fagerstedt@linaro.org> | 2012-12-16 22:23:57 +0100 |
commit | ba0aafe6c9b93bbd73dc6f61ea71373cfb15071d (patch) | |
tree | 2388883502a831f4d1f35a028bcac8c0ab8174af | |
parent | 2c71818b6322613d6aeccd699002bcc5ccb221e9 (diff) |
kernel.mk: let kernel reside in kernel/<vendor>/<device>
Remove assumption that kernel src is in kernel, instead:
1. use TARGET_KERNEL_SOURCE if defined
2. try to use kernel/<vendor>/<device> if it exists
3. try to use kernel
Change-Id: I89dda827dd40916842d518e8cb92225354e3a87b
-rw-r--r-- | tasks/kernel.mk | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/tasks/kernel.mk b/tasks/kernel.mk index 8f2bb49..447af19 100644 --- a/tasks/kernel.mk +++ b/tasks/kernel.mk @@ -8,10 +8,19 @@ REALTOP=$(realpath $(TOP)) KERNEL_OUT=$(realpath $(PRODUCT_OUT))/obj/kernel +# Decide on path for kernel +# 1. use TARGET_KERNEL_SOURCE if defined +# 2. try to use kernel/<vendor>/<device> if it exists +# 3. try to use kernel +TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g') +TARGET_KERNEL_SOURCE ?= $(shell if [ -e $(TARGET_AUTO_KDIR) ]; then echo $(TARGET_AUTO_KDIR); else echo kernel; fi;) +KERNEL_SRC := $(TARGET_KERNEL_SOURCE) + + ifneq ($(strip $(BUILD_TINY_ANDROID)),true) # We can build perf if it's included in the kernel and has the # Android compatibility patch in -ifneq ($(wildcard $(TOP)/kernel/tools/perf/compat-android.h),) +ifneq ($(wildcard $(KERNEL_SRC)/tools/perf/compat-android.h),) INCLUDE_PERF := 1 PERF_DEP := $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libelf_intermediates/libelf.a $(TARGET_OUT_SHARED_LIBRARIES)/libc.so endif @@ -42,7 +51,7 @@ endif android_kernel: $(BOOTLOADER_DEP) $(PERF_DEP) echo building kernel $(KERNEL_TARGET) with config $(KERNEL_CONFIG) for bootloader $(TARGET_BOOTLOADER_TYPE) mkdir -p $(KERNEL_OUT) - cd $(TOP)/kernel &&\ + cd $(KERNEL_SRC) &&\ export PATH=$(KERNEL_COMPILER_PATHS):$(PATH) && \ if [ -e $(KERNEL_TOOLS_PREFIX)ld.bfd ]; then LD=$(KERNEL_TOOLS_PREFIX)ld.bfd; else LD=$(KERNEL_TOOLS_PREFIX)ld; fi && \ if [ $(words $(KERNEL_CONFIG)) -gt 1 ]; \ @@ -52,7 +61,7 @@ android_kernel: $(BOOTLOADER_DEP) $(PERF_DEP) $(MAKE) $(KERNEL_VERBOSE) O=$(KERNEL_OUT) ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_TOOLS_PREFIX) KCFLAGS="$(TARGET_EXTRA_CFLAGS) -fno-pic $(LOCAL_CFLAGS)" LD=$$LD $(KERNEL_TARGET) ifeq ($(INCLUDE_PERF),1) export PATH=$(KERNEL_COMPILER_PATHS):$(PATH) &&\ - cd $(TOP)/kernel/tools/perf &&\ + cd $(KERNEL_SRC)/tools/perf &&\ mkdir -p $(KERNEL_OUT)/tools/perf &&\ if [ -e $(KERNEL_TOOLS_PREFIX)ld.bfd ]; then LD=$(KERNEL_TOOLS_PREFIX)ld.bfd; else LD=$(KERNEL_TOOLS_PREFIX)ld; fi && \ $(MAKE) EXTRA_CFLAGS="$(TARGET_EXTRA_CFLAGS) $(LOCAL_CFLAGS) -isystem $(REALTOP)/bionic/libc/include -isystem $(REALTOP)/bionic/libc/kernel/common -isystem $(REALTOP)/bionic/libc/kernel/arch-arm -isystem $(REALTOP)/bionic/libc/arch-arm/include -I$(REALTOP)/external/elfutils/libelf -isystem $(REALTOP)/bionic/libm/include -isystem $(shell dirname $(KERNEL_TOOLS_PREFIX))/../include -I$(KERNEL_OUT)/tools/perf" BASIC_LDFLAGS="-nostdlib -Wl,-dynamic-linker,/system/bin/linker,-z,muldefs$(shell if test $(PLATFORM_SDK_VERSION) -lt 16; then echo -ne ',-T$(REALTOP)/$(BUILD_SYSTEM)/armelf.x'; fi),-z,nocopyreloc,--no-undefined -L$(REALTOP)/$(TARGET_OUT_STATIC_LIBRARIES) -L$(REALTOP)/$(PRODUCT_OUT)/system/lib -L$(REALTOP)/external/elfutils -L$(realpath $(PRODUCT_OUT))/obj/STATIC_LIBRARIES/libelf_intermediates -lpthread -lelf -lm -lc $(REALTOP)/$(TARGET_CRTBEGIN_DYNAMIC_O) $(REALTOP)/$(TARGET_CRTEND_O)" $(KERNEL_VERBOSE) O=$(KERNEL_OUT)/tools/perf/ OUTPUT=$(KERNEL_OUT)/tools/perf/ ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_TOOLS_PREFIX) LD=$$LD prefix=/system NO_DWARF=1 NO_NEWT=1 NO_LIBPERL=1 NO_LIBPYTHON=1 NO_GTK2=1 NO_STRLCPY=1 WERROR=0 && \ @@ -61,11 +70,11 @@ endif android_kernel_modules: $(INSTALLED_KERNEL_TARGET) $(ACP) export PATH=$(KERNEL_COMPILER_PATHS):$(PATH) &&\ - cd $(TOP)/kernel &&\ + cd $(KERNEL_SRC) &&\ if [ -e $(KERNEL_TOOLS_PREFIX)ld.bfd ]; then LD=$(KERNEL_TOOLS_PREFIX)ld.bfd; else LD=$(KERNEL_TOOLS_PREFIX)ld; fi && \ $(MAKE) $(KERNEL_VERBOSE) O=$(KERNEL_OUT) ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_TOOLS_PREFIX) LD=$$LD EXTRA_CFLAGS="$(EXTRA_CFLAGS) -fno-pic" KCFLAGS="$(TARGET_EXTRA_CFLAGS) -fno-pic $(LOCAL_CFLAGS)" modules mkdir -p $(KERNEL_OUT)/modules_for_android - cd $(TOP)/kernel &&\ + cd $(KERNEL_SRC) &&\ if [ -e $(KERNEL_TOOLS_PREFIX)ld.bfd ]; then LD=$(KERNEL_TOOLS_PREFIX)ld.bfd; else LD=$(KERNEL_TOOLS_PREFIX)ld; fi && \ $(MAKE) O=$(KERNEL_OUT) ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_TOOLS_PREFIX) KCFLAGS="$(TARGET_EXTRA_CFLAGS) -fno-pic $(LOCAL_CFLAGS)" LD=$$LD modules_install INSTALL_MOD_PATH=$(KERNEL_OUT)/modules_for_android mkdir -p $(TARGET_OUT)/modules @@ -75,7 +84,7 @@ android_kernel_modules: $(INSTALLED_KERNEL_TARGET) $(ACP) # artifacts in the O=$(KERNEL_OUT) ifeq ($(TARGET_USE_GATOR),true) -KERNEL_PATH:=$(shell pwd)/kernel +KERNEL_PATH:=$(shell pwd)/$(KERNEL_SRC) ifneq ($(TARGET_GATOR_WITH_MALI_SUPPORT),) ifndef TARGET_MALI_DRIVER_DIR @@ -149,7 +158,7 @@ ifneq ($(strip $(DTB_TARGETS)),) .PHONY : all_dtbs all_dtbs : $(INSTALLED_KERNEL_TARGET) export PATH=$(KERNEL_COMPILER_PATHS):$(PATH) &&\ - cd $(TOP)/kernel && \ + cd $(KERNEL_SRC) && \ $(MAKE) O=$(KERNEL_OUT) ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_TOOLS_PREFIX) $(DTB_TARGETS) $(patsubst %,$(KERNEL_OUT)/arch/arm/boot/%,$(DTB_TARGETS)) : all_dtbs |