#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	:=

LOCAL_C_INCLUDES += -I $(LOCAL_PATH) \
		    -I $(LOCAL_PATH)/main/include \
		    -I $(LOCAL_PATH)/osi/include

ifndef OBJ_DIR
	OBJ_DIR = obj
endif

all:btsuite

dir:
	mkdir -p $(OBJ_DIR)

LOCAL_MODULE = $(OBJ_DIR)/libbt-sprd_suite.so

LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/list.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/allocator.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/hash_map.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/hash_functions.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/allocation_tracker.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/semaphore.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/fixed_queue.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/reactor.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/thread.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/eager_reader.c
LOCAL_OBJECTC += $(LOCAL_PATH)/osi/src/future.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/sprd_suite.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/buffer_allocator.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/vendor_h4.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/vendor_hci.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/vendor_hcif.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/vendor_hcicmds.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/vendor_test.c
LOCAL_OBJECTC += $(LOCAL_PATH)/main/src/vendor_suite.c
LIBS += -lcap -lrt -ldl -lpthread

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

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

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

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

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

clean:
	@rm -f *.o *.so
.PHONY: clean
