CFLAGS = -Wall -g -O -fPIC

LOCAL_PATH := $(shell pwd)

LOCAL_CFLAGS :=

LOCAL_C_INCLUDES := \
	$(LOCAL_PATH)/acc          \
	$(LOCAL_PATH)/gyro          \
	$(LOCAL_PATH)/mag          \
	$(LOCAL_PATH)/pressure     \
	$(LOCAL_PATH)/include      \
	$(LOCAL_PATH)

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

LIBPATH :=
LIBS := -lpthread

#Accsensor
ifneq ($(BOARD_HAVE_ACC),NULL)
LOCAL_SRC_FILES += acc/AccSensor.cpp
LOCAL_CFLAGS += -DACC_INSTALL_$(BOARD_ACC_INSTALL)
else
LOCAL_CFLAGS += -DACC_NULL
endif

#Gyrosensor
ifneq ($(BOARD_HAVE_GYRO),NULL)
LOCAL_SRC_FILES += gyro/GyroSensor.cpp
LOCAL_CFLAGS += -DGYRO_INSTALL_$(BOARD_GYRO_INSTALL)
else
LOCAL_CFLAGS += -DGYRO_NULL
endif

#MAGNETIC
ifneq ($(BOARD_HAVE_ORI),NULL)
ifeq ($(BOARD_HAVE_ORI),MMC5603)
LOCAL_SRC_FILES += mag/Ori_$(BOARD_HAVE_ORI).cpp
LOCAL_CFLAGS += -DORI_INSTALL_$(BOARD_ORI_INSTALL)
LOCAL_C_INCLUDES += \
	$(LOCAL_PATH)/mag/memsic_algo/

LIBPATH += -L./mag/memsic_algo/a/
LIBS += -lMemsicAlgo
endif
else
LOCAL_CFLAGS += -DORI_NULL
endif

#PLS
ifneq ($(BOARD_HAVE_PLS),NULL)
#LOCAL_SRC_FILES += pls/PlsSensor.cpp
else
LOCAL_CFLAGS += -DPLS_NULL
endif

#Pressensor
ifneq ($(BOARD_HAVE_PRESSURE),NULL)
LOCAL_SRC_FILES += pressure/PresSensor.cpp
else
LOCAL_CFLAGS += -DPRESSURE_NULL
endif

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

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

TARGET = libsensorclassic.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)

