xref: /aosp_15_r20/hardware/invensense/6515/libsensors_iio/software/simple_apps/self_test/build/android/shared.mk (revision 02424279a734a0cb64681cf11d5208a917662433)
1EXEC = inv_self_test$(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
25COMMON_DIR = $(INV_ROOT)/software/simple_apps/common
26MPL_DIR    = $(INV_ROOT)/software/core/mpl
27HAL_DIR    = $(INV_ROOT)/software/core/HAL
28
29include $(INV_ROOT)/software/build/android/common.mk
30
31CFLAGS += $(CMDLINE_CFLAGS)
32CFLAGS += $(ANDROID_COMPILE)
33CFLAGS += -Wall
34ifeq ($(BUILD_ANDROID_LOLLIPOP),1)
35else
36CFLAGS += -fpic
37endif
38CFLAGS += -nostdlib
39CFLAGS += -DNDEBUG
40CFLAGS += -D_REENTRANT
41CFLAGS += -DLINUX
42CFLAGS += -DANDROID
43ifeq ($(ARCH),arm)
44CFLAGS += -mthumb-interwork
45endif
46CFLAGS += -fno-exceptions
47CFLAGS += -ffunction-sections
48CFLAGS += -funwind-tables
49CFLAGS += -fstack-protector
50CFLAGS += -fno-short-enums
51CFLAGS += -fmessage-length=0
52CFLAGS += -I$(MLLITE_DIR)
53CFLAGS += -I$(MPL_DIR)
54CFLAGS += -I$(COMMON_DIR)
55CFLAGS += -I$(HAL_DIR)/include
56CFLAGS += $(INV_INCLUDES)
57CFLAGS += $(INV_DEFINES)
58
59LLINK  = -lc
60LLINK += -lm
61LLINK += -lutils
62LLINK += -lcutils
63LLINK += -lgcc
64LLINK += -ldl
65LLINK += -lstdc++
66LLINK += -llog
67LLINK += -lz
68
69LFLAGS += $(CMDLINE_LFLAGS)
70LFLAGS += $(ANDROID_LINK_EXECUTABLE)
71ifeq ($(ARCH),arm64)
72LRPATH  = -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib
73else
74LRPATH  = -Wl,-rpath,$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/obj/lib:$(ANDROID_ROOT)/out/target/product/$(PRODUCT)/system/lib
75endif
76
77####################################################################################################
78## sources
79
80INV_LIBS  = $(MPL_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MPL_LIB_NAME).$(SHARED_LIB_EXT)
81INV_LIBS += $(MLLITE_DIR)/build/$(TARGET)/$(LIB_PREFIX)$(MLLITE_LIB_NAME).$(SHARED_LIB_EXT)
82
83#INV_SOURCES and VPATH provided by Makefile.filelist
84include ../filelist.mk
85
86INV_OBJS := $(addsuffix .o,$(INV_SOURCES))
87INV_OBJS_DST = $(addprefix $(OBJFOLDER)/,$(addsuffix .o, $(notdir $(INV_SOURCES))))
88
89####################################################################################################
90## rules
91
92.PHONY: all clean cleanall install
93
94all: $(EXEC) $(MK_NAME)
95
96$(EXEC) : $(OBJFOLDER) $(INV_OBJS_DST) $(INV_LIBS) $(MK_NAME)
97	@$(call echo_in_colors, "\n<linking $(EXEC) with objects $(INV_OBJS_DST) $(PREBUILT_OBJS) and libraries $(INV_LIBS)\n")
98	$(LINK) $(INV_OBJS_DST) -o $(EXEC) $(LFLAGS) $(LLINK) $(INV_LIBS) $(LLINK) $(LRPATH)
99
100$(OBJFOLDER) :
101	@$(call echo_in_colors, "\n<creating object's folder 'obj/'>\n")
102	mkdir obj
103
104$(INV_OBJS_DST) : $(OBJFOLDER)/%.c.o : %.c  $(MK_NAME)
105	@$(call echo_in_colors, "\n<compile $< to $(OBJFOLDER)/$(notdir $@)>\n")
106	$(COMP) $(ANDROID_INCLUDES) $(KERNEL_INCLUDES) $(INV_INCLUDES) $(CFLAGS) -o $@ -c $<
107
108clean :
109	rm -fR $(OBJFOLDER)
110
111cleanall :
112	rm -fR $(EXEC) $(OBJFOLDER)
113
114install : $(EXEC)
115	cp -f $(EXEC) $(INSTALL_DIR)
116
117
118