1# This makefile fragment provides rules to build 3rd-party components for extmod modules 2 3################################################################################ 4# VFS FAT FS 5 6OOFATFS_DIR = lib/oofatfs 7 8# this sets the config file for FatFs 9CFLAGS_MOD += -DFFCONF_H=\"$(OOFATFS_DIR)/ffconf.h\" 10 11ifeq ($(MICROPY_VFS_FAT),1) 12CFLAGS_MOD += -DMICROPY_VFS_FAT=1 13SRC_MOD += $(addprefix $(OOFATFS_DIR)/,\ 14 ff.c \ 15 ffunicode.c \ 16 ) 17endif 18 19################################################################################ 20# VFS littlefs 21 22LITTLEFS_DIR = lib/littlefs 23 24ifeq ($(MICROPY_VFS_LFS1),1) 25CFLAGS_MOD += -DMICROPY_VFS_LFS1=1 26CFLAGS_MOD += -DLFS1_NO_MALLOC -DLFS1_NO_DEBUG -DLFS1_NO_WARN -DLFS1_NO_ERROR -DLFS1_NO_ASSERT 27SRC_MOD += $(addprefix $(LITTLEFS_DIR)/,\ 28 lfs1.c \ 29 lfs1_util.c \ 30 ) 31endif 32 33ifeq ($(MICROPY_VFS_LFS2),1) 34CFLAGS_MOD += -DMICROPY_VFS_LFS2=1 35CFLAGS_MOD += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT 36SRC_MOD += $(addprefix $(LITTLEFS_DIR)/,\ 37 lfs2.c \ 38 lfs2_util.c \ 39 ) 40 41$(BUILD)/$(LITTLEFS_DIR)/lfs2.o: CFLAGS += -Wno-missing-field-initializers 42endif 43 44################################################################################ 45# ussl 46 47ifeq ($(MICROPY_PY_USSL),1) 48CFLAGS_MOD += -DMICROPY_PY_USSL=1 49ifeq ($(MICROPY_SSL_AXTLS),1) 50CFLAGS_MOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP)/lib/axtls/ssl -I$(TOP)/lib/axtls/crypto -I$(TOP)/extmod/axtls-include 51AXTLS_DIR = lib/axtls 52$(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) 53SRC_MOD += $(addprefix $(AXTLS_DIR)/,\ 54 ssl/asn1.c \ 55 ssl/loader.c \ 56 ssl/tls1.c \ 57 ssl/tls1_svr.c \ 58 ssl/tls1_clnt.c \ 59 ssl/x509.c \ 60 crypto/aes.c \ 61 crypto/bigint.c \ 62 crypto/crypto_misc.c \ 63 crypto/hmac.c \ 64 crypto/md5.c \ 65 crypto/rsa.c \ 66 crypto/sha1.c \ 67 ) 68else ifeq ($(MICROPY_SSL_MBEDTLS),1) 69MBEDTLS_DIR = lib/mbedtls 70CFLAGS_MOD += -DMICROPY_SSL_MBEDTLS=1 -I$(TOP)/$(MBEDTLS_DIR)/include 71SRC_MOD += $(addprefix $(MBEDTLS_DIR)/library/,\ 72 aes.c \ 73 aesni.c \ 74 arc4.c \ 75 asn1parse.c \ 76 asn1write.c \ 77 base64.c \ 78 bignum.c \ 79 blowfish.c \ 80 camellia.c \ 81 ccm.c \ 82 certs.c \ 83 chacha20.c \ 84 chachapoly.c \ 85 cipher.c \ 86 cipher_wrap.c \ 87 cmac.c \ 88 ctr_drbg.c \ 89 debug.c \ 90 des.c \ 91 dhm.c \ 92 ecdh.c \ 93 ecdsa.c \ 94 ecjpake.c \ 95 ecp.c \ 96 ecp_curves.c \ 97 entropy.c \ 98 entropy_poll.c \ 99 error.c \ 100 gcm.c \ 101 havege.c \ 102 hmac_drbg.c \ 103 md2.c \ 104 md4.c \ 105 md5.c \ 106 md.c \ 107 md_wrap.c \ 108 oid.c \ 109 padlock.c \ 110 pem.c \ 111 pk.c \ 112 pkcs11.c \ 113 pkcs12.c \ 114 pkcs5.c \ 115 pkparse.c \ 116 pk_wrap.c \ 117 pkwrite.c \ 118 platform.c \ 119 platform_util.c \ 120 poly1305.c \ 121 ripemd160.c \ 122 rsa.c \ 123 rsa_internal.c \ 124 sha1.c \ 125 sha256.c \ 126 sha512.c \ 127 ssl_cache.c \ 128 ssl_ciphersuites.c \ 129 ssl_cli.c \ 130 ssl_cookie.c \ 131 ssl_srv.c \ 132 ssl_ticket.c \ 133 ssl_tls.c \ 134 timing.c \ 135 x509.c \ 136 x509_create.c \ 137 x509_crl.c \ 138 x509_crt.c \ 139 x509_csr.c \ 140 x509write_crt.c \ 141 x509write_csr.c \ 142 xtea.c \ 143 ) 144endif 145endif 146 147################################################################################ 148# lwip 149 150ifeq ($(MICROPY_PY_LWIP),1) 151# A port should add an include path where lwipopts.h can be found (eg extmod/lwip-include) 152LWIP_DIR = lib/lwip/src 153INC += -I$(TOP)/$(LWIP_DIR)/include 154CFLAGS_MOD += -DMICROPY_PY_LWIP=1 155$(BUILD)/$(LWIP_DIR)/core/ipv4/dhcp.o: CFLAGS_MOD += -Wno-address 156SRC_MOD += extmod/modlwip.c shared/netutils/netutils.c 157SRC_MOD += $(addprefix $(LWIP_DIR)/,\ 158 apps/mdns/mdns.c \ 159 core/def.c \ 160 core/dns.c \ 161 core/inet_chksum.c \ 162 core/init.c \ 163 core/ip.c \ 164 core/mem.c \ 165 core/memp.c \ 166 core/netif.c \ 167 core/pbuf.c \ 168 core/raw.c \ 169 core/stats.c \ 170 core/sys.c \ 171 core/tcp.c \ 172 core/tcp_in.c \ 173 core/tcp_out.c \ 174 core/timeouts.c \ 175 core/udp.c \ 176 core/ipv4/autoip.c \ 177 core/ipv4/dhcp.c \ 178 core/ipv4/etharp.c \ 179 core/ipv4/icmp.c \ 180 core/ipv4/igmp.c \ 181 core/ipv4/ip4_addr.c \ 182 core/ipv4/ip4.c \ 183 core/ipv4/ip4_frag.c \ 184 core/ipv6/dhcp6.c \ 185 core/ipv6/ethip6.c \ 186 core/ipv6/icmp6.c \ 187 core/ipv6/inet6.c \ 188 core/ipv6/ip6_addr.c \ 189 core/ipv6/ip6.c \ 190 core/ipv6/ip6_frag.c \ 191 core/ipv6/mld6.c \ 192 core/ipv6/nd6.c \ 193 netif/ethernet.c \ 194 ) 195ifeq ($(MICROPY_PY_LWIP_SLIP),1) 196CFLAGS_MOD += -DMICROPY_PY_LWIP_SLIP=1 197SRC_MOD += $(LWIP_DIR)/netif/slipif.c 198endif 199endif 200 201################################################################################ 202# btree 203 204ifeq ($(MICROPY_PY_BTREE),1) 205BTREE_DIR = lib/berkeley-db-1.xx 206BTREE_DEFS = -D__DBINTERFACE_PRIVATE=1 -Dmpool_error=printf -Dabort=abort_ "-Dvirt_fd_t=void*" $(BTREE_DEFS_EXTRA) 207INC += -I$(TOP)/$(BTREE_DIR)/PORT/include 208SRC_MOD += extmod/modbtree.c 209SRC_MOD += $(addprefix $(BTREE_DIR)/,\ 210 btree/bt_close.c \ 211 btree/bt_conv.c \ 212 btree/bt_debug.c \ 213 btree/bt_delete.c \ 214 btree/bt_get.c \ 215 btree/bt_open.c \ 216 btree/bt_overflow.c \ 217 btree/bt_page.c \ 218 btree/bt_put.c \ 219 btree/bt_search.c \ 220 btree/bt_seq.c \ 221 btree/bt_split.c \ 222 btree/bt_utils.c \ 223 mpool/mpool.c \ 224 ) 225CFLAGS_MOD += -DMICROPY_PY_BTREE=1 226# we need to suppress certain warnings to get berkeley-db to compile cleanly 227# and we have separate BTREE_DEFS so the definitions don't interfere with other source code 228$(BUILD)/$(BTREE_DIR)/%.o: CFLAGS += -Wno-old-style-definition -Wno-sign-compare -Wno-unused-parameter $(BTREE_DEFS) 229$(BUILD)/extmod/modbtree.o: CFLAGS += $(BTREE_DEFS) 230endif 231 232