269 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			269 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from building import *
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# get current directory
							 | 
						||
| 
								 | 
							
								cwd = GetCurrentDir()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 1. The minimum set of files needed for lwIP.
							 | 
						||
| 
								 | 
							
								lwipcore_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/core/init.c
							 | 
						||
| 
								 | 
							
								src/core/def.c
							 | 
						||
| 
								 | 
							
								src/core/dns.c
							 | 
						||
| 
								 | 
							
								src/core/inet_chksum.c
							 | 
						||
| 
								 | 
							
								src/core/ip.c
							 | 
						||
| 
								 | 
							
								src/core/memp.c
							 | 
						||
| 
								 | 
							
								src/core/netif.c
							 | 
						||
| 
								 | 
							
								src/core/pbuf.c
							 | 
						||
| 
								 | 
							
								src/core/raw.c
							 | 
						||
| 
								 | 
							
								src/core/stats.c
							 | 
						||
| 
								 | 
							
								src/core/sys.c
							 | 
						||
| 
								 | 
							
								src/core/tcp.c
							 | 
						||
| 
								 | 
							
								src/core/tcp_in.c
							 | 
						||
| 
								 | 
							
								src/core/tcp_out.c
							 | 
						||
| 
								 | 
							
								src/core/timeouts.c
							 | 
						||
| 
								 | 
							
								src/core/udp.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 1.1 
							 | 
						||
| 
								 | 
							
								lwipcore_altcp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/core/altcp.c
							 | 
						||
| 
								 | 
							
								src/core/altcp_alloc.c
							 | 
						||
| 
								 | 
							
								src/core/altcp_tcp.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 1.2 
							 | 
						||
| 
								 | 
							
								lwipcore4_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/core/ipv4/autoip.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/dhcp.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/etharp.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/icmp.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/igmp.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/ip4_frag.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/ip4.c
							 | 
						||
| 
								 | 
							
								src/core/ipv4/ip4_addr.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 1.3 
							 | 
						||
| 
								 | 
							
								lwipcore6_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/core/ipv6/dhcp6.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/ethip6.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/icmp6.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/inet6.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/ip6.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/ip6_addr.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/ip6_frag.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/mld6.c
							 | 
						||
| 
								 | 
							
								src/core/ipv6/nd6.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 2. APIFILES: The files which implement the sequential and socket APIs.
							 | 
						||
| 
								 | 
							
								lwipapi_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/api/api_lib.c
							 | 
						||
| 
								 | 
							
								src/api/api_msg.c
							 | 
						||
| 
								 | 
							
								src/api/err.c
							 | 
						||
| 
								 | 
							
								src/api/if_api.c
							 | 
						||
| 
								 | 
							
								src/api/netbuf.c
							 | 
						||
| 
								 | 
							
								src/api/netdb.c
							 | 
						||
| 
								 | 
							
								src/api/netifapi.c
							 | 
						||
| 
								 | 
							
								src/api/sockets.c
							 | 
						||
| 
								 | 
							
								src/api/tcpip.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 3. Files implementing various generic network interface functions
							 | 
						||
| 
								 | 
							
								lwipnetif_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/ethernet.c
							 | 
						||
| 
								 | 
							
								src/netif/ethernetif.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 3.1 Files implementing an IEEE 802.1D bridge by using a multilayer netif approach
							 | 
						||
| 
								 | 
							
								lwipnetif_bridgeif_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/bridgeif.c
							 | 
						||
| 
								 | 
							
								src/netif/bridgeif_fdb.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 3.2 A generic implementation of the SLIP (Serial Line IP) protocol.
							 | 
						||
| 
								 | 
							
								lwipnetif_slipif_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/slipif.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 4. 6LoWPAN
							 | 
						||
| 
								 | 
							
								lwipsixlowpan_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/lowpan6.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 4.1 A 6LoWPAN over Bluetooth Low Energy (BLE) implementation as netif,
							 | 
						||
| 
								 | 
							
								#           according to RFC-7668.
							 | 
						||
| 
								 | 
							
								lwipsixlowpan_ble_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/lowpan6_ble.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 4.2 Common 6LowPAN routines for IPv6.
							 | 
						||
| 
								 | 
							
								lwipsixlowpan_ipv6_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/lowpan6_common.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 4.3 A netif implementing the ZigBee Encapsulation Protocol (ZEP).
							 | 
						||
| 
								 | 
							
								lwipsixlowpan_zep_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/zepif.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 5. PPP
							 | 
						||
| 
								 | 
							
								lwipppp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/netif/ppp/auth.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/ccp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/chap-md5.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/chap_ms.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/chap-new.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/demand.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/eap.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/ecp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/eui64.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/fsm.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/ipcp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/ipv6cp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/lcp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/magic.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/mppe.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/multilink.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/ppp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/pppapi.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/pppcrypt.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/pppoe.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/pppol2tp.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/pppos.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/upap.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/utils.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/vj.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/polarssl/arc4.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/polarssl/des.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/polarssl/md4.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/polarssl/md5.c
							 | 
						||
