1include $(MAIN_TOPDIR)/build/config/sdk.mk 2include $(MAIN_TOPDIR)/build/make_scripts/usr.mk 3SHELL = /bin/bash 4COMPILE_MODULE += drv sys at 5boot_dir := boot/flashboot 6loaderboot_dir := boot/loaderboot 7drv_dir := platform/drivers 8sys_dir := platform/system 9at_dir := components/at 10hilink_dir := components/hilink 11boot_libs := boot 12loaderboot_libs := loaderboot 13drv_libs := uart adc tsensor 14sys_libs := cfg parttab upg 15at_libs := at 16hilink_libs := hilink 17RM := rm -rf 18MAKE := make 19MV := mv 20MAKE_DIR := mkdir -p 21CC := $(TOOLS_PREFIX)gcc 22AR := $(TOOLS_PREFIX)ar 23AS := $(TOOLS_PREFIX)as 24CXX := $(TOOLS_PREFIX)cpp 25LINK := $(TOOLS_PREFIX)ld 26RANLIB := $(TOOLS_PREFIX)ranlib 27OBJCOPY := $(TOOLS_PREFIX)objcopy 28OBJDUMP := $(TOOLS_PREFIX)objdump 29NV_CFG_NAME := mss_nvi_db.xml 30BASE_NUM := d11133fff0d435d699e27817e165cf1d10c1a951452bd07d40da5bcfc41ef773 31LOG_PATH := build/build_tmp/logs 32OBJ_PATH := build/build_tmp/objs 33LIB_PATH := build/build_tmp/libs 34CACHE_PATH := build/build_tmp/cache 35LINK_PATH := build/build_tmp/scripts 36NV_PATH := build/build_tmp/nv 37 38LIBS += $(patsubst lib%.a, -l%, $(notdir $(wildcard $(MAIN_TOPDIR)/build/libs/*.a))) 39LIBPATH += -Lbuild/scripts -Lbuild/libs -Lbuild/build_tmp/scripts 40LIBS += -lwifi -lwifi_flash -lsystem -llitekernel_flash -lgcc 41ifeq ($(USR_APP_ON), n) 42COMPILE_MODULE += $(APP_NAME) 43$(APP_NAME)_dir := app/$(APP_NAME) 44$(APP_NAME)_libs := $(APP_NAME) 45endif 46LIBS += $(USR_LIBS) 47 48PYTHON_SCRIPTS = y 49ifeq ($(PYTHON_SCRIPTS),y) 50NV_TOOL := python3 $(MAIN_TOPDIR)/tools/nvtool/build_nv.py 51OTA_TOOL := python3 $(MAIN_TOPDIR)/build/scripts/pkt_builder.py 52else 53NV_TOOL := cd $(MAIN_TOPDIR)/tools/nvtool;\ 54 $(MAIN_TOPDIR)/tools/nvtool/nv_builder 55OTA_TOOL := cd $(MAIN_TOPDIR)/build/scripts;\ 56 $(MAIN_TOPDIR)/build/scripts/ota_builder 57endif 58 59 60ARFLAGS := cr 61CCFLAGS := -mabi=ilp32 -march=rv32imc -falign-functions=2 -msave-restore -fno-optimize-strlen -freorder-blocks-algorithm=simple -fno-schedule-insns -fno-inline-small-functions -fno-inline-functions-called-once -mtune=size -fno-strict-aliasing -msmall-data-limit=0 -nostdinc -fno-aggressive-loop-optimizations -fno-builtin -std=c99 -Os -ffunction-sections -fdata-sections -fno-exceptions -fno-short-enums -fno-common -Wall -Wundef -DLOS_COMPILE_LDM -fstack-protector-strong -freg-struct-return -fvisibility=hidden -pipe 62ASLAGS := 63DEFINES := -DCYGPKG_POSIX_SIGNALS \ 64 -D__ECOS__ \ 65 -D__RTOS_ \ 66 -DPRODUCT_CFG_HAVE_FEATURE_SYS_ERR_INFO \ 67 -D__LITEOS__ \ 68 -DLIB_CONFIGURABLE \ 69 -DLOSCFG_SHELL \ 70 -DLOSCFG_CACHE_STATICS \ 71 -DCUSTOM_AT_COMMAND \ 72 -DLOS_COMPILE_LDM \ 73 -DLOS_CONFIG_IPERF3 \ 74 -DPRODUCT_USR_SOFT_VER_STR=\"None\" \ 75 -DSECUREC_ENABLE_SCANF_FILE=0 76INCLUDE := -I$(MAIN_TOPDIR)/include \ 77 -I$(MAIN_TOPDIR)/platform/include \ 78 -I$(MAIN_TOPDIR)/config \ 79 -I$(MAIN_TOPDIR)/config/nv \ 80 -I$(MAIN_TOPDIR)/../../../../utils/native/lite/include \ 81 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/kernel/include \ 82 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/kernel/base/include \ 83 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/targets/hi3861v100/include \ 84 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/targets/hi3861v100/plat/riscv 85LINKFLAGS := -nostartfiles -nostdlib -static --gc-sections 86 87LINK_SCRIPTS_FLAG := -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/kernel/include -I$(MAIN_TOPDIR)/config 88LINK_SCRIPTS_FLAG += 89ifeq ($(CONFIG_I2C_SUPPORT), y) 90 drv_libs += i2c 91endif 92ifeq ($(CONFIG_SPI_SUPPORT), y) 93 drv_libs += spi 94endif 95ifeq ($(CONFIG_PWM_SUPPORT), y) 96 drv_libs += pwm 97endif 98ifeq ($(CONFIG_I2C_SUPPORT), y) 99 DEFINES += -DCONFIG_I2C_SUPPORT 100endif 101ifeq ($(CONFIG_DMA_SUPPORT), y) 102 DEFINES += -DCONFIG_DMA_SUPPORT 103endif 104ifeq ($(CONFIG_SPI_SUPPORT), y) 105 DEFINES += -DCONFIG_SPI_SUPPORT 106endif 107ifeq ($(CONFIG_PWM_SUPPORT), y) 108 DEFINES += -DCONFIG_PWM_SUPPORT 109endif 110ifeq ($(CONFIG_PWM_HOLD_AFTER_REBOOT), y) 111 DEFINES += -DCONFIG_PWM_HOLD_AFTER_REBOOT 112endif 113ifeq ($(CONFIG_I2S_SUPPORT), y) 114 DEFINES += -DCONFIG_I2S_SUPPORT 115endif 116ifeq ($(CONFIG_COMPRESSION_OTA_SUPPORT), y) 117 DEFINES += -DCONFIG_COMPRESSION_OTA_SUPPORT 118endif 119ifeq ($(CONFIG_DUAL_PARTITION_OTA_SUPPORT), y) 120 DEFINES += -DCONFIG_DUAL_PARTITION_OTA_SUPPORT 121endif 122ifeq ($(CONFIG_AT_SUPPORT), y) 123 DEFINES += -DCONFIG_AT_COMMAND 124endif 125ifeq ($(LOSCFG_DAQ), y) 126 DEFINES += -DFEATURE_DAQ 127endif 128ifeq ($(LOSCFG_BACKTRACE), y) 129 DEFINES += -DLOS_BACKTRACE 130endif 131ifeq ($(CONFIG_UART0_SUPPORT), y) 132 DEFINES += -DCONFIG_UART0_SUPPORT 133endif 134ifeq ($(CONFIG_UART1_SUPPORT), y) 135 DEFINES += -DCONFIG_UART1_SUPPORT 136endif 137ifeq ($(CONFIG_UART2_SUPPORT), y) 138 DEFINES += -DCONFIG_UART2_SUPPORT 139endif 140ifeq ($(CONFIG_TARGET_CHIP_HI3861), y) 141 DEFINES += -DCHIP_VER_Hi3861 -DPRODUCT_CFG_CHIP_VER_STR=\"Hi3861V100\" -DCONFIG_CHIP_PRODUCT_NAME=\"Hi3861\" 142endif 143ifeq ($(CONFIG_CHIP_PKT_48K), y) 144 DEFINES += -DCONFIG_CHIP_PKT_48K 145endif 146ifeq ($(CONFIG_CHIP_PKT_32K), y) 147 DEFINES += -DCONFIG_CHIP_PKT_32K 148endif 149ifeq ($(LOSCFG_COMPILER_HI3861_ASIC), y) 150 DEFINES += -DHI_BOARD_ASIC 151else 152 DEFINES += -DHI_BOARD_FPGA 153endif 154ifeq ($(LOSCFG_COMPILER_HI3861_FLASH), y) 155 DEFINES += -DHI_ON_FLASH 156else 157 DEFINES += -DHI_ON_RAM 158endif 159ifeq ($(CONFIG_MESH_SUPPORT), y) 160 DEFINES += -DCONFIG_MESH_SUPPORT -DLOS_CONFIG_MESH -DLOS_CONFIG_MESH_GTK -DCONFIG_MESH -DCONFIG_SAE -DCONFIG_ECC -DLOS_CONFIG_HOSTAPD_MGMT -DLOSCFG_APP_MESH -DLWIP_DEBUG_OPEN -DLWIP_SMALL_SIZE_MESH=1 161else 162 DEFINES += -DLWIP_SMALL_SIZE_MESH=0 163endif 164ifeq ($(CONFIG_LWIP_SMALL_SIZE), y) 165 DEFINES += -DCONFIG_LWIP_SMALL_SIZE 166endif 167ifeq ($(CONFIG_LWIP_SMALL_SIZE_MESH), y) 168 DEFINES += -DCONFIG_LWIP_SMALL_SIZE_MESH 169endif 170ifeq ($(CONFIG_NETIF_HOSTNAME), y) 171 DEFINES += -DCONFIG_NETIF_HOSTNAME 172endif 173ifeq ($(CONFIG_DHCP_VENDOR_CLASS_IDENTIFIER), y) 174 DEFINES += -DCONFIG_DHCP_VENDOR_CLASS_IDENTIFIER 175endif 176ifeq ($(CONFIG_DHCPS_GW), y) 177 DEFINES += -DCONFIG_DHCPS_GW 178endif 179ifeq ($(CONFIG_UART_DMA_SUPPORT), y) 180 DEFINES += -DCONFIG_UART_DMA_SUPPORT 181endif 182ifeq ($(CONFIG_SDIO_SUPPORT), y) 183 DEFINES += -DCONFIG_SDIO_SUPPORT 184endif 185ifeq ($(CONFIG_SPI_DMA_SUPPORT), y) 186 DEFINES += -DCONFIG_SPI_DMA_SUPPORT 187endif 188ifeq ($(CONFIG_TEE_HUKS_SUPPORT), y) 189 DEFINES += -DCONFIG_TEE_HUKS_SUPPORT 190endif 191ifeq ($(CONFIG_TEE_HUKS_DEMO_SUPPORT), y) 192 DEFINES += -DCONFIG_TEE_HUKS_DEMO_SUPPORT 193endif 194ifeq ($(CONFIG_FLASH_ENCRYPT_SUPPORT), y) 195 DEFINES += -DCONFIG_FLASH_ENCRYPT_SUPPORT 196endif 197ifeq ($(LOSCFG_KASAN)_$(LOSCFG_KASAN_EXAMPLES_DEMO), y_y) 198 DEFINES += -DLOSCFG_DEBUG_KASAN 199endif 200ifeq ($(LOSCFG_KASAN)_$(LOSCFG_KASAN_LITEOS_NET_COAP), y_y) 201 DEFINES += -DLOSCFG_DEBUG_KASAN 202endif 203ifeq ($(LOSCFG_BACKTRACE), y) 204 ASLAGS += -fno-omit-frame-pointer 205endif 206ifeq ($(HB_LITEOS_COMPILE_TESTCASE), y) 207 LINK_SCRIPTS_FLAG += -DHI1131TEST 208endif 209ifeq ($(LOSCFG_KASAN), y) 210 LINK_SCRIPTS_FLAG += -DLOSCFG_DEBUG_KASAN 211endif 212ifeq ($(CONFIG_FLASH_ENCRYPT_SUPPORT), y) 213 LINK_SCRIPTS_FLAG += -DCONFIG_FLASH_ENCRYPT_SUPPORT 214endif 215ifeq ($(CONFIG_TEE_HUKS_SUPPORT), y) 216 LINK_SCRIPTS_FLAG += -DCONFIG_TEE_HUKS_SUPPORT 217endif 218ifeq ($(CONFIG_TARGET_SIG_RSA_V15), y) 219 LINK_SCRIPTS_FLAG += -DCONFIG_TARGET_SIG_RSA_V15 220endif 221ifeq ($(CONFIG_TARGET_SIG_RSA_PSS), y) 222 LINK_SCRIPTS_FLAG += -DCONFIG_TARGET_SIG_RSA_PSS 223endif 224ifeq ($(CONFIG_TARGET_SIG_ECC), y) 225 LINK_SCRIPTS_FLAG += -DCONFIG_TARGET_SIG_ECC 226endif 227ifeq ($(CONFIG_CHIP_PKT_48K), y) 228 LINK_SCRIPTS_FLAG += -DCONFIG_CHIP_PKT_48K 229endif 230ifeq ($(CONFIG_CHIP_PKT_32K), y) 231 LINK_SCRIPTS_FLAG += -DCONFIG_CHIP_PKT_32K 232endif 233ifeq ($(LOSCFG_COMPILER_HI3861_ASIC), y) 234 LINK_SCRIPTS_FLAG += -DHI_BOARD_ASIC 235else 236 LINK_SCRIPTS_FLAG += -DHI_BOARD_FPGA 237endif 238ifeq ($(LOSCFG_COMPILER_HI3861_FLASH), y) 239 LINK_SCRIPTS_FLAG += -DHI_ON_FLASH 240else 241 LINK_SCRIPTS_FLAG += -DHI_ON_RAM 242endif 243ifeq ($(LOSCFG_KERNEL_RUNSTOP), y) 244 INCLUDE += -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/kernel/extended/runstop 245endif 246ifeq ($(LOSCFG_COMPAT_POSIX), y) 247 INCLUDE += -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/posix/include 248endif 249ifeq ($(LOSCFG_COMPAT_LINUX), y) 250 INCLUDE += -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/linux/include 251endif 252ifeq ($(LOSCFG_SHELL), y) 253 INCLUDE += -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/shell/include 254endif 255ifeq ($(LOSCFG_NET_TELNET), y) 256 INCLUDE += -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/net/telnet/include 257endif 258ifeq ($(LOSCFG_LIB_LIBC), y) 259 INCLUDE += -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/lib/libc/hw/include\ 260 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/lib/libc/musl/include\ 261 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/lib/libc/musl/arch/generic\ 262 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/lib/libc/musl/arch/riscv32\ 263 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/lib/libc/nuttx/include\ 264 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/components/lib/libsec/include\ 265 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/targets/hi3861v100/config\ 266 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/targets/hi3861v100/user\ 267 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/targets/hi3861v100/plat\ 268 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/targets/hi3861v100/extend/include\ 269 -I$(MAIN_TOPDIR)/platform/os/Huawei_LiteOS/arch 270endif 271ifeq ($(LOSCFG_NET_LWIP_SACK), y) 272 INCLUDE += -I$(MAIN_TOPDIR)/third_party/lwip_sack/include 273endif 274ifeq ($(LOSCFG_BACKTRACE), y) 275 CCFLAGS += -fno-omit-frame-pointer 276endif 277ifeq ($(LOSCFG_KASAN)_$(LOSCFG_KASAN_EXAMPLES_DEMO), y_y) 278 CCFLAGS += -fsanitize=kernel-address -fasan-shadow-offset=1835008 --param asan-stack=1 -fsanitize=bounds-strict 279endif 280ifeq ($(LOSCFG_KASAN)_$(LOSCFG_KASAN_LITEOS_NET_COAP), y_y) 281 CCFLAGS += -fsanitize=kernel-address -fasan-shadow-offset=1835008 --param asan-stack=1 -fsanitize=bounds-strict 282endif 283ifeq ($(CONFIG_HILINK), y) 284 COMPILE_MODULE += hilink 285endif 286ifeq ($(CONFIG_HILINK), y) 287 DEFINES += -DCONFIG_HILINK 288endif 289 290ifeq ($(FACTORY_MODE), y) 291DEFINES += -DCONFIG_FACTORY_TEST_MODE 292endif 293LIBS += $(addprefix -l, $(foreach module, $(COMPILE_MODULE), $($(module)_libs))) 294ifeq ($(CONFIG_CE_SUPPORT), y) 295 NV_CFG_NAME = mss_nvi_db.xml 296endif 297ifeq ($(CONFIG_FCC_SUPPORT), y) 298 NV_CFG_NAME = mss_nvi_db_fcc.xml 299endif 300ifeq ($(CONFIG_MAX_POWER_SUPPORT), y) 301 NV_CFG_NAME = mss_nvi_db_max.xml 302endif 303CCFLAGS += $(DEFINES) $(INCLUDE) 304