Home | History | Annotate | Download | only in android
      1 EXEC = inv_mpu_iio$(SHARED_APP_SUFFIX)
      2 
      3 MK_NAME = $(notdir $(CURDIR)/$(firstword $(MAKEFILE_LIST)))
      4 
      5 CROSS ?= $(ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
      6 COMP  ?= $(CROSS)gcc
      7 LINK  ?= $(CROSS)gcc
      8 
      9 OBJFOLDER = $(CURDIR)/obj
     10 
     11 INV_ROOT   = ../../../../..
     12 APP_DIR    = $(CURDIR)/../..
     13 MLLITE_DIR = $(INV_ROOT)/software/core/mllite
     14 COMMON_DIR = $(INV_ROOT)/software/simple_apps/common
     15 MPL_DIR    = $(INV_ROOT)/software/core/mpl
     16 HAL_DIR    = $(INV_ROOT)/software/core/HAL
     17 
     18 include $(INV_ROOT)/software/build/android/common.mk
     19 
     20 CFLAGS += $(CMDLINE_CFLAGS)
     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 += -I$(MLLITE_DIR)
     36 CFLAGS += -I$(MPL_DIR)
     37 CFLAGS += -I$(COMMON_DIR)
     38 CFLAGS += -I$(HAL_DIR)/include
     39 CFLAGS += $(INV_INCLUDES)
     40 CFLAGS += $(INV_DEFINES)
     41 
     42 LLINK  = -lc
     43 LLINK += -lm
     44 LLINK += -lutils
     45 LLINK += -lcutils
     46 LLINK += -lgcc
     47 LLINK += -ldl
     48 LLINK += -lstdc++
     49 LLINK += -llog
     50 LLINK += -lz
     51 
     52 PRE_LFLAGS := -Wl,-T,$(ANDROID_ROOT)/build/core/armelf.x
     53 PRE_LFLAGS += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtend_android.o
     54 PRE_LFLAGS += $(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib/crtbegin_dynamic.o
     55 
     56 LFLAGS += $(CMDLINE_LFLAGS)
     57 LFLAGS += -nostdlib
     58 LFLAGS += -fpic
     59 LFLAGS += -Wl,--gc-sections 
     60 LFLAGS += -Wl,--no-whole-archive 
     61 LFLAGS += -Wl,-dynamic-linker,/system/bin/linker
     62 LFLAGS += $(ANDROID_LINK)
     63 ifneq ($(PRODUCT),panda)
     64 LFLAGS += -rdynamic
     65 endif
     66 
     67 LRPATH  = -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib
     68 
     69 ####################################################################################################
     70 ## sources
     71 
     72 INV_LIBS  = $(MPL_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MPL_LIB_NAME).$(SHARED_LIB_EXT)
     73 INV_LIBS += $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT)
     74 
     75 #INV_SOURCES and VPATH provided by Makefile.filelist
     76 include ../filelist.mk
     77 
     78 INV_OBJS := $(addsuffix .o,$(INV_SOURCES))
     79 INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES))))
     80 
     81 ####################################################################################################
     82 ## rules
     83 
     84 .PHONY: all clean cleanall install
     85 
     86 all: $(EXEC) $(MK_NAME)
     87 
     88 $(EXEC) : $(OBJFOLDER) $(INV_OBJS_DST) $(INV_LIBS) $(MK_NAME)
     89 	@$(call echo_in_colors, "\n<linking $(EXEC) with objects $(INV_OBJS_DST) $(PREBUILT_OBJS) and libraries $(INV_LIBS)\n")
     90 	$(LINK) $(PRE_LFLAGS) $(INV_OBJS_DST) -o $(EXEC) $(LFLAGS) $(LLINK) $(INV_LIBS) $(LLINK) $(LRPATH)
     91 
     92 $(OBJFOLDER) :
     93 	@$(call echo_in_colors, "\n<creating object's folder 'obj/'>\n")
     94 	mkdir obj
     95 
     96 $(INV_OBJS_DST) : $(OBJFOLDER)/%.c.o : %.c  $(MK_NAME)
     97 	@$(call echo_in_colors, "\n<compile $< to $(OBJFOLDER)/$(notdir $@)>\n")
     98 	$(COMP) $(ANDROID_INCLUDES) $(KERNEL_INCLUDES) $(INV_INCLUDES) $(CFLAGS) -o $@ -c $<
     99 
    100 clean : 
    101 	rm -fR $(OBJFOLDER)
    102 
    103 cleanall : 
    104 	rm -fR $(EXEC) $(OBJFOLDER)
    105 
    106 install : $(EXEC)
    107 	cp -f $(EXEC) $(INSTALL_DIR)
    108 
    109 
    110