#AS  = $(CROSS_COMPILE)arm-linux-as
#LD  = $(CROSS_COMPILE)arm-linux-ld
#CC  = $(CROSS_COMPILE)arm-linux-gcc
#CPP = $(CC) -E
#AR  = $(CROSS_COMPILE)arm-linux-ar
#NM  = $(CROSS_COMPILE)arm-linux-nm

LOCAL_PATH = $(shell pwd)

CFLAGS		+= -Wno-unused-variable

CPPFLAGS	:=

ifeq ($(SPRD_WCNBT_CHISET),sl8521e-base)
	board = sharkle
	CFLAGS += -DSHARKLE
endif
ifeq ($(SPRD_WCNBT_CHISET),sl8521e-3in1)
	board = sharkle
	CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-3in1)
	board = sharkle
	CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-emmc-marlin2)
        board = sharkle
        CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-emmc-marlin3lite)
        board = sharkle
        CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-smartpen32)
	board = sharkle
	CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-smartpen32-wifionly)
	board = sharkle
	CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-smartpen64)
        board = sharkle
        CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-smartpen64-wifionly)
        board = sharkle
        CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-nand-marlin2)
	board = sharkle
	CFLAGS += -DSHARKLE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8581e-3in1)
	board = sharkl3
	CFLAGS += -DSHARKL3
endif

ifeq ($(SPRD_WCNBT_CHISET),sc9863a-1h10)
	board = sharkl3
	CFLAGS += -DSHARKL3
endif

ifeq ($(SPRD_WCNBT_CHISET),s9863a-1h10)
	board = sharkl3
	CFLAGS += -DSHARKL3
endif

ifeq ($(SPRD_WCNBT_CHISET),s9863a-1h10-otaab)
    board = sharkl3
    CFLAGS += -DSHARKL3
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8521e-smartcoreboard)
	board = marlin3_lite
	CFLAGS += -DMARLIN3_LITE
endif

ifeq ($(SPRD_WCNBT_CHISET),sl8541e-nand-marlin3lite)
    board = marlin3_lite
    CFLAGS += -DMARLIN3_LITE
endif

ifeq ($(SPRD_WCNBT_CHISET),t710-smartcoreboard)
	board = marlin3_lite
	CFLAGS += -DMARLIN3_LITE
endif

ifeq ($(SPRD_WCNBT_CHISET),ums9620-2h10)
	board = marlin3_lite
	CFLAGS += -DMARLIN3_LITE
endif

ifeq ($(SPRD_WCNBT_CHISET),uis7885-2h10)
	board = marlin3_lite
	CFLAGS += -DMARLIN3_LITE
endif

ifeq ($(SPRD_WCNBT_CHISET),ums9620-2h10-otaab)
    board = marlin3_lite
    CFLAGS += -DMARLIN3_LITE
endif

ifeq ($(SPRD_WCNBT_CHISET),sc9863a-smartcoreboard)
    board = sharkl3
    CFLAGS += -DSHARKL3
endif

ifeq ($(USERDEBUG),userdebug)
	CFLAGS += -DCP2LOGOPEN
endif

LOCAL_C_INCLUDES += -I $(LOCAL_PATH)/include/ \
                                        -I $(LOCAL_PATH)/conf/sprd/$(board)/include \
					-I $(LOCAL_PATH)/src/algorithms

ifndef OBJ_DIR
	OBJ_DIR = obj
endif

all:libbt

dir:
	mkdir -p $(OBJ_DIR)

LOCAL_MODULE = $(OBJ_DIR)/libbt.so

LOCAL_OBJECTC += $(LOCAL_PATH)/conf/sprd/$(board)/src/$(board).c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/bt_vendor_sprd.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/bt_vendor_sprd_hci.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/bt_vendor_sprd_ssp.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/conf.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/hardware.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/upio.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/userial_vendor.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/algorithms/p_256_ecc_pp.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/algorithms/p_256_curvepara.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/algorithms/p_256_multprecision.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/algorithms/lmp_ecc.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/algorithms/algo_api.c
LOCAL_OBJECTC += $(LOCAL_PATH)/src/algorithms/algo_utils.c

LOCAL_STATIC_OBJ_O  = $(patsubst %.c, %.o, $(LOCAL_OBJECTC))
LOCAL_STATIC_OBJ_C  = $(foreach file, $(LOCAL_STATIC_OBJ_O), $(file))

libbt:dir $(LOCAL_STATIC_OBJ_C)
	$(CC) -shared -fPIC -o $(LOCAL_MODULE) ./*.o

$(LOCAL_STATIC_OBJ_C) : %.o:%.c
	$(CC) $(LOCAL_C_INCLUDES) $(CFLAGS) $(CPPFLAGS) -c -fPIC $(LOCAL_OBJECTC)

install:
	cp $(LOCAL_MODULE) $(INSTALL_MOD_PATH)/usr/lib

uninstall:
	rm -f /usr/lib/$(notdir $(LOCAL_MODULE))

clean:
	@rm -f *.o $(OBJ_DIR)/*.so

.PHONY: clean
