BUILD_ROOT = $(shell pwd)/..
include $(BUILD_ROOT)/Make.defines

LOCAL_PATH=$(BUILD_ROOT)/libmbtk_lib

INC_DIR += \
	-I$(LOCAL_PATH)/audio \
	-I$(LOCAL_PATH)/coap \
	-I$(LOCAL_PATH)/common \
	-I$(LOCAL_PATH)/ecall \
	-I$(LOCAL_PATH)/fota \
	-I$(LOCAL_PATH)/ftp \
	-I$(LOCAL_PATH)/gnss \
	-I$(LOCAL_PATH)/http \
	-I$(LOCAL_PATH)/mqtt \
	-I$(LOCAL_PATH)/mqtt/MQTTPacket \
	-I$(LOCAL_PATH)/net \
	-I$(LOCAL_PATH)/tcpip \
	-I$(LOCAL_PATH)/ril/inc \
	-I$(LOCAL_PATH)/sleep \
    -I$(LOCAL_PATH)/wifi \
    -I$(BUILD_ROOT)/mbtk_rtpd/inc

LIB_DIR +=

LIBS += -llog -lubus -lubox -luci -lprop2uci -lrilutil -lblobmsg_json -ldl -lcutils -laudio-apu -lwpa_client

$(info SSL support)
#DEFINE += -DMBTK_MBEDTLS_V3_6_2_SUPPORT
#LIBS += -lmbedcrypto -lmbedtls -lmbedx509

DEFINE += -DMBTK_OPENSSL_V3_0_0_SUPPORT
LIBS += -lssl -lcrypto

CFLAGS += -Wno-error=unused-but-set-variable

ifeq ($(BUILD_LIB_TYPE), shared)
CFLAGS += -shared -Wl,-shared,-Bsymbolic
endif

DEFINE += -DMBTK_NET_MONITOR_SUPPORT

#MY_FILES_PATH:=$(LOCAL_PATH)/src
#ifeq ($(CONFIG_MBTK_QL_SUPPORT),y)
#MY_FILES_PATH += $(LOCAL_PATH)/ql
#endif

#ifeq ($(CONFIG_MBTK_PLATFORM),linux)
#MY_FILES_PATH += $(LOCAL_PATH)/platform/linux
#endif

#MY_FILES_SUFFIX:=%.c %.cpp
#My_All_Files := $(foreach src_path,$(MY_FILES_PATH), $(shell find "$(src_path)" -type f))
#MY_SRC_LIST  := $(filter $(MY_FILES_SUFFIX),$(My_All_Files))
#MY_SRC_LIST  := $(MY_SRC_LIST:$(LOCAL_PATH)/%=%)
#LOCAL_SRC_FILES += $(MY_SRC_LIST)

# common
#	common/mbtk_debug.c
LOCAL_SRC_FILES = \
    common/ds_ASBuffer.cpp \
	common/ds_ASString.cpp \
	common/mbtk_at.c \
	common/mbtk_bs_position.c \
	common/mbtk_file.c \
	common/mbtk_list.c \
	common/mbtk_log.c \
	common/mbtk_map.c \
	common/mbtk_ntp.c \
	common/mbtk_queue.c \
	common/mbtk_str.c \
	common/mbtk_task.c \
	common/mbtk_utf.c \
	common/mbtk_utils.c \
	common/ringbuffer.c \
	common/mbtk_mtd.c \
	common/mbtk_device_info.c \
	common/mbtk_version.c \
	common/mbtk_gpio.c \
	common/mbtk_adc.c \
	common/mbtk_loopbuff.c \
	common/mbtk_oem_rw.c 

ifeq ($(MBTK_SOURCE_VERSION), 2)
LOCAL_SRC_FILES += common/mbtk_led_control.c
endif

