define my-dir
$(strip	\
	$(eval _md_file_:=$$(lastword $$(MAKEFILE_LIST)))	\
	$(if $(filter $(CLEAR_VARS),$(_md_file_)),	\
		$(error LOCAL_PATH must be set before including $$(CLEAR_VARS))	\
		,	\
		$(patsubst %/,%,$(dir $(_md_file_)))	\
	)	\
)
endef

CC := $(COMPILE_PREX)gcc
CPP := $(COMPILE_PREX)g++
CXX := $(COMPILE_PREX)g++
AR := $(COMPILE_PREX)ar
STRIP := $(COMPILE_PREX)strip

LOCAL_PATH := $(call my-dir)

LOCAL_SRC_FILES := $(shell find $(LOCAL_PATH)/src -name "*.c" -o -name "*.cpp" -o -name "*.cc")

OBJS_DIR := $(LOCAL_PATH)/objs
OBJS = $(patsubst %.c,%.o,$(LOCAL_SRC_FILES))

APP_INCS = $(addprefix -I, $(shell find $(LOCAL_PATH)/include -type d))
APP_INCS += $(addprefix -I, $(shell find $(LOCAL_PATH)/include -type d))

CFLAGS := $(APP_INCS)
ifeq ($(PLATFORM),tina)
	CFLAGS += -DTY_WIRED_NET_DEV=\"wlan0\" -DOS_TINA
endif

LIB_OUTPUT_DIR := $(LOCAL_PATH)/lib/$(PLATFORM)
LIB_DEPEND := tuya_iot
LD_LIB_DEPEND := $(addprefix -l, $(LIB_DEPEND))

LDFLAGS += -pthread -lm # -L$(LIB_OUTPUT_DIR) $(LD_LIB_DEPEND)

.PHONY: all rm_objs

# all:  jdsmart_demo rm_objs

# jdsmart_demo: $(OBJS)
# 	$(CC) -Wall -Wl,--start-group $(LDFLAGS) -o $@ $^ -Wl,-rpath=./:$(LIB_OUTPUT_DIR) -Wl,--end-group

all:  libjdsmart_demo.so rm_objs

libjdsmart_demo.so:$(OBJS)
	$(CC) -shared -Wall -Wl,--start-group $(LDFLAGS) -o $@ $^ -Wl,-rpath=./:$(LIB_OUTPUT_DIR) -Wl,--end-group

%.o:%.c
	$(CC) -Wall -fPIC -c $(CFLAGS) $< -o $@

rm_objs:
	rm -rf $(OBJS)

clean: rm_objs
	rm -rf jdsmart_demo
