EXEC = inv_self_test$(SHARED_APP_SUFFIX) MK_NAME = $(notdir $(CURDIR)/$(firstword $(MAKEFILE_LIST))) CROSS ?= $(ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- COMP ?= $(CROSS)gcc LINK ?= $(CROSS)gcc OBJFOLDER = $(CURDIR)/obj INV_ROOT = ../../../../.. APP_DIR = $(CURDIR)/../.. MLLITE_DIR = $(INV_ROOT)/software/core/mllite COMMON_DIR = $(INV_ROOT)/software/simple_apps/common MPL_DIR = $(INV_ROOT)/software/core/mpl HAL_DIR = $(INV_ROOT)/software/core/HAL include $(INV_ROOT)/software/build/android/common.mk CFLAGS += $(CMDLINE_CFLAGS) CFLAGS += -Wall CFLAGS += -fpic CFLAGS += -nostdlib CFLAGS += -DNDEBUG CFLAGS += -D_REENTRANT CFLAGS += -DLINUX CFLAGS += -DANDROID CFLAGS += -mthumb-interwork CFLAGS += -fno-exceptions CFLAGS += -ffunction-sections CFLAGS += -funwind-tables CFLAGS += -fstack-protector CFLAGS += -fno-short-enums CFLAGS += -fmessage-length=0 CFLAGS += -I$(MLLITE_DIR) CFLAGS += -I$(MPL_DIR) CFLAGS += -I$(COMMON_DIR) CFLAGS += -I$(HAL_DIR)/include CFLAGS += $(INV_INCLUDES) CFLAGS += $(INV_DEFINES) LLINK = -lc LLINK += -lm LLINK += -lutils LLINK += -lcutils LLINK += -lgcc LLINK += -ldl LLINK += -lstdc++ LLINK += -llog LLINK += -lz PRE_LFLAGS := -Wl,-T,$(ANDROID_ROOT)/build/core/armelf.x PRE_LFLAGS += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtend_android.o PRE_LFLAGS += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtbegin_dynamic.o LFLAGS += $(CMDLINE_LFLAGS) LFLAGS += -nostdlib LFLAGS += -fpic LFLAGS += -Wl,--gc-sections LFLAGS += -Wl,--no-whole-archive LFLAGS += -Wl,-dynamic-linker,/system/bin/linker LFLAGS += $(ANDROID_LINK) ifneq ($(PRODUCT),panda) LFLAGS += -rdynamic endif LRPATH = -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib #################################################################################################### ## sources INV_LIBS = $(MPL_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MPL_LIB_NAME).$(SHARED_LIB_EXT) INV_LIBS += $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT) #INV_SOURCES and VPATH provided by Makefile.filelist include ../filelist.mk INV_OBJS := $(addsuffix .o,$(INV_SOURCES)) INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES)))) #################################################################################################### ## rules .PHONY: all clean cleanall install all: $(EXEC) $(MK_NAME) $(EXEC) : $(OBJFOLDER) $(INV_OBJS_DST) $(INV_LIBS) $(MK_NAME) @$(call echo_in_colors, "\n\n") mkdir obj $(INV_OBJS_DST) : $(OBJFOLDER)/%.c.o : %.c $(MK_NAME) @$(call echo_in_colors, "\n\n") $(COMP) $(ANDROID_INCLUDES) $(KERNEL_INCLUDES) $(INV_INCLUDES) $(CFLAGS) -o $@ -c $< clean : rm -fR $(OBJFOLDER) cleanall : rm -fR $(EXEC) $(OBJFOLDER) install : $(EXEC) cp -f $(EXEC) $(INSTALL_DIR)