Files
ws73_linux_WS73_1.10.112/Makefile
2025-11-14 01:39:37 +08:00

235 lines
8.1 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CUR_MK_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
CUR_MK_DIR := $(dir $(CUR_MK_PATH))
CUR_MK_DIR := $(realpath $(CUR_MK_DIR))
# basic dir
SDK_DIR := $(CUR_MK_DIR)
OUTPUT_DIR := $(SDK_DIR)/output
OUTPUT_BIN_DIR := $(OUTPUT_DIR)/bin
OUTPUT_BUILD_DIR := $(OUTPUT_DIR)/build
OPEN_SROUCE_DIR := $(SDK_DIR)/open_source
BSLE_SRC_DIR := $(SDK_DIR)/driver/bsle
WIFI_SRC_DIR := $(SDK_DIR)/driver/wifi
PLATFORM_SRC_DIR := $(SDK_DIR)/driver/platform
SCRIPT_DIR := $(SDK_DIR)/build/scripts
CONFIG_DIR := $(SDK_DIR)/build/config
BSLE_DFT_DRIVER_SRC_DIR := $(SDK_DIR)/application/dft
# config file
ACTIVE_KCONFIG_CONFIG := $(SDK_DIR)/.config
DEFAULT_KCONFIG_CONFIG := $(CONFIG_DIR)/ws73_default.config
LIGHT_KCONFIG_CONFIG := $(CONFIG_DIR)/ws73_light.config
# other
define echo_ok
@echo -e "\033[1;32m$(1)\033[0m"
endef
# 导出由Kconfig生成的配置文件路径供下层Makefile使用
ifneq ($(wildcard $(ACTIVE_KCONFIG_CONFIG)),)
WSCFG_KCONFIG_CONFIG = $(realpath $(ACTIVE_KCONFIG_CONFIG))
else
WSCFG_KCONFIG_CONFIG = $(realpath $(DEFAULT_KCONFIG_CONFIG))
endif
LIGHT_WSCFG_KCONFIG_CONFIG = $(realpath $(LIGHT_KCONFIG_CONFIG))
export WSCFG_KCONFIG_CONFIG
export LIGHT_WSCFG_KCONFIG_CONFIG
export WSCFG_AUTOCONFIG_H = $(OUTPUT_BIN_DIR)/autoconfig.h
export LIGHT_WSCFG_AUTOCONFIG_H = $(OUTPUT_BIN_DIR)/light_autoconfig.h
include $(WSCFG_KCONFIG_CONFIG)
include $(LIGHT_WSCFG_KCONFIG_CONFIG)
export DIR_MAP_CONFIG_FILE = release.mk
ALL_CBB_BUILD_TARGETS := platform wifi
LIGHT_CBB_BUILD_TARGETS := platform_light wifi_light
ALL_CBB_CLEAN_TARGETS := platform_clean wifi_clean
ALL_CBB_BUILD_TARGETS_ANDROID := platform wifi
ifdef WSCFG_BLE_COMPILE_BY_DEFAULT
ALL_CBB_BUILD_TARGETS += ble
ALL_CBB_BUILD_TARGETS += dft_driver
ALL_CBB_BUILD_TARGETS += dft_channel
ALL_CBB_BUILD_TARGETS += dft_ctrl
ALL_CBB_BUILD_TARGETS_ANDROID += ble_android
ALL_CBB_CLEAN_TARGETS += ble_clean ble_android_clean dft_channel_clean dft_ctrl_clean
LIGHT_CBB_BUILD_TARGETS += ble_light
endif
ifdef WSCFG_SLE_COMPILE_BY_DEFAULT
ALL_CBB_BUILD_TARGETS += sle
ALL_CBB_BUILD_TARGETS_ANDROID += sle
LIGHT_CBB_BUILD_TARGETS += sle_light
ALL_CBB_CLEAN_TARGETS += sle_clean
endif
# cpu counts
#CPU_NUM := $(shell nproc)
CPU_NUM := 2
.PHONY: wifi platform ble sle ini hso tools menuconfig ble_android full_build all clean
all: prepare $(ALL_CBB_BUILD_TARGETS)
$(call echo_ok,all built!)
light: prepare_light $(LIGHT_CBB_BUILD_TARGETS)
$(call echo_ok,light built!)
clean: $(ALL_CBB_CLEAN_TARGETS) hso_clean
$(call echo_ok,all clean!)
full_build: prepare ini platform wifi ble_android sle hso
$(call echo_ok,all built!)
android: prepare $(ALL_CBB_BUILD_TARGETS_ANDROID)
$(call echo_ok,all android built!)
prepare_light:
@mkdir -p $(OUTPUT_BIN_DIR) $(OUTPUT_BUILD_DIR)
@python3 $(SCRIPT_DIR)/hconfig.py $(SDK_DIR)/Kconfig ${LIGHT_WSCFG_KCONFIG_CONFIG} -a ${LIGHT_WSCFG_AUTOCONFIG_H}
@cp $(OUTPUT_BIN_DIR)/light_autoconfig.h $(OUTPUT_BIN_DIR)/autoconfig.h
$(call echo_ok,prepare_light built!)
prepare:
@mkdir -p $(OUTPUT_BIN_DIR) $(OUTPUT_BUILD_DIR)
@python3 $(SCRIPT_DIR)/hconfig.py $(SDK_DIR)/Kconfig ${WSCFG_KCONFIG_CONFIG} -a ${WSCFG_AUTOCONFIG_H}
ini: prepare
@cp -f $(CONFIG_DIR)/ws73_cfg_default.ini $(OUTPUT_BIN_DIR)/ws73_cfg.ini
@python3 $(SCRIPT_DIR)/hconfig_to_ini.py $(CONFIG_DIR)/ini_map.csv $(SDK_DIR)/Kconfig ${WSCFG_KCONFIG_CONFIG} $(OUTPUT_BIN_DIR)/ws73_cfg.ini
$(call echo_ok,INI file generate success in $(OUTPUT_BIN_DIR)/ws73_cfg.ini!)
ini_light: prepare_light
@cp -f $(CONFIG_DIR)/ws73_cfg_default.ini $(OUTPUT_BIN_DIR)/ws73_cfg.ini
@python3 $(SCRIPT_DIR)/hconfig_to_ini.py $(CONFIG_DIR)/ini_map.csv $(SDK_DIR)/Kconfig ${LIGHT_WSCFG_AUTOCONFIG_H} $(OUTPUT_BIN_DIR)/ws73_cfg.ini
$(call echo_ok,ini_light file generate success in $(OUTPUT_BIN_DIR)/ws73_cfg.ini!)
wifi: prepare
cd $(WIFI_SRC_DIR) && \
CONFIG_WSXX_KERNEL_MODULES_BUILD_SUPPORT=yes\
make -j$(CPU_NUM) && cp -f wifi_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,WIFI ko built success in $(OUTPUT_BIN_DIR)/wifi_soc.ko!)
wifi_light: prepare_light
cd $(WIFI_SRC_DIR) && \
CONFIG_WSXX_KERNEL_MODULES_BUILD_SUPPORT=yes\
make -j$(CPU_NUM) && cp -f wifi_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok, wifi_light ko built success in $(OUTPUT_BIN_DIR)/wifi_soc.ko!)
wifi_clean: prepare
cd $(WIFI_SRC_DIR) && \
CONFIG_WSXX_KERNEL_MODULES_BUILD_SUPPORT=yes\
make clean
@find $(WIFI_SRC_DIR) -name "*.o" -exec rm {} \;
@find $(WIFI_SRC_DIR) -name "*.cmd" -exec rm {} \;
platform: prepare ini
cd $(PLATFORM_SRC_DIR) && \
BUILD_DEVICE_WITH_ROM_REPO=yes\
make -j$(CPU_NUM) && cp -f plat_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,platform ko built success in $(OUTPUT_BIN_DIR)/plat_soc.ko!)
platform_light: prepare_light ini_light
cd $(PLATFORM_SRC_DIR) && \
BUILD_DEVICE_WITH_ROM_REPO=yes\
make -j$(CPU_NUM) && cp -f plat_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,platform_light ko built success in $(OUTPUT_BIN_DIR)/plat_soc.ko!)
platform_clean: prepare
cd $(PLATFORM_SRC_DIR) && \
make clean
@find $(PLATFORM_SRC_DIR) -name "*.o" -exec rm {} \;
@find $(PLATFORM_SRC_DIR) -name "*.cmd" -exec rm {} \;
ble: prepare
cd $(BSLE_SRC_DIR)/ble_driver/linux && \
make -j$(CPU_NUM) && cp -f ble_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,ble_linux ko built success in $(OUTPUT_BIN_DIR)/ble_soc.ko!)
dft_driver: prepare
cd $(BSLE_DFT_DRIVER_SRC_DIR)/bsle_dft_driver && \
make -j$(CPU_NUM) && cp -f bp_test.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,ble_linux ko built success in $(OUTPUT_BIN_DIR)/bp_test.ko!)
dft_channel: prepare
cd $(BSLE_DFT_DRIVER_SRC_DIR)/bsle_dft_channel/linux && \
make -j$(CPU_NUM) && cp -f build/bp_channel $(OUTPUT_BIN_DIR)/
$(call echo_ok,bp_channel ko built success in $(OUTPUT_BIN_DIR)/bp_channel!)
dft_channel_clean: prepare
cd $(BSLE_DFT_DRIVER_SRC_DIR)/bsle_dft_channel/linux && \
make clean
dft_ctrl: prepare
cd $(BSLE_DFT_DRIVER_SRC_DIR)/bsle_dft_ctrl/linux && \
make -j$(CPU_NUM) && cp -f build/sparklinkctrl $(OUTPUT_BIN_DIR)/
$(call echo_ok,sparklinkctrl ko built success in $(OUTPUT_BIN_DIR)/sparklinkctrl!)
dft_ctrl_clean: prepare
cd $(BSLE_DFT_DRIVER_SRC_DIR)/bsle_dft_ctrl/linux && \
make clean
ble_light: prepare_light
cd $(BSLE_SRC_DIR)/ble_driver/linux && \
make -j$(CPU_NUM) && cp -f ble_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,ble_light_linux ko built success in $(OUTPUT_BIN_DIR)/ble_soc.ko!)
ble_clean: prepare
cd $(BSLE_SRC_DIR)/ble_driver/linux && \
make clean
ble_android: prepare
cd $(BSLE_SRC_DIR)/ble_driver/android && \
make -j$(CPU_NUM) && cp -f ble_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,ble_android ko built success in $(OUTPUT_BIN_DIR)/ble_soc.ko!)
ble_android_clean: prepare
cd $(BSLE_SRC_DIR)/ble_driver/android && \
make clean
sle: prepare
cd $(BSLE_SRC_DIR)/sle_driver && \
make -j$(CPU_NUM) && cp -f sle_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,sle ko built success in $(OUTPUT_BIN_DIR)/sle_soc.ko!)
sle_light: prepare_light
cd $(BSLE_SRC_DIR)/sle_driver && \
make -j$(CPU_NUM) && cp -f sle_soc.ko $(OUTPUT_BIN_DIR)/
$(call echo_ok,sle_light ko built success in $(OUTPUT_BIN_DIR)/sle_soc.ko!)
sle_clean: prepare
cd $(BSLE_SRC_DIR)/sle_driver && \
make clean
hso_clean: prepare
@rm -rf $(OUTPUT_DIR)/database_es0
hso: prepare
@echo "Generate hdb..."
@cp -rf $(CONFIG_DIR)/hso/database_es0 $(OUTPUT_DIR)/
@python3 $(SCRIPT_DIR)/build_host_hso.py -c $(CONFIG_DIR)/hso/generate_hdb.ini
$(call echo_ok,hso generate success in $(OUTPUT_DIR)/database_es0!)
tools_clean: prepare
@make -f $(OPEN_SROUCE_DIR)/open_source.mk\
SDK_OUTPUT_BUILD_DIR=$(OUTPUT_BUILD_DIR)\
SDK_OUTPUT_BIN_DIR=$(OUTPUT_BIN_DIR) clean
tools_clean_light: prepare
@make -f $(OPEN_SROUCE_DIR)/open_source_light.mk\
SDK_OUTPUT_BUILD_DIR=$(OUTPUT_BUILD_DIR)\
SDK_OUTPUT_BIN_DIR=$(OUTPUT_BIN_DIR) clean
tools: prepare
@make -j$(CPU_NUM) -f $(OPEN_SROUCE_DIR)/open_source.mk\
SDK_OUTPUT_BUILD_DIR=$(OUTPUT_BUILD_DIR)\
SDK_OUTPUT_BIN_DIR=$(OUTPUT_BIN_DIR)
$(call echo_ok,open source tools built success!)
tools_light: prepare
@make -j$(CPU_NUM) -f $(OPEN_SROUCE_DIR)/open_source_light.mk\
SDK_OUTPUT_BUILD_DIR=$(OUTPUT_BUILD_DIR)\
SDK_OUTPUT_BIN_DIR=$(OUTPUT_BIN_DIR)
$(call echo_ok,open source tools built success!)