# 包含编译参数配置定义文件
-include build/tuya_iot.config
include build/build_param

############################################################
# 默认编译目标
############################################################
all: app

############################################################
# 使用 xmake
############################################################
XMAKE_OUTDIR := $(OUTPUT_DIR)
include scripts/mk/xmake.mk

TUYA_SDK_INC :=				 # 加载至CFLAGS中提供给其他组件使用；打包进SDK产物中；
TUYA_SDK_DOCS :=			 # 复制到./docs目录下，生成对外文档；
TUYA_APP_OPENSOURCE_INC :=	 # 加载至CFLAGS中提供给其他组件使用；不打包进SDK产物中；
TUYA_SDK_CFLAGS :=			 # 模块对外CFLAGS：其他组件编译时可感知到
TUYA_APP_OPENSOURCE :=		 # 模块对外开源

############################################################
# 包含开发环境定义
############################################################
-include $(TUYAOS_BUILD_PATH)/platform.mk
CFLAGS += $(TUYA_PLATFORM_CFLAGS)

############################################################
# 包含所有Adapter、components组件的local.mk 并配置头文件路径
############################################################
-include $(shell find adapter components  -name local.mk 2>/dev/null)
-include $(shell find vendor/$(TARGET_PLATFORM) -name local.mk)
ifneq ($(APP_NAME),)
-include $(shell find apps/$(APP_NAME) -name local.mk 2>/dev/null)
-include $(shell find application_components application_drivers -name local.mk 2>/dev/null)
endif

TUYA_SDK_INC_ALL_SUBDIRS := $(foreach dir,$(TUYA_SDK_INC),$(shell find $(dir) -type d))
TUYA_SDK_INC_ALL_SUBDIRS += $(shell find include -type d)
TUYA_APP_OPENSOURCE_ALL_SUBDIRS := $(foreach dir,$(TUYA_APP_OPENSOURCE_INC),$(shell find $(dir) -type d))
TUYA_APP_OPENSOURCE_ALL_SUBDIRS += $(shell find include -type d)
CFLAGS += $(addprefix -I,$(TUYA_SDK_INC_ALL_SUBDIRS))
CFLAGS += $(addprefix -I,$(TUYA_APP_OPENSOURCE_ALL_SUBDIRS))
CFLAGS += $(TUYA_SDK_CFLAGS)

HAS_PYTHON3 := $(shell which python3)

-include $(_XMAKE_DIR)/info.mk
-include $(_XMAKE_DIR)/config.mk
-include $(_XMAKE_DIR)/os.mk
-include $(_XMAKE_DIR)/app.mk
-include $(_XMAKE_DIR)/doc.mk
-include $(_XMAKE_DIR)/ut.mk


############################################################
# help / version
############################################################
version:
	@echo "V3.4.0"
	@echo "支持基线TuyaOS 3.4.0版本"
	@echo "------------------------------------"

help: version
	@echo "clean         : 清理app编译现场"
	@echo "config        : 生成配置头文件"
	@echo "os            : 编译各个组件代码"
	@echo "os_clean      : 清理sdk编译现场"
	@echo "tydoc         : 执行自动化文档"
	@echo "pack          : 打包产物生成压缩包"
	@echo "info          : 输出编译详情"
	@echo "app           : 编译调试应用代码"
	@echo "menuconfig    : 手动调整配置文件"
	@echo "config_choice : 从所有配置文件中选择"
	@echo "version       : 显示Makefile的版本"


############################################################
# 其他目标和依赖关系
############################################################
.PHONY: all clean version help

# 清空中间文件
clean:
	rm -fr $(OUTPUT_DIR)

os_clean: clean
	rm -fr $(LIB_DIR_OUT)
	rm -fr $(ROOT_DIR)/include/*



