149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow# Use bash for additional echo fancyness 249ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowSHELL = /bin/bash 349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#################################################################################################### 549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow## defines 649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow# Build for Jellybean 849ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowBUILD_ANDROID_JELLYBEAN = $(shell test -d $(ANDROID_ROOT)/frameworks/native && echo 1) 949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 1049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow## libraries ## 1149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowLIB_PREFIX = lib 1249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 1349ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowSTATIC_LIB_EXT = a 1449ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowSHARED_LIB_EXT = so 1549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 1649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow# normally, overridden from outside 1749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow# ?= assignment sets it only if not already defined 1849ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowTARGET ?= android 1949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 2049ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowMLLITE_LIB_NAME ?= mllite 2149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowMPL_LIB_NAME ?= mplmpu 2249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 2349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow## applications ## 2449ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowSHARED_APP_SUFFIX = -shared 2549ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowSTATIC_APP_SUFFIX = -static 2649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 2749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#################################################################################################### 2849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow## compile, includes, and linker 2949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 3049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowifeq ($(BUILD_ANDROID_JELLYBEAN),1) 3149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_COMPILE = -DANDROID_JELLYBEAN=1 3249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowendif 3349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 3449ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK = -nostdlib 3549ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK += -fpic 3649ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK += -Wl,--gc-sections 3749ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK += -Wl,--no-whole-archive 3849ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib 3949ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK += -L$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib 4049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 4149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK_EXECUTABLE = $(ANDROID_LINK) 4249ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK_EXECUTABLE += -Wl,-dynamic-linker,/system/bin/linker 4349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowifneq ($(BUILD_ANDROID_JELLYBEAN),1) 4449ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK_EXECUTABLE += -Wl,-T,$(ANDROID_ROOT)/build/core/armelf.x 4549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowendif 4649ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtbegin_dynamic.o 4749ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_LINK_EXECUTABLE += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtend_android.o 4849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 4949ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES = -I$(ANDROID_ROOT)/system/core/include 5049ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/libhardware/include 5149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/hardware/ril/include 5249ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/dalvik/libnativehelper/include 5349ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/base/include # ICS 5449ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/frameworks/native/include # Jellybean 5549ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/external/skia/include 5649ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/include 5749ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/arch-arm/include 5849ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/include 5949ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libstdc++/include 6049ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/common 6149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libc/kernel/arch-arm 6249ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include 6349ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/include/arch/arm 6449ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libthread_db/include 6549ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm/arm 6649ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/bionic/libm 6749ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowANDROID_INCLUDES += -I$(ANDROID_ROOT)/out/target/product/generic/obj/SHARED_LIBRARIES/libm_intermediates 6849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 6949ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowKERNEL_INCLUDES = -I$(KERNEL_ROOT)/include 7049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 7149ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowINV_INCLUDES = -I$(INV_ROOT)/software/core/driver/include 7249ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowINV_INCLUDES += -I$(MLLITE_DIR) 7349ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowINV_INCLUDES += -I$(MLLITE_DIR)/linux 7449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 7549ea3e26ca3c6a779e527a0322e49a663333350aRosa ChowINV_DEFINES += -DINV_CACHE_DMP=1 7649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 7749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#################################################################################################### 7849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow## macros 7949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 8049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowifndef echo_in_colors 8149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowdefine echo_in_colors 8249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow echo -ne "\e[1;32m"$(1)"\e[0m" 8349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowendef 8449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowendif 8549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 8649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 8749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow 88