xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.1.0/SConscript (revision 104654410c56c573564690304ae786df310c91fc)
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
74src/netif/ethernetif.c
75""")
76
77# 3.1 Files implementing an IEEE 802.1D bridge by using a multilayer netif approach
78lwipnetif_bridgeif_SRCS = Split("""
79src/netif/bridgeif.c
80src/netif/bridgeif_fdb.c
81""")
82
83# 3.2 A generic implementation of the SLIP (Serial Line IP) protocol.
84lwipnetif_slipif_SRCS = Split("""
85src/netif/slipif.c
86""")
87
88# 4. 6LoWPAN
89lwipsixlowpan_SRCS = Split("""
90src/netif/lowpan6.c
91""")
92
93# 4.1 A 6LoWPAN over Bluetooth Low Energy (BLE) implementation as netif,
94#           according to RFC-7668.
95lwipsixlowpan_ble_SRCS = Split("""
96src/netif/lowpan6_ble.c
97""")
98
99# 4.2 Common 6LowPAN routines for IPv6.
100lwipsixlowpan_ipv6_SRCS = Split("""
101src/netif/lowpan6_common.c
102""")
103
104# 4.3 A netif implementing the ZigBee Encapsulation Protocol (ZEP).
105lwipsixlowpan_zep_SRCS = Split("""
106src/netif/zepif.c
107""")
108
109# 5. PPP
110lwipppp_SRCS = Split("""
111src/netif/ppp/auth.c
112src/netif/ppp/ccp.c
113src/netif/ppp/chap-md5.c
114src/netif/ppp/chap_ms.c
115src/netif/ppp/chap-new.c
116src/netif/ppp/demand.c
117src/netif/ppp/eap.c
118src/netif/ppp/ecp.c
119src/netif/ppp/eui64.c
120src/netif/ppp/fsm.c
121src/netif/ppp/ipcp.c
122src/netif/ppp/ipv6cp.c
123src/netif/ppp/lcp.c
124src/netif/ppp/magic.c
125src/netif/ppp/mppe.c
126src/netif/ppp/multilink.c
127src/netif/ppp/ppp.c
128src/netif/ppp/pppapi.c
129src/netif/ppp/pppcrypt.c
130src/netif/ppp/pppoe.c
131src/netif/ppp/pppol2tp.c
132src/netif/ppp/pppos.c
133src/netif/ppp/upap.c
134src/netif/ppp/utils.c
135src/netif/ppp/vj.c
136src/netif/ppp/polarssl/arc4.c
137src/netif/ppp/polarssl/des.c
138src/netif/ppp/polarssl/md4.c
139src/netif/ppp/polarssl/md5.c
140src/netif/ppp/polarssl/sha1.c
141""")
142
143# 6. SNMPv3 agent
144lwipsnmp_SRCS = Split("""
145src/apps/snmp/snmp_asn1.c
146src/apps/snmp/snmp_core.c
147src/apps/snmp/snmp_mib2.c
148src/apps/snmp/snmp_mib2_icmp.c
149src/apps/snmp/snmp_mib2_interfaces.c
150src/apps/snmp/snmp_mib2_ip.c
151src/apps/snmp/snmp_mib2_snmp.c
152src/apps/snmp/snmp_mib2_system.c
153src/apps/snmp/snmp_mib2_tcp.c
154src/apps/snmp/snmp_mib2_udp.c
155src/apps/snmp/snmp_snmpv2_framework.c
156src/apps/snmp/snmp_snmpv2_usm.c
157src/apps/snmp/snmp_msg.c
158src/apps/snmp/snmpv3.c
159src/apps/snmp/snmp_netconn.c
160src/apps/snmp/snmp_pbuf_stream.c
161src/apps/snmp/snmp_raw.c
162src/apps/snmp/snmp_scalar.c
163src/apps/snmp/snmp_table.c
164src/apps/snmp/snmp_threadsync.c
165src/apps/snmp/snmp_traps.c
166""")
167
168# 7. HTTP server + client
169lwiphttp_SRCS = Split("""
170src/apps/http/altcp_proxyconnect.c
171src/apps/http/fs.c
172src/apps/http/http_client.c
173src/apps/http/httpd.c
174""")
175
176# 8. MAKEFSDATA HTTP server host utility
177lwipmakefsdata_SRCS = Split("""
178src/apps/http/makefsdata/makefsdata.c
179""")
180
181# 9. IPERF server
182lwipiperf_SRCS = Split("""
183src/apps/lwiperf/lwiperf.c
184""")
185
186# 10. SMTP client
187lwipsmtp_SRCS = Split("""
188src/apps/smtp/smtp.c
189""")
190
191# 11. SNTP client
192lwipsntp_SRCS = Split("""
193src/apps/sntp/sntp.c
194""")
195
196# 12. MDNS responder
197lwipmdns_SRCS = Split("""
198src/apps/mdns/mdns.c
199""")
200
201# 13. NetBIOS name server
202lwipnetbios_SRCS = Split("""
203src/apps/netbiosns/netbiosns.c
204""")
205
206# 14. TFTP server files
207lwiptftp_SRCS = Split("""
208src/apps/tftp/tftp_server.c
209src/apps/tftp/tftp_port.c
210""")
211
212# 15. MQTT client files
213lwipmqtt_SRCS = Split("""
214src/apps/mqtt/mqtt.c
215""")
216
217# 16. ARM MBEDTLS related files of lwIP rep
218lwipmbedtls_SRCS = Split("""
219src/apps/altcp_tls/altcp_tls_mbedtls.c
220src/apps/altcp_tls/altcp_tls_mbedtls_mem.c
221src/apps/snmp/snmpv3_mbedtls.c
222""")
223
224# 17. ping
225lwipping_SRCS = Split("""
226src/apps/ping/ping.c
227""")
228
229src = Split("""
230src/arch/sys_arch.c
231""")
232
233src += lwipcore_SRCS       # rm mem.c
234src += lwipcore_altcp_SRCS
235src += lwipapi_SRCS
236src += lwipnetif_SRCS
237src += lwipsixlowpan_SRCS
238
239src += lwipcore4_SRCS
240
241path = [cwd + '/src',
242    cwd + '/src/include',
243    cwd + '/src/arch/include',
244    cwd + '/src/include/netif']
245
246if not GetDepend('RT_USING_SAL'):
247    path += [cwd + '/src/include/compat/posix']
248
249if GetDepend(['RT_LWIP_SNMP']):
250    src += lwipsnmp_SRCS
251    path += [cwd + '/src/apps/snmp']
252
253if GetDepend(['RT_LWIP_PPP']):
254    src += lwipppp_SRCS
255    path += [cwd + '/src/netif/ppp']
256
257if GetDepend(['RT_USING_LWIP_IPV6']):
258    src += lwipcore6_SRCS
259
260if GetDepend(['RT_USING_NETUTILS']):
261    if GetDepend(['RT_NETUTILS_USING_TFTP']):
262        src += lwiptftp_SRCS
263    if GetDepend(['RT_NETUTILS_USING_PING']):
264        src += lwipping_SRCS
265
266group = DefineGroup('lwIP', src, depend = ['RT_USING_LWIP', 'RT_USING_LWIP210'], CPPPATH = path)
267
268Return('group')
269