summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/Makefile21
-rw-r--r--core/clang/HOST_x86_common.mk47
-rw-r--r--core/clang/config.mk16
-rw-r--r--core/combo/HOST_linux-x86.mk6
-rw-r--r--core/combo/HOST_linux-x86_64.mk6
-rw-r--r--core/config.mk21
-rw-r--r--core/dumpvar.mk2
-rw-r--r--core/main.mk13
-rw-r--r--core/tasks/kernel.mk52
-rw-r--r--core/tasks/xloader.mk59
10 files changed, 173 insertions, 70 deletions
diff --git a/core/Makefile b/core/Makefile
index e14ff88..16eb5a1 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -477,8 +477,16 @@ else
endif # TARGET_NO_BOOTLOADER
ifneq ($(strip $(TARGET_NO_KERNEL)),true)
INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
+ INSTALLED_RECOVERY_KERNEL_TARGET := $(PRODUCT_OUT)/kernel-recovery
else
INSTALLED_KERNEL_TARGET :=
+ INSTALLED_RECOVERY_KERNEL_TARGET :=
+endif
+
+ifeq ($(TARGET_XLOADER_MLO),true)
+INSTALLED_XLOADER_MODULE := $(PRODUCT_OUT)/MLO
+else
+INSTALLED_XLOADER_MODULE := $(PRODUCT_OUT)/x-load.bin
endif
# -----------------------------------------------------------------
@@ -695,7 +703,7 @@ endif # TARGET_BUILD_APPS
# make the target NOTICE files depend on this particular file too, which will
# then be in the right directory for the find in combine-notice-files to work.
$(kernel_notice_file): \
- prebuilts/qemu-kernel/arm/LINUX_KERNEL_COPYING \
+ kernel/samsung/smdk4412/COPYING \
| $(ACP)
@echo -e ${CL_CYN}"Copying:"${CL_RST}" $@"
$(hide) mkdir -p $(dir $@)
@@ -948,10 +956,6 @@ OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem
ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem
PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
-else
- PRODUCT_EXTRA_RECOVERY_KEYS += \
- build/target/product/security/cm \
- build/target/product/security/cm-devkey
endif
# Generate a file containing the keys that will be read by the
@@ -1029,7 +1033,8 @@ $(recovery_ramdisk): $(MINIGZIP) \
$(hide) $(MINIGZIP) < $(recovery_uncompressed_ramdisk) > $@
ifndef BOARD_CUSTOM_BOOTIMG_MK
-$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) $(recovery_kernel) \
+$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) \
+ $(recovery_ramdisk) $(recovery_kernel) \
$(RECOVERYIMAGE_EXTRA_DEPS)
@echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST}
$(call build-recoveryimage-target, $@)
@@ -1925,7 +1930,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
$(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
$(BUILT_TARGET_FILES_PACKAGE) $@
-CM_TARGET_PACKAGE := $(PRODUCT_OUT)/lineage-$(LINEAGE_VERSION).zip
+CM_TARGET_PACKAGE := $(PRODUCT_OUT)/$(REPLICANT_VERSION).zip
.PHONY: otapackage bacon
otapackage: $(INTERNAL_OTA_PACKAGE_TARGET)
@@ -2115,7 +2120,7 @@ sdk_dir := $(HOST_OUT)/sdk/$(TARGET_PRODUCT)
# darwin-x86 --> android-sdk_12345_mac-x86
# windows-x86 --> android-sdk_12345_windows
#
-sdk_name := android-sdk_$(FILE_NAME_TAG)
+sdk_name := replicant-sdk
ifeq ($(HOST_OS),darwin)
INTERNAL_SDK_HOST_OS_NAME := mac
else
diff --git a/core/clang/HOST_x86_common.mk b/core/clang/HOST_x86_common.mk
index 7b3d6b5..31415ef 100644
--- a/core/clang/HOST_x86_common.mk
+++ b/core/clang/HOST_x86_common.mk
@@ -10,43 +10,38 @@ endif
ifeq ($(HOST_OS),linux)
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS := \
- --gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
- --sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
- -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin
+ --gcc-toolchain=toolchain/gcc/host/install \
+ -Btoolchain/gcc/host/install/x86_64-linux/bin
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CFLAGS := \
- --gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)
+ --gcc-toolchain=toolchain/gcc/host/install \
+ -isystem toolchain/headers/clang
ifneq ($(strip $($(clang_2nd_arch_prefix)HOST_IS_64_BIT)),)
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CPPFLAGS := \
- --gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
- --sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
- -isystem $($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/include/c++/4.8 \
- -isystem $($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/include/c++/4.8/x86_64-linux \
- -isystem $($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/include/c++/4.8/backward
+ --gcc-toolchain=toolchain/gcc/host/install \
+ -isystem toolchain/headers/clang
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS := \
- --gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
- --sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
- -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \
- -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/lib/gcc/x86_64-linux/4.8 \
- -L$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/lib/gcc/x86_64-linux/4.8 \
- -L$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/lib64/
+ --gcc-toolchain=toolchain/gcc/host/install \
+ -Btoolchain/gcc/host/install/x86_64-linux/bin \
+ -Btoolchain/gcc/host/install/lib/gcc/x86_64-linux/4.9.x \
+ -Ltoolchain/gcc/host/install/lib/gcc/x86_64-linux/4.9.x \
+ -Ltoolchain/gcc/host/install/lib64
+
else
+
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CPPFLAGS := \
- --gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
- --sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
- -isystem $($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/include/c++/4.8 \
- -isystem $($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/include/c++/4.8/x86_64-linux/32 \
- -isystem $($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/include/c++/4.8/backward
+ --gcc-toolchain=toolchain/gcc/host/install \
+ -isystem toolchain/headers/clang
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS := \
- --gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
- --sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
- -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \
- -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/lib/gcc/x86_64-linux/4.8/32 \
- -L$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/lib/gcc/x86_64-linux/4.8/32 \
- -L$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/lib32/
+ --gcc-toolchain=toolchain/gcc/host/install \
+ -Btoolchain/gcc/host/install/x86_64-linux/bin \
+ -Btoolchain/gcc/host/install/lib/gcc/x86_64-linux/4.9.x/32 \
+ -Ltoolchain/gcc/host/install/lib/gcc/x86_64-linux/4.9.x/32 \
+ -Ltoolchain/gcc/host/install/lib32
+
endif
endif # Linux
diff --git a/core/clang/config.mk b/core/clang/config.mk
index b887c83..46707c0 100644
--- a/core/clang/config.mk
+++ b/core/clang/config.mk
@@ -7,13 +7,13 @@ WITHOUT_HOST_CLANG := true
endif
LLVM_PREBUILTS_VERSION := 3.6
-LLVM_PREBUILTS_PATH := prebuilts/clang/$(BUILD_OS)-x86/host/$(LLVM_PREBUILTS_VERSION)/bin
-LLVM_RTLIB_PATH := $(LLVM_PREBUILTS_PATH)/../lib/clang/$(LLVM_PREBUILTS_VERSION)/lib/linux/
+#LLVM_PREBUILTS_PATH := prebuilts/clang/$(BUILD_OS)-x86/host/$(LLVM_PREBUILTS_VERSION)/bin
+#LLVM_RTLIB_PATH := $(LLVM_PREBUILTS_PATH)/../lib/clang/$(LLVM_PREBUILTS_VERSION)/lib/linux/
-CLANG := $(LLVM_PREBUILTS_PATH)/clang$(BUILD_EXECUTABLE_SUFFIX)
-CLANG_CXX := $(LLVM_PREBUILTS_PATH)/clang++$(BUILD_EXECUTABLE_SUFFIX)
-LLVM_AS := $(LLVM_PREBUILTS_PATH)/llvm-as$(BUILD_EXECUTABLE_SUFFIX)
-LLVM_LINK := $(LLVM_PREBUILTS_PATH)/llvm-link$(BUILD_EXECUTABLE_SUFFIX)
+CLANG := toolchain/clang/bin/clang
+CLANG_CXX := toolchain/clang/bin/clang++
+LLVM_AS := toolchain/clang/bin/llvm-as
+LLVM_LINK := toolchain/clang/bin/llvm-link
CLANG_TBLGEN := $(BUILD_OUT_EXECUTABLES)/clang-tblgen$(BUILD_EXECUTABLE_SUFFIX)
LLVM_TBLGEN := $(BUILD_OUT_EXECUTABLES)/llvm-tblgen$(BUILD_EXECUTABLE_SUFFIX)
@@ -153,7 +153,5 @@ ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES := libasan
# provides to Clang (for supporting features like -ftrapv).
COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES := libcompiler_rt-extras
-ifeq ($(HOST_PREFER_32_BIT),true)
-# We don't have 32-bit prebuilt libLLVM/libclang, so force to build them from source.
FORCE_BUILD_LLVM_COMPONENTS := true
-endif
+
diff --git a/core/combo/HOST_linux-x86.mk b/core/combo/HOST_linux-x86.mk
index 8eda6c0..92219b6 100644
--- a/core/combo/HOST_linux-x86.mk
+++ b/core/combo/HOST_linux-x86.mk
@@ -20,9 +20,9 @@
ifeq ($(strip $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)),)
$(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/bin/x86_64-linux-
endif
-$(combo_2nd_arch_prefix)HOST_CC := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)gcc
-$(combo_2nd_arch_prefix)HOST_CXX := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)g++
-$(combo_2nd_arch_prefix)HOST_AR := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)ar
+$(combo_2nd_arch_prefix)HOST_CC := toolchain/gcc/host/install/bin/x86_64-linux-gcc
+$(combo_2nd_arch_prefix)HOST_CXX := toolchain/gcc/host/install/bin/x86_64-linux-g++
+$(combo_2nd_arch_prefix)HOST_AR := toolchain/gcc/host/install/bin/x86_64-linux-ar
# gcc location for clang; to be updated when clang is updated
$(combo_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/
diff --git a/core/combo/HOST_linux-x86_64.mk b/core/combo/HOST_linux-x86_64.mk
index e268e41..0f9e37b 100644
--- a/core/combo/HOST_linux-x86_64.mk
+++ b/core/combo/HOST_linux-x86_64.mk
@@ -20,9 +20,9 @@
ifeq ($(strip $(HOST_TOOLCHAIN_PREFIX)),)
HOST_TOOLCHAIN_PREFIX := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/bin/x86_64-linux-
endif
-HOST_CC := $(HOST_TOOLCHAIN_PREFIX)gcc
-HOST_CXX := $(HOST_TOOLCHAIN_PREFIX)g++
-HOST_AR := $(HOST_TOOLCHAIN_PREFIX)ar
+HOST_CC := toolchain/gcc/host/install/bin/x86_64-linux-gcc
+HOST_CXX := toolchain/gcc/host/install/bin/x86_64-linux-g++
+HOST_AR := toolchain/gcc/host/install/bin/x86_64-linux-ar
# gcc location for clang; to be updated when clang is updated
HOST_TOOLCHAIN_FOR_CLANG := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/
diff --git a/core/config.mk b/core/config.mk
index ab60701..d1a0464 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -356,8 +356,6 @@ ifeq ($(strip $(WITH_SYNTAX_CHECK)),0)
WITH_SYNTAX_CHECK :=
endif
-# Disable WITH_STATIC_ANALYZER and WITH_SYNTAX_CHECK if tool can't be found
-SYNTAX_TOOLS_PREFIX := prebuilts/misc/$(HOST_PREBUILT_TAG)/analyzer/bin
ifneq ($(strip $(WITH_STATIC_ANALYZER)),)
ifeq ($(wildcard $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer),)
$(warning *** Disable WITH_STATIC_ANALYZER because $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer does not exist)
@@ -412,16 +410,16 @@ JACK_LAUNCHER_JAR := $(HOST_OUT_JAVA_LIBRARIES)/jack-launcher.jar
JILL_JAR := $(HOST_OUT_JAVA_LIBRARIES)/jill.jar
JACK_MULTIDEX_DEFAULT_PREPROCESSOR := frameworks/multidex/library/resources/JACK-INF/legacyMultidexInstallation.jpp
-LEX := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/flex/flex-2.5.39
+LEX := /usr/bin/flex
# The default PKGDATADIR built in the prebuilt bison is a relative path
# external/bison/data.
# To run bison from elsewhere you need to set up enviromental variable
# BISON_PKGDATADIR.
BISON_PKGDATADIR := $(PWD)/external/bison/data
-BISON := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/bison/bison
+BISON := /usr/bin/bison
YACC := $(BISON) -d
-YASM := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/yasm/yasm
+YASM := /usr/bin/yasm
DOXYGEN:= doxygen
AAPT := $(HOST_OUT_EXECUTABLES)/aapt$(HOST_EXECUTABLE_SUFFIX)
@@ -493,7 +491,7 @@ endif
DEFAULT_JACK_EXTRA_ARGS += --verbose error
JILL := java -Xmx3500m -jar $(JILL_JAR)
-PROGUARD := external/proguard/bin/proguard.sh
+PROGUARD := /usr/bin/proguard
JAVATAGS := build/tools/java-event-log-tags.py
LLVM_RS_CC := $(HOST_OUT_EXECUTABLES)/llvm-rs-cc$(HOST_EXECUTABLE_SUFFIX)
BCC_COMPAT := $(HOST_OUT_EXECUTABLES)/bcc_compat$(HOST_EXECUTABLE_SUFFIX)
@@ -514,14 +512,13 @@ DX := $(HOST_OUT_EXECUTABLES)/dx
ZIPALIGN := $(HOST_OUT_EXECUTABLES)/zipalign$(HOST_EXECUTABLE_SUFFIX)
# relocation packer
-RELOCATION_PACKER := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/relocation_packer/relocation_packer
+RELOCATION_PACKER := $(HOST_OUT_EXECUTABLES)/relocation_packer$(HOST_EXECUTABLE_SUFFIX)
-FINDBUGS_DIR := external/owasp/sanitizer/tools/findbugs/bin
-FINDBUGS := $(FINDBUGS_DIR)/findbugs
-EMMA_JAR := external/emma/lib/emma$(COMMON_JAVA_PACKAGE_SUFFIX)
+FINDBUGS := /usr/bin/findbugs
+EMMA_JAR := /usr/share/java/emma$(COMMON_JAVA_PACKAGE_SUFFIX)
# Tool to merge AndroidManifest.xmls
-ANDROID_MANIFEST_MERGER := java -classpath prebuilts/devtools/tools/lib/manifest-merger.jar com.android.manifmerger.Main merge
+ANDROID_MANIFEST_MERGER := java -classpath /usr/share/java/com.android.tools.build.manifest-merger.jar:/usr/share/java/com.android.tools.common.jar:/usr/share/java/androidsdk-sdklib.jar:/usr/share/java/com.android.tools.sdk-common.jar com.android.manifmerger.Merger
YACC_HEADER_SUFFIX:= .hpp
@@ -736,7 +733,7 @@ endif
ifneq ($(CM_BUILD),)
## We need to be sure the global selinux policies are included
## last, to avoid accidental resetting by device configs
-$(eval include vendor/cm/sepolicy/sepolicy.mk)
+$(eval include vendor/replicant/sepolicy/sepolicy.mk)
# Include any vendor specific config.mk file
-include $(TOPDIR)vendor/*/build/core/config.mk
diff --git a/core/dumpvar.mk b/core/dumpvar.mk
index f60e455..d7056ef 100644
--- a/core/dumpvar.mk
+++ b/core/dumpvar.mk
@@ -67,7 +67,7 @@ HOST_OS_EXTRA:=$(shell python -c "import platform; print(platform.platform())")
$(info ============================================)
$(info PLATFORM_VERSION_CODENAME=$(PLATFORM_VERSION_CODENAME))
$(info PLATFORM_VERSION=$(PLATFORM_VERSION))
-$(info LINEAGE_VERSION=$(LINEAGE_VERSION))
+$(info REPLICANT_VERSION=$(REPLICANT_VERSION))
$(info TARGET_PRODUCT=$(TARGET_PRODUCT))
$(info TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT))
$(info TARGET_BUILD_TYPE=$(TARGET_BUILD_TYPE))
diff --git a/core/main.mk b/core/main.mk
index b82cd6a..3eb2d47 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -58,6 +58,8 @@ PWD := $(shell pwd)
TOP := .
TOPDIR :=
+TOOLCHAIN_DIR := $(TOPDIR)toolchain
+
BUILD_SYSTEM := $(TOPDIR)build/core
# This is the default target. It must be the first declared target.
@@ -1002,8 +1004,17 @@ clean:
@rm -rf $(OUT_DIR)/*
@echo -e ${CL_GRN}"Entire build directory removed."${CL_RST}
+.PHONY: tcclean
+tcclean:
+ @rm -rf $(TOOLCHAIN_DIR)/clang
+ @rm -rf $(TOOLCHAIN_DIR)/gcc
+ @rm -rf $(TOOLCHAIN_DIR)/headers
+ @rm -rf $(TOOLCHAIN_DIR)/jack_jill
+ @echo -e ${CL_GRN}"All toolchain build directories removed."${CL_RST}
+
+
.PHONY: clobber
-clobber: clean
+clobber: clean tcclean
# The rules for dataclean and installclean are defined in cleanbuild.mk.
diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk
index de51b74..4f98fe2 100644
--- a/core/tasks/kernel.mk
+++ b/core/tasks/kernel.mk
@@ -62,13 +62,17 @@ TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR)
KERNEL_SRC := $(TARGET_KERNEL_SOURCE)
# kernel configuration - mandatory
KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG)
+KERNEL_RECOVERY_DEFCONFIG := $(TARGET_KERNEL_RECOVERY_CONFIG)
VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG)
SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG)
## Internal variables
KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
KERNEL_CONFIG := $(KERNEL_OUT)/.config
+KERNEL_RECOVERY_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_RECOVERY_OBJ
+KERNEL_RECOVERY_CONFIG := $(KERNEL_RECOVERY_OUT)/.config
KERNEL_OUT_STAMP := $(KERNEL_OUT)/.mkdir_stamp
+KERNEL_RECOVERY_OUT_STAMP := $(KERNEL_RECOVERY_OUT)/.mkdir_stamp
TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
ifeq ($(TARGET_KERNEL_ARCH),)
@@ -83,6 +87,7 @@ else
KERNEL_DEFCONFIG_ARCH := $(KERNEL_ARCH)
endif
KERNEL_DEFCONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs/$(KERNEL_DEFCONFIG)
+KERNEL_RECOVERY_DEFCONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs/$(KERNEL_RECOVERY_DEFCONFIG)
TARGET_KERNEL_HEADER_ARCH := $(strip $(TARGET_KERNEL_HEADER_ARCH))
ifeq ($(TARGET_KERNEL_HEADER_ARCH),)
@@ -112,6 +117,7 @@ else
endif
TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE)
+TARGET_PREBUILT_INT_KERNEL_RECOVERY := $(KERNEL_RECOVERY_OUT)/arch/$(KERNEL_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE)
# Clear this first to prevent accidental poisoning from env
MAKE_FLAGS :=
@@ -158,6 +164,7 @@ ifeq "$(wildcard $(KERNEL_SRC) )" ""
$(warning ***************************************************************)
FULL_KERNEL_BUILD := false
KERNEL_BIN := $(TARGET_PREBUILT_KERNEL)
+ KERNEL_RECOVERY_BIN := $(TARGET_PREBUILT_KERNEL)
else
$(warning ***************************************************************)
$(warning * *)
@@ -187,6 +194,10 @@ else
FULL_KERNEL_BUILD := true
KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL)
endif
+ ifneq ($(TARGET_KERNEL_RECOVERY_CONFIG),)
+ FULL_KERNEL_BUILD := true
+ KERNEL_RECOVERY_BIN := $(TARGET_PREBUILT_INT_KERNEL_RECOVERY)
+ endif
endif
ifeq ($(FULL_KERNEL_BUILD),true)
@@ -208,16 +219,16 @@ KERNEL_TOOLCHAIN_PREFIX ?= $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
else ifeq ($(KERNEL_ARCH),arm64)
KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-android-
else ifeq ($(KERNEL_ARCH),arm)
-KERNEL_TOOLCHAIN_PREFIX ?= arm-eabi-
+KERNEL_TOOLCHAIN_PREFIX ?= arm-none-eabi-
else ifeq ($(KERNEL_ARCH),x86)
KERNEL_TOOLCHAIN_PREFIX ?= x86_64-linux-android-
endif
ifeq ($(KERNEL_TOOLCHAIN),)
-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
+KERNEL_TOOLCHAIN_PATH := arm-none-eabi-
else
ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
+KERNEL_TOOLCHAIN_PATH := arm-none-eabi-
endif
endif
@@ -261,6 +272,13 @@ $(KERNEL_OUT_STAMP):
$(hide) mkdir -p $(KERNEL_MODULES_OUT)
$(hide) touch $@
+$(KERNEL_RECOVERY_OUT_STAMP):
+ $(hide) mkdir -p $(KERNEL_RECOVERY_OUT)
+ $(hide) touch $@
+
+$(KERNEL_RECOVERY_OUT):
+ mkdir -p $(KERNEL_RECOVERY_OUT)
+
KERNEL_ADDITIONAL_CONFIG_OUT := $(KERNEL_OUT)/.additional_config
.PHONY: force_additional_config
@@ -279,7 +297,11 @@ $(KERNEL_CONFIG): $(KERNEL_OUT_STAMP) $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONA
$(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \
$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi
-TARGET_KERNEL_BINARIES: $(KERNEL_OUT_STAMP) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL_STAMP)
+$(KERNEL_RECOVERY_CONFIG): $(KERNEL_RECOVERY_OUT_STAMP) $(KERNEL_RECOVERY_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
+ @echo -e ${CL_GRN}"Building Recovery Kernel Config"${CL_RST}
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_RECOVERY_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_RECOVERY_DEFCONFIG)
+
+TARGET_KERNEL_BINARIES: $(BUILT_RAMDISK_TARGET) $(KERNEL_OUT_STAMP) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL_STAMP)
@echo -e ${CL_GRN}"Building Kernel"${CL_RST}
$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
$(hide) if grep -q 'CONFIG_OF=y' $(KERNEL_CONFIG) ; \
@@ -307,6 +329,9 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES)
$(mv-modules)
$(clean-module-folder)
+$(TARGET_PREBUILT_INT_KERNEL_RECOVERY): $(recovery_ramdisk) $(KERNEL_RECOVERY_OUT) $(KERNEL_RECOVERY_CONFIG) $(KERNEL_DEPS)
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_RECOVERY_OUT) ARCH=$(TARGET_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_LOADADDR) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
+
$(KERNEL_HEADERS_INSTALL_STAMP): $(KERNEL_OUT_STAMP) $(KERNEL_CONFIG)
@echo -e ${CL_GRN}"Building Kernel Headers"${CL_RST}
$(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \
@@ -352,13 +377,26 @@ endif # FULL_KERNEL_BUILD
## Install it
ifeq ($(NEEDS_KERNEL_COPY),true)
-file := $(INSTALLED_KERNEL_TARGET)
-ALL_PREBUILT += $(file)
-$(file) : $(KERNEL_BIN) | $(ACP)
+installed_kernel := $(INSTALLED_KERNEL_TARGET)
+ALL_PREBUILT += $(installed_kernel)
+$(installed_kernel) : $(KERNEL_BIN) | $(ACP)
$(transform-prebuilt-to-target)
ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET)
+
+installed_recovery_kernel := $(INSTALLED_RECOVERY_KERNEL_TARGET)
+ALL_PREBUILT += $(installed_recovery_kernel)
+$(installed_recovery_kernel) : $(KERNEL_RECOVERY_BIN) | $(ACP)
+ $(transform-prebuilt-to-target)
+
+ALL_PREBUILT += $(INSTALLED_RECOVERY_KERNEL_TARGET)
endif
+ifneq ($(TARGET_KERNEL_RECOVERY_CONFIG),)
+.PHONY: kernel recovery_kernel
+else
.PHONY: kernel
+endif
+
kernel: $(INSTALLED_KERNEL_TARGET)
+recovery_kernel: $(INSTALLED_RECOVERY_KERNEL_TARGET)
diff --git a/core/tasks/xloader.mk b/core/tasks/xloader.mk
new file mode 100644
index 0000000..296dbfe
--- /dev/null
+++ b/core/tasks/xloader.mk
@@ -0,0 +1,59 @@
+# Copyright (C) 2013-2014 Paul Kocialkowski <contact@paulk.fr>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+XLOADER_SRC := $(TARGET_XLOADER_SOURCE)
+XLOADER_CONFIG := $(TARGET_XLOADER_CONFIG)
+XLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/XLOADER_OBJ
+
+ifeq ($(TARGET_XLOADER_MLO),true)
+XLOADER_BIN := $(XLOADER_OUT)/MLO
+else
+XLOADER_BIN := $(XLOADER_OUT)/x-load.bin
+endif
+
+ifeq ($(TARGET_ARCH),arm)
+ ifneq ($(USE_CCACHE),)
+ # search executable
+ ccache =
+ ifneq ($(strip $(wildcard $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_EXTRA_TAG)/ccache/ccache)),)
+ ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_EXTRA_TAG)/ccache/ccache
+ else
+ ifneq ($(strip $(wildcard $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache)),)
+ ccache := $(ANDROID_BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache
+ endif
+ endif
+ endif
+ ifneq ($(TARGET_KERNEL_CUSTOM_TOOLCHAIN),)
+ ifeq ($(HOST_OS),darwin)
+ ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/darwin-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-"
+ else
+ ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ANDROID_BUILD_TOP)/prebuilt/linux-x86/toolchain/$(TARGET_KERNEL_CUSTOM_TOOLCHAIN)/bin/arm-eabi-"
+ endif
+ else
+ ARM_CROSS_COMPILE:=CROSS_COMPILE="$(ccache) $(ARM_EABI_TOOLCHAIN)/arm-eabi-"
+ endif
+ ccache =
+endif
+
+$(XLOADER_OUT):
+ mkdir -p $(XLOADER_OUT)
+
+$(XLOADER_CONFIG):
+ $(MAKE) -C $(XLOADER_SRC) O=$(XLOADER_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(XLOADER_CONFIG)
+
+$(XLOADER_BIN): $(XLOADER_CONFIG)
+ $(MAKE) -C $(XLOADER_SRC) O=$(XLOADER_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) ift
+
+$(INSTALLED_XLOADER_MODULE): $(XLOADER_OUT) $(XLOADER_BIN)
+ mv $(XLOADER_BIN) $@