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