1
1
# This makefile fragment adds the source code files for the core extmod modules
2
2
# and provides rules to build 3rd-party components for extmod modules.
3
3
4
- PY_EXTMOD_O_BASENAME = \
5
- extmod/moduasyncio.o \
6
- extmod/moductypes.o \
7
- extmod/modujson.o \
8
- extmod/moduos.o \
9
- extmod/modure.o \
10
- extmod/moduzlib.o \
11
- extmod/moduheapq.o \
12
- extmod/modutimeq.o \
13
- extmod/moduhashlib.o \
14
- extmod/moducryptolib.o \
15
- extmod/modubinascii.o \
16
- extmod/virtpin.o \
17
- extmod/machine_bitstream.o \
18
- extmod/machine_mem.o \
19
- extmod/machine_pinbase.o \
20
- extmod/machine_signal.o \
21
- extmod/machine_pulse.o \
22
- extmod/machine_pwm.o \
23
- extmod/machine_i2c.o \
24
- extmod/machine_spi.o \
25
- extmod/modbluetooth.o \
26
- extmod/modlwip.o \
27
- extmod/modussl_axtls.o \
28
- extmod/modussl_mbedtls.o \
29
- extmod/moduplatform.o\
30
- extmod/modurandom.o \
31
- extmod/moduselect.o \
32
- extmod/moduwebsocket.o \
33
- extmod/modwebrepl.o \
34
- extmod/modframebuf.o \
35
- extmod/vfs.o \
36
- extmod/vfs_blockdev.o \
37
- extmod/vfs_reader.o \
38
- extmod/vfs_posix.o \
39
- extmod/vfs_posix_file.o \
40
- extmod/vfs_fat.o \
41
- extmod/vfs_fat_diskio.o \
42
- extmod/vfs_fat_file.o \
43
- extmod/vfs_lfs.o \
44
- extmod/utime_mphal.o \
45
- extmod/uos_dupterm.o \
46
- shared/libc/abort_.o \
47
- shared/libc/printf.o \
4
+ SRC_EXTMOD_C += \
5
+ extmod/machine_bitstream.c \
6
+ extmod/machine_i2c.c \
7
+ extmod/machine_mem.c \
8
+ extmod/machine_pinbase.c \
9
+ extmod/machine_pulse.c \
10
+ extmod/machine_pwm.c \
11
+ extmod/machine_signal.c \
12
+ extmod/machine_spi.c \
13
+ extmod/modbluetooth.c \
14
+ extmod/modbtree.c \
15
+ extmod/modframebuf.c \
16
+ extmod/modlwip.c \
17
+ extmod/modnetwork.c \
18
+ extmod/modonewire.c \
19
+ extmod/moduasyncio.c \
20
+ extmod/modubinascii.c \
21
+ extmod/moducryptolib.c \
22
+ extmod/moductypes.c \
23
+ extmod/moduhashlib.c \
24
+ extmod/moduheapq.c \
25
+ extmod/modujson.c \
26
+ extmod/moduos.c \
27
+ extmod/moduplatform.c\
28
+ extmod/modurandom.c \
29
+ extmod/modure.c \
30
+ extmod/moduselect.c \
31
+ extmod/modusocket.c \
32
+ extmod/modussl_axtls.c \
33
+ extmod/modussl_mbedtls.c \
34
+ extmod/modutimeq.c \
35
+ extmod/moduwebsocket.c \
36
+ extmod/moduzlib.c \
37
+ extmod/modwebrepl.c \
38
+ extmod/network_cyw43.c \
39
+ extmod/network_ninaw10.c \
40
+ extmod/network_wiznet5k.c \
41
+ extmod/uos_dupterm.c \
42
+ extmod/utime_mphal.c \
43
+ extmod/vfs.c \
44
+ extmod/vfs_blockdev.c \
45
+ extmod/vfs_fat.c \
46
+ extmod/vfs_fat_diskio.c \
47
+ extmod/vfs_fat_file.c \
48
+ extmod/vfs_lfs.c \
49
+ extmod/vfs_posix.c \
50
+ extmod/vfs_posix_file.c \
51
+ extmod/vfs_reader.c \
52
+ extmod/virtpin.c \
53
+ shared/libc/abort_.c \
54
+ shared/libc/printf.c \
48
55
49
- PY_EXTMOD_O = $( addprefix $( BUILD ) /, $( PY_EXTMOD_O_BASENAME ) )
56
+ SRC_THIRDPARTY_C += \
50
57
51
- PY_O += $(PY_EXTMOD_O )
52
- SRC_QSTR += $(PY_EXTMOD_O_BASENAME:.o=.c )
58
+ PY_O += $(addprefix $(BUILD ) /, $(SRC_EXTMOD_C:.c=.o ) )
59
+ PY_O += $(addprefix $(BUILD ) /, $(SRC_THIRDPARTY_C:.c=.o ) )
60
+ SRC_QSTR += $(SRC_EXTMOD_C )
61
+
62
+ CFLAGS += $(CFLAGS_EXTMOD ) $(CFLAGS_THIRDPARTY )
63
+ LDFLAGS += $(LDFLAGS_EXTMOD ) $(LDFLAGS_THIRDPARTY )
53
64
54
65
# ###############################################################################
55
66
# VFS FAT FS
56
67
57
68
OOFATFS_DIR = lib/oofatfs
58
69
59
70
# this sets the config file for FatFs
60
- CFLAGS_MOD += -DFFCONF_H=\"$(OOFATFS_DIR ) /ffconf.h\"
71
+ CFLAGS_THIRDPARTY += -DFFCONF_H=\"$(OOFATFS_DIR ) /ffconf.h\"
61
72
62
73
ifeq ($(MICROPY_VFS_FAT ) ,1)
63
- CFLAGS_MOD += -DMICROPY_VFS_FAT=1
64
- SRC_MOD += $(addprefix $(OOFATFS_DIR ) /,\
74
+ CFLAGS_EXTMOD += -DMICROPY_VFS_FAT=1
75
+ SRC_THIRDPARTY_C += $(addprefix $(OOFATFS_DIR ) /,\
65
76
ff.c \
66
77
ffunicode.c \
67
78
)
@@ -73,18 +84,18 @@ endif
73
84
LITTLEFS_DIR = lib/littlefs
74
85
75
86
ifeq ($(MICROPY_VFS_LFS1 ) ,1)
76
- CFLAGS_MOD += -DMICROPY_VFS_LFS1=1
77
- CFLAGS_MOD += -DLFS1_NO_MALLOC -DLFS1_NO_DEBUG -DLFS1_NO_WARN -DLFS1_NO_ERROR -DLFS1_NO_ASSERT
78
- SRC_MOD += $(addprefix $(LITTLEFS_DIR ) /,\
87
+ CFLAGS_EXTMOD += -DMICROPY_VFS_LFS1=1
88
+ CFLAGS_THIRDPARTY += -DLFS1_NO_MALLOC -DLFS1_NO_DEBUG -DLFS1_NO_WARN -DLFS1_NO_ERROR -DLFS1_NO_ASSERT
89
+ SRC_THIRDPARTY_C += $(addprefix $(LITTLEFS_DIR ) /,\
79
90
lfs1.c \
80
91
lfs1_util.c \
81
92
)
82
93
endif
83
94
84
95
ifeq ($(MICROPY_VFS_LFS2 ) ,1)
85
- CFLAGS_MOD += -DMICROPY_VFS_LFS2=1
86
- CFLAGS_MOD += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT
87
- SRC_MOD += $(addprefix $(LITTLEFS_DIR ) /,\
96
+ CFLAGS_EXTMOD += -DMICROPY_VFS_LFS2=1
97
+ CFLAGS_THIRDPARTY += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT
98
+ SRC_THIRDPARTY_C += $(addprefix $(LITTLEFS_DIR ) /,\
88
99
lfs2.c \
89
100
lfs2_util.c \
90
101
)
@@ -96,13 +107,13 @@ endif
96
107
# ussl
97
108
98
109
ifeq ($(MICROPY_PY_USSL ) ,1)
99
- CFLAGS_MOD += -DMICROPY_PY_USSL=1
110
+ CFLAGS_EXTMOD += -DMICROPY_PY_USSL=1
100
111
ifeq ($(MICROPY_SSL_AXTLS ) ,1)
101
- CFLAGS_MOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP ) /lib/axtls/ssl -I$(TOP ) /lib/axtls/crypto -I$(TOP ) /extmod/axtls-include
102
112
AXTLS_DIR = lib/axtls
103
113
GIT_SUBMODULES += $(AXTLS_DIR )
114
+ CFLAGS_EXTMOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP ) /lib/axtls/ssl -I$(TOP ) /lib/axtls/crypto -I$(TOP ) /extmod/axtls-include
104
115
$(BUILD ) /$(AXTLS_DIR ) /% .o : CFLAGS += -Wno-all -Wno-unused-parameter -Wno-uninitialized -Wno-sign-compare -Wno-old-style-definition -Dmp_stream_errno=errno $(AXTLS_DEFS_EXTRA )
105
- SRC_MOD += $(addprefix $(AXTLS_DIR ) /,\
116
+ SRC_THIRDPARTY_C += $(addprefix $(AXTLS_DIR ) /,\
106
117
ssl/asn1.c \
107
118
ssl/loader.c \
108
119
ssl/tls1.c \
@@ -120,8 +131,9 @@ SRC_MOD += $(addprefix $(AXTLS_DIR)/,\
120
131
else ifeq ($(MICROPY_SSL_MBEDTLS),1)
121
132
MBEDTLS_DIR = lib/mbedtls
122
133
GIT_SUBMODULES += $(MBEDTLS_DIR )
123
- SRC_MOD += lib/mbedtls_errors/mp_mbedtls_errors.c
124
- SRC_MOD += $(addprefix $(MBEDTLS_DIR ) /library/,\
134
+ CFLAGS_EXTMOD += -DMICROPY_SSL_MBEDTLS=1 -I$(TOP ) /$(MBEDTLS_DIR ) /include
135
+ SRC_THIRDPARTY_C += lib/mbedtls_errors/mp_mbedtls_errors.c
136
+ SRC_THIRDPARTY_C += $(addprefix $(MBEDTLS_DIR ) /library/,\
125
137
aes.c \
126
138
aesni.c \
127
139
arc4.c \
@@ -204,10 +216,10 @@ GIT_SUBMODULES += lib/lwip
204
216
# A port should add an include path where lwipopts.h can be found (eg extmod/lwip-include)
205
217
LWIP_DIR = lib/lwip/src
206
218
INC += -I$(TOP ) /$(LWIP_DIR ) /include
207
- CFLAGS_MOD += -DMICROPY_PY_LWIP=1
208
- $(BUILD ) /$(LWIP_DIR ) /core/ipv4/dhcp.o : CFLAGS_MOD += -Wno-address
209
- SRC_MOD += shared/netutils/netutils.c
210
- SRC_MOD += $(addprefix $(LWIP_DIR ) /,\
219
+ CFLAGS_EXTMOD += -DMICROPY_PY_LWIP=1
220
+ $(BUILD ) /$(LWIP_DIR ) /core/ipv4/dhcp.o : CFLAGS += -Wno-address
221
+ SRC_THIRDPARTY_C += shared/netutils/netutils.c
222
+ SRC_THIRDPARTY_C += $(addprefix $(LWIP_DIR ) /,\
211
223
apps/mdns/mdns.c \
212
224
core/def.c \
213
225
core/dns.c \
@@ -246,8 +258,8 @@ SRC_MOD += $(addprefix $(LWIP_DIR)/,\
246
258
netif/ethernet.c \
247
259
)
248
260
ifeq ($(MICROPY_PY_LWIP_SLIP ) ,1)
249
- CFLAGS_MOD += -DMICROPY_PY_LWIP_SLIP=1
250
- SRC_MOD += $(LWIP_DIR ) /netif/slipif.c
261
+ CFLAGS_EXTMOD += -DMICROPY_PY_LWIP_SLIP=1
262
+ SRC_THIRDPARTY_C += $(LWIP_DIR ) /netif/slipif.c
251
263
endif
252
264
endif
253
265
@@ -258,8 +270,7 @@ ifeq ($(MICROPY_PY_BTREE),1)
258
270
BTREE_DIR = lib/berkeley-db-1.xx
259
271
BTREE_DEFS = -D__DBINTERFACE_PRIVATE=1 -Dmpool_error=printf -Dabort=abort_ "-Dvirt_fd_t=void*" $(BTREE_DEFS_EXTRA )
260
272
INC += -I$(TOP ) /$(BTREE_DIR ) /PORT/include
261
- SRC_MOD += extmod/modbtree.c
262
- SRC_MOD += $(addprefix $(BTREE_DIR ) /,\
273
+ SRC_THIRDPARTY_C += $(addprefix $(BTREE_DIR ) /,\
263
274
btree/bt_close.c \
264
275
btree/bt_conv.c \
265
276
btree/bt_debug.c \
@@ -275,10 +286,67 @@ SRC_MOD += $(addprefix $(BTREE_DIR)/,\
275
286
btree/bt_utils.c \
276
287
mpool/mpool.c \
277
288
)
278
- CFLAGS_MOD += -DMICROPY_PY_BTREE=1
289
+ CFLAGS_EXTMOD += -DMICROPY_PY_BTREE=1
279
290
# we need to suppress certain warnings to get berkeley-db to compile cleanly
280
291
# and we have separate BTREE_DEFS so the definitions don't interfere with other source code
281
292
$(BUILD ) /$(BTREE_DIR ) /% .o : CFLAGS += -Wno-old-style-definition -Wno-sign-compare -Wno-unused-parameter $(BTREE_DEFS )
282
293
$(BUILD ) /extmod/modbtree.o : CFLAGS += $(BTREE_DEFS )
283
294
endif
284
295
296
+ # ###############################################################################
297
+ # networking
298
+
299
+ ifeq ($(MICROPY_PY_NETWORK_CYW43 ) ,1)
300
+ CFLAGS_EXTMOD += -DMICROPY_PY_NETWORK_CYW43=1
301
+ DRIVERS_SRC_C += drivers/cyw43/cyw43_ctrl.c drivers/cyw43/cyw43_lwip.c
302
+ LIBS += $(TOP ) /drivers/cyw43/libcyw43.a
303
+ endif
304
+
305
+ ifneq ($(MICROPY_PY_NETWORK_WIZNET5K ) ,)
306
+ ifneq ($(MICROPY_PY_NETWORK_WIZNET5K ) ,0)
307
+ WIZNET5K_DIR =lib/wiznet5k
308
+ GIT_SUBMODULES += lib/wiznet5k
309
+ INC += -I$(TOP ) /$(WIZNET5K_DIR ) -I$(TOP ) /$(WIZNET5K_DIR ) /Ethernet
310
+ CFLAGS += -DMICROPY_PY_NETWORK_WIZNET5K=$(MICROPY_PY_NETWORK_WIZNET5K ) -D_WIZCHIP_=$(MICROPY_PY_NETWORK_WIZNET5K )
311
+ CFLAGS_THIRDPARTY += -DWIZCHIP_PREFIXED_EXPORTS=1
312
+ ifeq ($(MICROPY_PY_LWIP ) ,1)
313
+ # When using MACRAW mode (with lwIP), maximum buffer space must be used for the raw socket
314
+ CFLAGS_THIRDPARTY += -DWIZCHIP_USE_MAX_BUFFER
315
+ endif
316
+ SRC_THIRDPARTY_C += $(addprefix $(WIZNET5K_DIR ) /,\
317
+ Ethernet/W$(MICROPY_PY_NETWORK_WIZNET5K ) /w$(MICROPY_PY_NETWORK_WIZNET5K ) .c \
318
+ Ethernet/wizchip_conf.c \
319
+ Ethernet/socket.c \
320
+ Internet/DNS/dns.c \
321
+ Internet/DHCP/dhcp.c \
322
+ )
323
+ endif
324
+ endif
325
+
326
+ # ###############################################################################
327
+ # bluetooth
328
+
329
+ ifeq ($(MICROPY_PY_BLUETOOTH ) ,1)
330
+ CFLAGS_EXTMOD += -DMICROPY_PY_BLUETOOTH=1
331
+
332
+ ifeq ($(MICROPY_BLUETOOTH_NIMBLE ) ,1)
333
+ ifeq ($(MICROPY_BLUETOOTH_BTSTACK ) ,1)
334
+ $(error Cannot enable both NimBLE and BTstack at the same time)
335
+ endif
336
+ endif
337
+
338
+ ifneq ($(MICROPY_BLUETOOTH_NIMBLE ) ,1)
339
+ ifneq ($(MICROPY_BLUETOOTH_BTSTACK ) ,1)
340
+ $(error Must enable one of MICROPY_BLUETOOTH_NIMBLE or MICROPY_BLUETOOTH_BTSTACK)
341
+ endif
342
+ endif
343
+
344
+ ifeq ($(MICROPY_BLUETOOTH_NIMBLE ) ,1)
345
+ include $(TOP ) /extmod/nimble/nimble.mk
346
+ endif
347
+
348
+ ifeq ($(MICROPY_BLUETOOTH_BTSTACK ) ,1)
349
+ include $(TOP ) /extmod/btstack/btstack.mk
350
+ endif
351
+
352
+ endif
0 commit comments