xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.1.0/SConscript (revision 104654410c56c573564690304ae786df310c91fc)
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