Home | History | Annotate | Download | only in android
      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 STRIP ?= $(CROSS)strip -g
     10 
     11 OBJFOLDER = $(CURDIR)/obj
     12 
     13 INV_ROOT = ../../../../..
     14 MLLITE_DIR  = $(INV_ROOT)/software/core/mllite
     15 MPL_DIR  = $(INV_ROOT)/software/core/mpl
     16 
     17 include $(INV_ROOT)/software/build/android/common.mk
     18 
     19 CFLAGS += $(CMDLINE_CFLAGS)
     20 CFLAGS += $(ANDROID_COMPILE)
     21 CFLAGS += -Wall
     22 CFLAGS += -fpic
     23 CFLAGS += -nostdlib
     24 CFLAGS += -DNDEBUG
     25 CFLAGS += -D_REENTRANT
     26 CFLAGS += -DLINUX
     27 CFLAGS += -DANDROID
     28 CFLAGS += -mthumb-interwork
     29 CFLAGS += -fno-exceptions
     30 CFLAGS += -ffunction-sections
     31 CFLAGS += -funwind-tables
     32 CFLAGS += -fstack-protector
     33 CFLAGS += -fno-short-enums
     34 CFLAGS += -fmessage-length=0
     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_LIBS = $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT)
     56 
     57 #INV_SOURCES, VPATH provided by Makefile.filelist
     58 include ../filelist.mk
     59 
     60 INV_OBJS := $(addsuffix .o,$(INV_SOURCES))
     61 INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES))))
     62 
     63 ####################################################################################################
     64 ## rules
     65 
     66 .PHONY: all mpl clean cleanall
     67 
     68 all: mpl
     69 
     70 mpl: $(LIBRARY) $(MK_NAME)
     71 
     72 $(LIBRARY) : $(OBJFOLDER) $(INV_OBJS_DST) $(MK_NAME)
     73 	@$(call echo_in_colors, "\n<linking $(LIBRARY) with objects $(INV_OBJS_DST)\n")
     74 	$(LINK) $(LFLAGS) -o $(LIBRARY) $(INV_OBJS_DST) $(LLINK) $(INV_LIBS) $(LLINK)
     75 	$(STRIP) -g $(LIBRARY)
     76 
     77 $(OBJFOLDER) :
     78 	@$(call echo_in_colors, "\n<creating object's folder 'obj/'>\n")
     79 	mkdir obj
     80 
     81 $(INV_OBJS_DST) : $(OBJFOLDER)/%.c.o : %.c  $(MK_NAME)
     82 	@$(call echo_in_colors, "\n<compile $< to $(OBJFOLDER)/$(notdir $@)>\n")
     83 	$(COMP) $(ANDROID_INCLUDES) $(KERNEL_INCLUDES) $(CFLAGS) -o $@ -c $<
     84 
     85 clean : 
     86 	rm -fR $(OBJFOLDER)
     87 
     88 cleanall : 
     89 	rm -fR $(LIBRARY) $(OBJFOLDER)
     90 
     91