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