• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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