1from building import * 2 3# get current directory 4cwd = GetCurrentDir() 5 6# 1. The minimum set of files needed for lwIP. 7lwipcore_SRCS = Split(""" 8src/core/init.c 9src/core/def.c 10src/core/dns.c 11src/core/inet_chksum.c 12src/core/ip.c 13src/core/memp.c 14src/core/netif.c 15src/core/pbuf.c 16src/core/raw.c 17src/core/stats.c 18src/core/sys.c 19src/core/tcp.c 20src/core/tcp_in.c 21src/core/tcp_out.c 22src/core/timeouts.c 23src/core/udp.c 24""") 25 26# 1.1 27lwipcore_altcp_SRCS = Split(""" 28src/core/altcp.c 29src/core/altcp_alloc.c 30src/core/altcp_tcp.c 31""") 32 33# 1.2 34lwipcore4_SRCS = Split(""" 35src/core/ipv4/autoip.c 36src/core/ipv4/dhcp.c 37src/core/ipv4/etharp.c 38src/core/ipv4/icmp.c 39src/core/ipv4/igmp.c 40src/core/ipv4/ip4_frag.c 41src/core/ipv4/ip4.c 42src/core/ipv4/ip4_addr.c 43""") 44 45# 1.3 46lwipcore6_SRCS = Split(""" 47src/core/ipv6/dhcp6.c 48src/core/ipv6/ethip6.c 49src/core/ipv6/icmp6.c 50src/core/ipv6/inet6.c 51src/core/ipv6/ip6.c 52src/core/ipv6/ip6_addr.c 53src/core/ipv6/ip6_frag.c 54src/core/ipv6/mld6.c 55src/core/ipv6/nd6.c 56""") 57 58# 2. APIFILES: The files which implement the sequential and socket APIs. 59lwipapi_SRCS = Split(""" 60src/api/api_lib.c 61src/api/api_msg.c 62src/api/err.c 63src/api/if_api.c 64src/api/netbuf.c 65src/api/netdb.c 66src/api/netifapi.c 67src/api/sockets.c 68src/api/tcpip.c 69""") 70 71# 3. Files implementing various generic network interface functions 72lwipnetif_SRCS = Split(""" 73src/netif/ethernet.c 74""") 75 76# 3.1 Files implementing an IEEE 802.1D bridge by using a multilayer netif approach 77lwipnetif_bridgeif_SRCS = Split(""" 78src/netif/bridgeif.c 79src/netif/bridgeif_fdb.c 80""") 81 82# 3.2 A generic implementation of the SLIP (Serial Line IP) protocol. 83lwipnetif_slipif_SRCS = Split(""" 84src/netif/slipif.c 85""") 86 87# 4. 6LoWPAN 88lwipsixlowpan_SRCS = Split(""" 89src/netif/lowpan6.c 90""") 91 92# 4.1 A 6LoWPAN over Bluetooth Low Energy (BLE) implementation as netif, 93# according to RFC-7668. 94lwipsixlowpan_ble_SRCS = Split(""" 95src/netif/lowpan6_ble.c 96""") 97 98# 4.2 Common 6LowPAN routines for IPv6. 99lwipsixlowpan_ipv6_SRCS = Split(""" 100src/netif/lowpan6_common.c 101""") 102 103# 4.3 A netif implementing the ZigBee Encapsulation Protocol (ZEP). 104lwipsixlowpan_zep_SRCS = Split(""" 105src/netif/zepif.c 106""") 107 108# 5. PPP 109lwipppp_SRCS = Split(""" 110src/netif/ppp/auth.c 111src/netif/ppp/ccp.c 112src/netif/ppp/chap-md5.c 113src/netif/ppp/chap_ms.c 114src/netif/ppp/chap-new.c 115src/netif/ppp/demand.c 116src/netif/ppp/eap.c 117src/netif/ppp/ecp.c 118src/netif/ppp/eui64.c 119src/netif/ppp/fsm.c 120src/netif/ppp/ipcp.c 121src/netif/ppp/ipv6cp.c 122src/netif/ppp/lcp.c 123src/netif/ppp/magic.c 124src/netif/ppp/mppe.c 125src/netif/ppp/multilink.c 126src/netif/ppp/ppp.c 127src/netif/ppp/pppapi.c 128src/netif/ppp/pppcrypt.c 129src/netif/ppp/pppoe.c 130src/netif/ppp/pppol2tp.c 131src/netif/ppp/pppos.c 132src/netif/ppp/upap.c 133src/netif/ppp/utils.c 134src/netif/ppp/vj.c 135src/netif/ppp/polarssl/arc4.c 136src/netif/ppp/polarssl/des.c 137src/netif/ppp/polarssl/md4.c 138src/netif/ppp/polarssl/md5.c 139src/netif/ppp/polarssl/sha1.c 140""") 141 142# 6. SNMPv3 agent 143lwipsnmp_SRCS = Split(""" 144src/apps/snmp/snmp_asn1.c 145src/apps/snmp/snmp_core.c 146src/apps/snmp/snmp_mib2.c 147src/apps/snmp/snmp_mib2_icmp.c 148src/apps/snmp/snmp_mib2_interfaces.c 149src/apps/snmp/snmp_mib2_ip.c 150src/apps/snmp/snmp_mib2_snmp.c 151src/apps/snmp/snmp_mib2_system.c 152src/apps/snmp/snmp_mib2_tcp.c 153src/apps/snmp/snmp_mib2_udp.c 154src/apps/snmp/snmp_snmpv2_framework.c 155src/apps/snmp/snmp_snmpv2_usm.c 156src/apps/snmp/snmp_msg.c 157src/apps/snmp/snmpv3.c 158src/apps/snmp/snmp_netconn.c 159src/apps/snmp/snmp_pbuf_stream.c 160src/apps/snmp/snmp_raw.c 161src/apps/snmp/snmp_scalar.c 162src/apps/snmp/snmp_table.c 163src/apps/snmp/snmp_threadsync.c 164src/apps/snmp/snmp_traps.c 165""") 166 167# 7. HTTP server + client 168lwiphttp_SRCS = Split(""" 169src/apps/http/altcp_proxyconnect.c 170src/apps/http/fs.c 171src/apps/http/http_client.c 172src/apps/http/httpd.c 173""") 174 175# 8. MAKEFSDATA HTTP server host utility 176lwipmakefsdata_SRCS = Split(""" 177src/apps/http/makefsdata/makefsdata.c 178""") 179 180# 9. IPERF server 181lwipiperf_SRCS = Split(""" 182src/apps/lwiperf/lwiperf.c 183""") 184 185# 10. SMTP client 186lwipsmtp_SRCS = Split(""" 187src/apps/smtp/smtp.c 188""") 189 190# 11. SNTP client 191lwipsntp_SRCS = Split(""" 192src/apps/sntp/sntp.c 193""") 194 195# 12. MDNS responder 196lwipmdns_SRCS = Split(""" 197src/apps/mdns/mdns.c 198""") 199 200# 13. NetBIOS name server 201lwipnetbios_SRCS = Split(""" 202src/apps/netbiosns/netbiosns.c 203""") 204 205# 14. TFTP server files 206lwiptftp_SRCS = Split(""" 207src/apps/tftp/tftp_server.c 208src/apps/tftp/tftp_port.c 209""") 210 211# 15. MQTT client files 212lwipmqtt_SRCS = Split(""" 213src/apps/mqtt/mqtt.c 214""") 215 216# 16. ARM MBEDTLS related files of lwIP rep 217lwipmbedtls_SRCS = Split(""" 218src/apps/altcp_tls/altcp_tls_mbedtls.c 219src/apps/altcp_tls/altcp_tls_mbedtls_mem.c 220src/apps/snmp/snmpv3_mbedtls.c 221""") 222 223# 17. ping 224lwipping_SRCS = Split(""" 225src/apps/ping/ping.c 226""") 227 228src = [] 229src += lwipcore_SRCS 230src += lwipcore_altcp_SRCS 231src += lwipapi_SRCS 232src += lwipnetif_SRCS 233src += lwipsixlowpan_SRCS 234 235src += lwipcore4_SRCS 236 237path = [cwd + '/src/include', 238 cwd + '/src/include/netif'] 239 240if not GetDepend('RT_USING_SAL'): 241 path += [cwd + '/src/include/compat/posix'] 242 243if GetDepend(['RT_LWIP_SNMP']): 244 src += lwipsnmp_SRCS 245 path += [cwd + '/src/apps/snmp'] 246 247if GetDepend(['RT_LWIP_PPP']): 248 src += lwipppp_SRCS 249 path += [cwd + '/src/netif/ppp'] 250 251if GetDepend(['RT_USING_LWIP_IPV6']): 252 src += lwipcore6_SRCS 253 254if GetDepend(['RT_LWIP_USING_PING']): 255 src += lwipping_SRCS 256 257group = DefineGroup('lwIP', src, depend = ['RT_USING_LWIP', 'RT_USING_LWIP212'], CPPPATH = path) 258 259Return('group') 260