1# Use bash for additional echo fancyness 2SHELL = /bin/bash 3 4#################################################################################################### 5## defines 6 7# Build for Jellybean 8#--yd BUILD_ANDROID_JELLYBEAN = $(shell test -d $(ANDROID_ROOT)/frameworks/native && echo 1) 9 10# Build for Lollipop 11# ANDROID version check 12BUILD_ANDROID_LOLLIPOP = $(shell test -d $(ANDROID_ROOT)/bionic/libc/kernel/uapi && echo 1) 13#ANDROID version check END 14 15#--yd PRODUCT = generic_arm64 16#--yd TARGET = android 17 18## libraries ## 19LIB_PREFIX = lib 20 21STATIC_LIB_EXT = a 22SHARED_LIB_EXT = so 23 24# normally, overridden from outside 25# ?= assignment sets it only if not already defined 26TARGET ?= android 27 28MLLITE_LIB_NAME ?= mllite 29#--yd MLLITE_LIB_NAME ?= mllite_64 30MPL_LIB_NAME ?= mplmpu 31 32## applications ## 33SHARED_APP_SUFFIX = -shared 34STATIC_APP_SUFFIX = -static 35 36#################################################################################################### 37## compile, includes, and linker 38 39ifeq ($(BUILD_ANDROID_JELLYBEAN),1) 40ANDROID_COMPILE = -DANDROID_JELLYBEAN=1 41endif 42 43ANDROID_LINK = -nostdlib 44ANDROID_LINK += -fpic 45ANDROID_LINK += -Wl,--gc-sections 46ANDROID_LINK += -Wl,--no-whole-archive 47ANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib 48ifeq ($(ARCH),arm) 49ANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib 50endif 51 52ANDROID_LINK_EXECUTABLE = $(ANDROID_LINK) 53ifeq ($(ARCH),arm64) 54ANDROID_LINK_EXECUTABLE += -Wl,-dynamic-linker,/system/bin/linker64 55else 56ANDROID_LINK_EXECUTABLE += -Wl,-dynamic-linker,/system/bin/linker 57endif 58ifneq ($(BUILD_ANDROID_JELLYBEAN),1) 59#--yd ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/build/core/armelf.x 60#--yd ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/lib/ldscripts/armelf.x 61ifeq ($(ARCH),arm64) 62ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/lib/ldscripts/aarch64linux.x 63endif 64endif 65ANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtbegin_dynamic.o 66ANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtend_android.o 67 68ANDROID_INCLUDES = -I$(ANDROID_ROOT)/system/core/include 69ANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/libhardware/include 70ANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/ril/include 71ANDROID_INCLUDES += -I$(ANDROID_ROOT)/dalvik/libnativehelper/include 72ANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/base/include # ICS 73ANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/native/include # Jellybean 74ANDROID_INCLUDES += -I$(ANDROID_ROOT)/external/skia/include 75ANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/include 76#--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-arm/include 77 78ifeq ($(BUILD_ANDROID_LOLLIPOP),1) 79#for Android L--yd 80ANDROID_INCLUDES += -DHAVE_SYS_UIO_H 81ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/uapi #LP 82ifeq ($(ARCH),arm64) 83ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/uapi/asm-arm64 #LP 84else 85ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/uapi/asm-arm #LP 86endif 87endif 88$(info YD>>>TARGET_ARCH=$(TARGET_ARCH), ARCH=$(ARCH)) 89#--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-arm64/include 90ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-$(ARCH)/include 91ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/include 92ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libstdc++/include 93ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/common 94#--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/arch-arm64 95ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/arch-$(ARCH) 96ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include 97#--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include/arch/arm64 98ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include/arch/$(ARCH) 99ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libthread_db/include 100#--yd ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/arm64 101ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/$(ARCH) 102ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm 103 104ANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/SHARED_LIBRARIES/libm_intermediates 105#--yd #for Android L--yd 106#--yd ANDROID_INCLUDES += -DHAVE_SYS_UIO_H 107 108 109KERNEL_INCLUDES = -I$(KERNEL_ROOT)/include 110 111ifeq ($(ARCH),arm) 112KERNEL_INCLUDES += -I$(KERNEL_ROOT)/arch/arm/include -I$(KERNEL_ROOT)/arch/arm/include/generated 113endif 114 115#--yd KERNEL_INCLUDES = -I$(KERNEL_ROOT)/include -I$(KERNEL_ROOT)/include/uapi -I$(KERNEL_ROOT)/arch/arm64/include -I$(KERNEL_ROOT)/arch/arm64/include/generated -I$(KERNEL_ROOT)/arch/arm64/include/uapi 116 117INV_INCLUDES = -I$(INV_ROOT)/software/core/driver/include 118INV_INCLUDES += -I$(MLLITE_DIR) 119INV_INCLUDES += -I$(MLLITE_DIR)/linux 120 121INV_DEFINES += -DINV_CACHE_DMP=1 122 123#################################################################################################### 124## macros 125 126ifndef echo_in_colors 127define echo_in_colors 128 echo -ne "\e[1;32m"$(1)"\e[0m" 129endef 130endif 131 132 133 134