| 
								 | 
							
								src/netif/ppp/polarssl/sha1.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 6. SNMPv3 agent
							 | 
						||
| 
								 | 
							
								lwipsnmp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_asn1.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_core.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_icmp.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_interfaces.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_ip.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_snmp.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_system.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_tcp.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_mib2_udp.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_snmpv2_framework.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_snmpv2_usm.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_msg.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmpv3.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_netconn.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_pbuf_stream.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_raw.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_scalar.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_table.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_threadsync.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmp_traps.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 7. HTTP server + client
							 | 
						||
| 
								 | 
							
								lwiphttp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/http/altcp_proxyconnect.c
							 | 
						||
| 
								 | 
							
								src/apps/http/fs.c
							 | 
						||
| 
								 | 
							
								src/apps/http/http_client.c
							 | 
						||
| 
								 | 
							
								src/apps/http/httpd.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 8. MAKEFSDATA HTTP server host utility
							 | 
						||
| 
								 | 
							
								lwipmakefsdata_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/http/makefsdata/makefsdata.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 9. IPERF server
							 | 
						||
| 
								 | 
							
								lwipiperf_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/lwiperf/lwiperf.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 10. SMTP client
							 | 
						||
| 
								 | 
							
								lwipsmtp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/smtp/smtp.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 11. SNTP client
							 | 
						||
| 
								 | 
							
								lwipsntp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/sntp/sntp.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 12. MDNS responder
							 | 
						||
| 
								 | 
							
								lwipmdns_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/mdns/mdns.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 13. NetBIOS name server
							 | 
						||
| 
								 | 
							
								lwipnetbios_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/netbiosns/netbiosns.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 14. TFTP server files
							 | 
						||
| 
								 | 
							
								lwiptftp_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/tftp/tftp_server.c
							 | 
						||
| 
								 | 
							
								src/apps/tftp/tftp_port.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 15. MQTT client files
							 | 
						||
| 
								 | 
							
								lwipmqtt_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/mqtt/mqtt.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 16. ARM MBEDTLS related files of lwIP rep
							 | 
						||
| 
								 | 
							
								lwipmbedtls_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/altcp_tls/altcp_tls_mbedtls.c
							 | 
						||
| 
								 | 
							
								src/apps/altcp_tls/altcp_tls_mbedtls_mem.c
							 | 
						||
| 
								 | 
							
								src/apps/snmp/snmpv3_mbedtls.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 17. ping
							 | 
						||
| 
								 | 
							
								lwipping_SRCS = Split("""
							 | 
						||
| 
								 | 
							
								src/apps/ping/ping.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								src = Split("""
							 | 
						||
| 
								 | 
							
								src/arch/sys_arch.c
							 | 
						||
| 
								 | 
							
								""")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								src += lwipcore_SRCS       # rm mem.c
							 | 
						||
| 
								 | 
							
								src += lwipcore_altcp_SRCS
							 | 
						||
| 
								 | 
							
								src += lwipapi_SRCS
							 | 
						||
| 
								 | 
							
								src += lwipnetif_SRCS
							 | 
						||
| 
								 | 
							
								src += lwipsixlowpan_SRCS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								src += lwipcore4_SRCS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								path = [cwd + '/src',
							 | 
						||
| 
								 | 
							
								    cwd + '/src/include',
							 | 
						||
| 
								 | 
							
								    cwd + '/src/arch/include',
							 | 
						||
| 
								 | 
							
								    cwd + '/src/include/netif']
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if not GetDepend('RT_USING_SAL'):
							 | 
						||
| 
								 | 
							
								    path += [cwd + '/src/include/compat/posix']
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if GetDepend(['RT_LWIP_SNMP']):
							 | 
						||
| 
								 | 
							
								    src += lwipsnmp_SRCS
							 | 
						||
| 
								 | 
							
								    path += [cwd + '/src/apps/snmp']
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if GetDepend(['RT_LWIP_PPP']):
							 | 
						||
| 
								 | 
							
								    src += lwipppp_SRCS
							 | 
						||
| 
								 | 
							
								    path += [cwd + '/src/netif/ppp']
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if GetDepend(['RT_USING_LWIP_IPV6']):
							 | 
						||
| 
								 | 
							
								    src += lwipcore6_SRCS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if GetDepend(['RT_USING_NETUTILS']):
							 | 
						||
| 
								 | 
							
								    if GetDepend(['RT_NETUTILS_USING_TFTP']):
							 | 
						||
| 
								 | 
							
								        src += lwiptftp_SRCS
							 | 
						||
| 
								 | 
							
								    if GetDepend(['RT_NETUTILS_USING_PING']):
							 | 
						||
| 
								 | 
							
								        src += lwipping_SRCS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								group = DefineGroup('lwIP', src, depend = ['RT_USING_LWIP', 'RT_USING_LWIP210'], CPPPATH = path)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Return('group')
							 |