1 MPL_LIB_NAME ?= mplmpu 2 LIBRARY = $(LIB_PREFIX)$(MPL_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 MPL_DIR = $(INV_ROOT)/software/core/mpl 15 16 include $(INV_ROOT)/software/build/android/common.mk 17 18 CFLAGS += $(CMDLINE_CFLAGS) 19 CFLAGS += $(ANDROID_COMPILE) 20 CFLAGS += -Wall 21 CFLAGS += -fpic 22 CFLAGS += -nostdlib 23 CFLAGS += -DNDEBUG 24 CFLAGS += -D_REENTRANT 25 CFLAGS += -DLINUX 26 CFLAGS += -DANDROID 27 CFLAGS += -mthumb-interwork 28 CFLAGS += -fno-exceptions 29 CFLAGS += -ffunction-sections 30 CFLAGS += -funwind-tables 31 CFLAGS += -fstack-protector 32 CFLAGS += -fno-short-enums 33 CFLAGS += -fmessage-length=0 34 CFLAGS += $(INV_INCLUDES) 35 CFLAGS += $(INV_DEFINES) 36 37 LLINK = -lc 38 LLINK += -lm 39 LLINK += -lutils 40 LLINK += -lcutils 41 LLINK += -lgcc 42 LLINK += -ldl 43 44 LFLAGS += $(CMDLINE_LFLAGS) 45 LFLAGS += -shared 46 LFLAGS += -Wl,-soname,$(LIBRARY) 47 LFLAGS += -Wl,-shared,-Bsymbolic 48 LFLAGS += $(ANDROID_LINK) 49 LFLAGS += -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib 50 51 #################################################################################################### 52 ## sources 53 54 INV_LIBS = $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT) 55 56 #INV_SOURCES, VPATH provided by Makefile.filelist 57 include ../filelist.mk 58 59 INV_OBJS := $(addsuffix .o,$(INV_SOURCES)) 60 INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES)))) 61 62 #################################################################################################### 63 ## rules 64 65 .PHONY: all mpl clean cleanall 66 67 all: mpl 68 69 mpl: $(LIBRARY) $(MK_NAME) 70 71 $(LIBRARY) : $(OBJFOLDER) $(INV_OBJS_DST) $(MK_NAME) 72 @$(call echo_in_colors, "\n<linking $(LIBRARY) with objects $(INV_OBJS_DST)\n") 73 $(LINK) $(LFLAGS) -o $(LIBRARY) $(INV_OBJS_DST) $(LLINK) $(INV_LIBS) $(LLINK) 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) $(CFLAGS) -o $@ -c $< 82 83 clean : 84 rm -fR $(OBJFOLDER) 85 86 cleanall : 87 rm -fR $(LIBRARY) $(OBJFOLDER) 88 89