1EXEC = inv_stress_iio$(SHARED_APP_SUFFIX)
2
3MK_NAME = $(notdir $(CURDIR)/$(firstword $(MAKEFILE_LIST)))
4
5CROSS ?= $(ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
6COMP  ?= $(CROSS)gcc
7LINK  ?= $(CROSS)gcc
8
9OBJFOLDER = $(CURDIR)/obj
10
11INV_ROOT   = ../../../../..
12APP_DIR    = $(CURDIR)/../..
13MLLITE_DIR = $(INV_ROOT)/software/core/mllite
14MPL_DIR    = $(INV_ROOT)/software/core/mpl
15
16include $(INV_ROOT)/software/build/android/common.mk
17
18CFLAGS += $(CMDLINE_CFLAGS)
19CFLAGS += $(ANDROID_COMPILE)
20CFLAGS += -Wall
21CFLAGS += -fpic
22CFLAGS += -nostdlib
23CFLAGS += -DNDEBUG
24CFLAGS += -D_REENTRANT
25CFLAGS += -DLINUX
26CFLAGS += -DANDROID
27CFLAGS += -mthumb-interwork
28CFLAGS += -fno-exceptions
29CFLAGS += -ffunction-sections
30CFLAGS += -funwind-tables
31CFLAGS += -fstack-protector
32CFLAGS += -fno-short-enums
33CFLAGS += -fmessage-length=0
34CFLAGS += -I$(MLLITE_DIR)
35CFLAGS += -I$(MPL_DIR)
36CFLAGS += $(INV_INCLUDES)
37CFLAGS += $(INV_DEFINES)
38
39LLINK  = -lc
40LLINK += -lm
41LLINK += -lutils
42LLINK += -lcutils
43LLINK += -lgcc
44LLINK += -ldl
45LLINK += -lstdc++
46LLINK += -llog
47LLINK += -lz
48
49LFLAGS += $(CMDLINE_LFLAGS)
50LFLAGS += $(ANDROID_LINK_EXECUTABLE)
51
52LRPATH  = -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib
53
54####################################################################################################
55## sources
56
57INV_LIBS  = $(MPL_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MPL_LIB_NAME).$(SHARED_LIB_EXT)
58INV_LIBS += $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT)
59
60#INV_SOURCES and VPATH provided by Makefile.filelist
61include ../filelist.mk
62
63INV_OBJS := $(addsuffix .o,$(INV_SOURCES))
64INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES))))
65
66####################################################################################################
67## rules
68
69.PHONY: all clean cleanall install
70
71all: $(EXEC) $(MK_NAME)
72
73$(EXEC) : $(OBJFOLDER) $(INV_OBJS_DST) $(INV_LIBS) $(MK_NAME)
74	@$(call echo_in_colors, "\n<linking $(EXEC) with objects $(INV_OBJS_DST) $(PREBUILT_OBJS) and libraries $(INV_LIBS)\n")
75	$(LINK) $(INV_OBJS_DST) -o $(EXEC) $(LFLAGS) $(LLINK) $(INV_LIBS) $(LLINK) $(LRPATH)
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) $(INV_INCLUDES) $(CFLAGS) -o $@ -c $<
84
85clean : 
86	rm -fR $(OBJFOLDER)
87
88cleanall : 
89	rm -fR $(EXEC) $(OBJFOLDER)
90
91install : $(EXEC)
92	cp -f $(EXEC) $(INSTALL_DIR)
93
94
95