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