1
0

SConscript 5.3 KB

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