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