1EXEC = inv_devnode_parser$(SHARED_APP_SUFFIX) 2 3MK_NAME = $(notdir $(CURDIR)/$(firstword $(MAKEFILE_LIST))) 4 5CROSS ?= $(ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- 6COMP ?= $(CROSS)gcc 7LINK ?= $(CROSS)gcc 8 9OBJFOLDER = $(CURDIR)/obj 10 11INV_ROOT = ../../../../.. 12APP_DIR = $(CURDIR)/../.. 13MLLITE_DIR = $(INV_ROOT)/software/core/mllite 14 15include $(INV_ROOT)/software/build/android/common.mk 16 17CFLAGS += $(CMDLINE_CFLAGS) 18CFLAGS += $(ANDROID_COMPILE) 19CFLAGS += -Wall 20CFLAGS += -fpic 21CFLAGS += -nostdlib 22CFLAGS += -DNDEBUG 23CFLAGS += -D_REENTRANT 24CFLAGS += -DLINUX 25CFLAGS += -DANDROID 26CFLAGS += -mthumb-interwork 27CFLAGS += -fno-exceptions 28CFLAGS += -ffunction-sections 29CFLAGS += -funwind-tables 30CFLAGS += -fstack-protector 31CFLAGS += -fno-short-enums 32CFLAGS += -fmessage-length=0 33CFLAGS += -I$(MLLITE_DIR) 34CFLAGS += -I$(MPL_DIR) 35CFLAGS += $(INV_INCLUDES) 36CFLAGS += $(INV_DEFINES) 37 38LLINK = -lc 39LLINK += -lm 40LLINK += -lutils 41LLINK += -lcutils 42LLINK += -lgcc 43LLINK += -ldl 44LLINK += -lstdc++ 45LLINK += -llog 46LLINK += -lz 47 48LFLAGS += $(CMDLINE_LFLAGS) 49LFLAGS += $(ANDROID_LINK_EXECUTABLE) 50 51LRPATH = -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib 52 53#################################################################################################### 54## sources 55 56INV_LIBS = $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT) 57 58#INV_SOURCES and VPATH provided by Makefile.filelist 59include ../filelist.mk 60 61INV_OBJS := $(addsuffix .o,$(INV_SOURCES)) 62INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES)))) 63 64#################################################################################################### 65## rules 66 67.PHONY: all clean cleanall install 68 69all: $(EXEC) $(MK_NAME) 70 71$(EXEC) : $(OBJFOLDER) $(INV_OBJS_DST) $(INV_LIBS) $(MK_NAME) 72 @$(call echo_in_colors, "\n<linking $(EXEC) with objects $(INV_OBJS_DST) $(PREBUILT_OBJS) and libraries $(INV_LIBS)\n") 73 $(LINK) $(INV_OBJS_DST) -o $(EXEC) $(LFLAGS) $(LLINK) $(INV_LIBS) $(LLINK) $(LRPATH) 74 75$(OBJFOLDER) : 76 @$(call echo_in_colors, "\n<creating object's folder 'obj/'>\n") 77 mkdir obj 78 79$(INV_OBJS_DST) : $(OBJFOLDER)/%.c.o : %.c $(MK_NAME) 80 @$(call echo_in_colors, "\n<compile $< to $(OBJFOLDER)/$(notdir $@)>\n") 81 $(COMP) $(ANDROID_INCLUDES) $(KERNEL_INCLUDES) $(INV_INCLUDES) $(CFLAGS) -o $@ -c $< 82 83clean : 84 rm -fR $(OBJFOLDER) 85 86cleanall : 87 rm -fR $(EXEC) $(OBJFOLDER) 88 89install : $(EXEC) 90 cp -f $(EXEC) $(INSTALL_DIR) 91 92 93