# audio
LOCAL_SRC_FILES += \
    audio/mbtk_audio.c \
	audio/mbtk_audio_gain.c \
	audio/mbtk_pcm_stream.c \
	audio/mbtk_wav.c \
	audio/mbtk_audio_ubus.c

# rtp
LOCAL_SRC_FILES += \
    rtp/mbtk_rtp.c

# coap
LOCAL_SRC_FILES += \
    coap/mbtk_coap.c \
	coap/mbtk_coap_api.cpp \
	coap/mbtk_coap_pdu.cpp

# fota
LOCAL_SRC_FILES += \
    fota/mbtk_fota.c

# gnss
LOCAL_SRC_FILES += \
    gnss/mbtk_gnss.c

# net
LOCAL_SRC_FILES += \
    net/mbtk_dhcp.c \
	net/mbtk_ifc.c \
	net/mbtk_net_control.c \
	net/mbtk_mbedtls.c \
	net/mbtk_openssl.c \
	net/mbtk_sock.c \
	net/mbtk_sock2.c

# ril
LOCAL_SRC_FILES += ril/mbtk_pdu_sms.c

ifeq ($(MBTK_SOURCE_VERSION), 2)
LOCAL_SRC_FILES += \
    ril/v2/ril_utils.c \
	ril/v2/mbtk_ril_api.c
else
LOCAL_SRC_FILES += \
    ril/v1/mbtk_info.c \
	ril/v1/mbtk_info_api.c
endif

# ftp
LOCAL_SRC_FILES += \
    ftp/mbtk_ftp.c \
	ftp/mbtk_ftp_at.c

# http
LOCAL_SRC_FILES += \
    http/mbtk_http.c \
	http/mbtk_http_base.c \
	http/mbtk_http_chunks.c

# mqtt
LOCAL_SRC_FILES += \
    mqtt/mbtk_mqtt.c \
	mqtt/MQTTClient.c \
	mqtt/MQTTLinux.c \
	mqtt/MQTTPacket/core_sha1.c \
	mqtt/MQTTPacket/core_sha256.c \
	mqtt/MQTTPacket/MQTTConnectClient.c \
	mqtt/MQTTPacket/MQTTConnectServer.c \
	mqtt/MQTTPacket/MQTTDeserializePublish.c \
	mqtt/MQTTPacket/MQTTFormat.c \
	mqtt/MQTTPacket/MQTTPacket.c \
	mqtt/MQTTPacket/MQTTSerializePublish.c \
	mqtt/MQTTPacket/MQTTSubscribeClient.c \
	mqtt/MQTTPacket/MQTTSubscribeServer.c \
	mqtt/MQTTPacket/MQTTUnsubscribeClient.c \
	mqtt/MQTTPacket/MQTTUnsubscribeServer.c

# tcpip
LOCAL_SRC_FILES += \
    tcpip/mbtk_tcpip_at.c

# sleep
LOCAL_SRC_FILES += \
    sleep/mbtk_sleep.c \
    sleep/mbtk_lpm.c

#wifi
LOCAL_SRC_FILES += \
    wifi/sta_cli.c \
	wifi/sta_ctrl.c \
	wifi/mbtk_wifi_ap.c


OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(LOCAL_SRC_FILES)))
$(info OBJS = $(OBJS))

ifeq ($(BUILD_LIB_TYPE), shared)
dtarget := $(OUT_DIR)/lib/libmbtk_lib.so
else
dtarget := $(OUT_DIR)/lib/libmbtk_lib.a
endif

all: $(dtarget)

$(dtarget):$(OBJS)
	$(CC) $(CFLAGS) $(DEFINE) $(LIB_DIR) $(LIBS) $(OBJS) -o $@

%.o:%.c
	$(CC) $(CFLAGS) $(INC_DIR) $(DEFINE) -c $< -o $@

%.o:%.cpp
	$(CC) $(CFLAGS) $(INC_DIR) $(DEFINE) -c $< -o $@

clean:
	rm -f $(OBJS) $(dtarget)

