1 # Use bash for additional echo fancyness 2 SHELL = /bin/bash 3 4 #################################################################################################### 5 ## defines 6 7 # Build for Jellybean 8 BUILD_ANDROID_JELLYBEAN = $(shell test -d $(ANDROID_ROOT)/frameworks/native && echo 1) 9 10 ## libraries ## 11 LIB_PREFIX = lib 12 13 STATIC_LIB_EXT = a 14 SHARED_LIB_EXT = so 15 16 # normally, overridden from outside 17 # ?= assignment sets it only if not already defined 18 TARGET ?= android 19 20 MLLITE_LIB_NAME ?= mllite 21 MPL_LIB_NAME ?= mplmpu 22 23 ## applications ## 24 SHARED_APP_SUFFIX = -shared 25 STATIC_APP_SUFFIX = -static 26 27 #################################################################################################### 28 ## compile, includes, and linker 29 30 ifeq ($(BUILD_ANDROID_JELLYBEAN),1) 31 ANDROID_COMPILE = -DANDROID_JELLYBEAN=1 32 endif 33 34 ANDROID_LINK = -nostdlib 35 ANDROID_LINK += -fpic 36 ANDROID_LINK += -Wl,--gc-sections 37 ANDROID_LINK += -Wl,--no-whole-archive 38 ANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib 39 ANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib 40 41 ANDROID_LINK_EXECUTABLE = $(ANDROID_LINK) 42 ANDROID_LINK_EXECUTABLE += -Wl,-dynamic-linker,/system/bin/linker 43 ifneq ($(BUILD_ANDROID_JELLYBEAN),1) 44 ANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/build/core/armelf.x 45 endif 46 ANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtbegin_dynamic.o 47 ANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtend_android.o 48 49 ANDROID_INCLUDES = -I$(ANDROID_ROOT)/system/core/include 50 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/libhardware/include 51 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/ril/include 52 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/dalvik/libnativehelper/include 53 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/base/include # ICS 54 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/native/include # Jellybean 55 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/external/skia/include 56 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/include 57 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-arm/include 58 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/include 59 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libstdc++/include 60 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/common 61 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/arch-arm 62 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include 63 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include/arch/arm 64 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libthread_db/include 65 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/arm 66 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm 67 ANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/SHARED_LIBRARIES/libm_intermediates 68 69 KERNEL_INCLUDES = -I$(KERNEL_ROOT)/include 70 71 INV_INCLUDES = -I$(INV_ROOT)/software/core/driver/include 72 INV_INCLUDES += -I$(MLLITE_DIR) 73 INV_INCLUDES += -I$(MLLITE_DIR)/linux 74 75 INV_DEFINES += -DINV_CACHE_DMP=1 76 77 #################################################################################################### 78 ## macros 79 80 ifndef echo_in_colors 81 define echo_in_colors 82 echo -ne "\e[1;32m"$(1)"\e[0m" 83 endef 84 endif 85 86 87 88