CFLAGS = -Wall -g -O -fPIC
LOCAL_PATH := $(shell pwd)
LOCAL_CFLAGS :=

LOCAL_C_INCLUDES := \
	$(LOCAL_PATH)/ConfigFeature      \
	$(LOCAL_PATH)/include            \
	$(LOCAL_PATH)/include/inc/       \
	$(LOCAL_PATH)/include/sensors/   \
	$(LOCAL_PATH)

LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
LOCAL_SRC_FILES += $(LOCAL_PATH)/ConfigFeature/SensorList_hub.cpp

LIBPATH :=
LIBS := -lpthread -ldl -lrt

#Virtual gyroscope
ifneq ($(SENSOR_HUB_VIRTUAL_GYROSCOPE),NULL)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/Virtual_gyro_lib
LOCAL_C_INCLUDES += $(LOCAL_PATH)/Virtual_gyro_lib/AKMAlgo/
LOCAL_C_INCLUDES += $(LOCAL_PATH)/Virtual_gyro_lib/MemsicAlgo/
LOCAL_C_INCLUDES += $(LOCAL_PATH)/Virtual_gyro_lib/QstAlgo/

LOCAL_SRC_FILES += $(LOCAL_PATH)/Virtual_gyro_lib/virtual_gyro_interface.cpp
LOCAL_CFLAGS += -DSENSORHUB_WITH_VIRTUAL_GYROSCOPE

ifeq ($(SENSOR_HUB_VIRTUAL_GYROSCOPE),akm_virtual_gyro)
LOCAL_SRC_FILES += $(LOCAL_PATH)/Virtual_gyro_lib/AKMAlgo/akm_vgyro_algo.cpp
LOCAL_CFLAGS += -DSENSORHUB_SUPPORT_akm_virtual_gyro
LIBPATH += -L$(LOCAL_PATH)/Virtual_gyro_lib/AKMAlgo/$(SENSOR_HUB_VENDOR_LIB_BIT)/
LIBS += -lcompasshub
endif

ifeq ($(SENSOR_HUB_VIRTUAL_GYROSCOPE),memsic_virtual_gyro)
LOCAL_SRC_FILES += $(LOCAL_PATH)/Virtual_gyro_lib/MemsicAlgo/memsic_vgyro_algo.cpp
LOCAL_CFLAGS += -DSENSORHUB_SUPPORT_memsic_virtual_gyro
LIBPATH += -L$(LOCAL_PATH)/Virtual_gyro_lib/MemsicAlgo/$(SENSOR_HUB_VENDOR_LIB_BIT)/
LIBS += -lMemsicAlgo
endif

ifeq ($(SENSOR_HUB_VIRTUAL_GYROSCOPE),qst_virtual_gyro)
LOCAL_SRC_FILES += $(LOCAL_PATH)/Virtual_gyro_lib/QstAlgo/qst_vgyro_algo.cpp
LOCAL_CFLAGS += -DSENSORHUB_SUPPORT_qst_virtual_gyro
LIBPATH += -L$(LOCAL_PATH)/Virtual_gyro_lib/QstAlgo/$(SENSOR_HUB_VENDOR_LIB_BIT)/
LIBS += -lQstAlgo
endif

endif

INCLUDE_DIRS = $(addprefix -I , $(LOCAL_C_INCLUDES))

SRCS =  $(LOCAL_SRC_FILES)
OBJS = $(notdir $(patsubst %.cpp,%.o,$(LOCAL_SRC_FILES)))
CFLAGS += $(LOCAL_CFLAGS)

TARGET = libsensorhubhal.so

all:$(OBJS)
	$(CXX) -shared -o $(TARGET) $(OBJS) $(LIBPATH) $(LIBS)
	rm -f $(OBJS)

$(OBJS):$(SRCS)
	$(CXX) $(CFLAGS) $(INCLUDE_DIRS) -c $^

install:
	install -d $(DESTDIR)/usr/lib
	install -m 0755 $(TARGET) $(DESTDIR)/usr/lib

clean:
	rm -f $(OBJS)
	rm -f *.o
	rm -f $(TARGET)

