Home | History | Annotate | Download | only in android
      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 # ANDROID version check
      7 BUILD_ANDROID_LOLLIPOP = $(shell test -d $(ANDROID_ROOT)/bionic/libc/kernel/uapi && echo 1)
      8 $(info YD>>BUILD_ANDROID_LOLLIPOP = $(BUILD_ANDROID_LOLLIPOP))
      9 #ANDROID version check END
     10 
     11 ifeq ($(BUILD_ANDROID_LOLLIPOP),1)
     12 CFLAGS += -DANDROID_LOLLIPOP
     13 else
     14 CFLAGS += -DANDROID_KITKAT
     15 endif
     16 
     17 CROSS ?= $(ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
     18 COMP  ?= $(CROSS)gcc
     19 LINK  ?= $(CROSS)gcc 
     20 
     21 OBJFOLDER = $(CURDIR)/obj
     22 
     23 INV_ROOT = ../../../../..
     24 MLLITE_DIR  = $(INV_ROOT)/software/core/mllite
     25 
     26 include $(INV_ROOT)/software/build/android/common.mk
     27 
     28 CFLAGS += $(CMDLINE_CFLAGS)
     29 CFLAGS += $(ANDROID_COMPILE)
     30 CFLAGS += -Wall
     31 CFLAGS += -fpic
     32 CFLAGS += -nostdlib
     33 CFLAGS += -DNDEBUG
     34 CFLAGS += -D_REENTRANT
     35 CFLAGS += -DLINUX
     36 CFLAGS += -DANDROID
     37 ifeq ($(ARCH),arm)
     38 CFLAGS += -mthumb-interwork
     39 endif
     40 CFLAGS += -fno-exceptions
     41 CFLAGS += -ffunction-sections
     42 CFLAGS += -funwind-tables
     43 CFLAGS += -fstack-protector
     44 CFLAGS += -fno-short-enums
     45 CFLAGS += -fmessage-length=0
     46 CFLAGS += -I$(MLLITE_DIR)
     47 CFLAGS += -I$(INV_ROOT)/simple_apps/common
     48 CFLAGS += $(INV_INCLUDES)
     49 CFLAGS += $(INV_DEFINES)
     50 
     51 LLINK  = -lc 
     52 LLINK += -lm 
     53 LLINK += -lutils 
     54 LLINK += -lcutils 
     55 LLINK += -lgcc 
     56 LLINK += -ldl
     57 
     58 LFLAGS += $(CMDLINE_LFLAGS)
     59 LFLAGS += -shared 
     60 LFLAGS += -Wl,-soname,$(LIBRARY)
     61 LFLAGS += -Wl,-shared,-Bsymbolic
     62 LFLAGS += $(ANDROID_LINK)
     63 ifeq ($(ARCH),arm64)
     64 LFLAGS += -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib
     65 else
     66 LFLAGS += -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib
     67 endif
     68 
     69 ####################################################################################################
     70 ## sources
     71 
     72 #INV_SOURCES provided by Makefile.filelist
     73 include ../filelist.mk
     74 
     75 INV_OBJS := $(addsuffix .o,$(INV_SOURCES))
     76 INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES))))
     77 
     78 ####################################################################################################
     79 ## rules
     80 
     81 .PHONY: all mllite clean cleanall makefiles
     82 
     83 all: mllite
     84 
     85 mllite: $(LIBRARY) $(MK_NAME)
     86 
     87 $(LIBRARY) : $(OBJFOLDER) $(INV_OBJS_DST) $(MK_NAME)
     88 	@$(call echo_in_colors, "\n<linking $(LIBRARY) with objects $(INV_OBJS_DST)\n")
     89 	$(LINK) $(LFLAGS) -o $(LIBRARY) $(INV_OBJS_DST) $(LLINK) $(INV_LIBS) $(LLINK)
     90 
     91 $(OBJFOLDER) :
     92 	@$(call echo_in_colors, "\n<creating object's folder 'obj/'>\n")
     93 	mkdir obj
     94 
     95 $(INV_OBJS_DST) : $(OBJFOLDER)/%.c.o : %.c  $(MK_NAME)
     96 	@$(call echo_in_colors, "\n<compile $< to $(OBJFOLDER)/$(notdir $@)>\n")
     97 	$(COMP) $(ANDROID_INCLUDES) $(KERNEL_INCLUDES) $(CFLAGS) -o $@ -c $<
     98 
     99 clean : 
    100 	rm -fR $(OBJFOLDER)
    101 
    102 cleanall : 
    103 	rm -fR $(LIBRARY) $(OBJFOLDER)
    104 
    105