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