diff options
Diffstat (limited to 'lwip.py')
-rw-r--r-- | lwip.py | 77 |
1 files changed, 60 insertions, 17 deletions
@@ -29,11 +29,13 @@ from rtems_waf import rtems import yaml import os -source_files = [] -driver_source = [] -include_files = {} def build(bld): + source_files = [] + common_includes = './lwip/src/include ./uLan/ports/os/rtems ./rtemslwip/include ' + driver_source = [] + drv_incl = ' ' + arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION, bld.env.RTEMS_ARCH_BSP) with open('file-import.yaml', 'r') as cf: @@ -41,11 +43,11 @@ def build(bld): for f in files['files-to-import']: if f[-2:] == '.c': source_files.append(os.path.join('./lwip', f)) - - for f in os.listdir('./uLan/ports/driver/tms570_emac'): - if f[-2:] == '.c': - driver_source.append(os.path.join('./uLan/ports/driver/tms570_emac', f)) + source_files.append('./uLan/ports/os/rtems/arch/sys_arch.c') + source_files.append('./rtemslwip/common/syslog.c') + source_files.append('./rtemslwip/common/rtems_lwip_io.c') + source_files.append('./rtemslwip/common/rtems_lwip_sysdefs.c') #source_files.append('./lwip/ports/port/sys_arch.c') #source_files.append('./lwip/ports/port/perf.c') @@ -54,24 +56,65 @@ def build(bld): #source_files.append('./lwip/ports/port/netif/pcapif.c') #source_files.append('./lwip/ports/port/netif/sio.c') #source_files.append('./lwip/ports/port/netif/tapif.c') + + def walk_sources(path): + sources = [] + for root, dirs, files in os.walk(path): + for name in files: + ext = os.path.splitext(name)[1] + src_root = os.path.split(root) + path = os.path.join(src_root[0], src_root[1]) + if ext == '.c' or ext == '.S': + sources.append(os.path.join(path, name)) + return sources + + # These files will not compile for BSPs other than TMS570 + if bld.env.RTEMS_ARCH_BSP.startswith('arm-rtems6-tms570ls3137_hdk'): + drv_incl += './uLan/ports/driver/tms570_emac ./uLan/ports/os ' + driver_source.extend(walk_sources('./uLan/ports/driver/tms570_emac')) + + # These files will only compile for BeagleBone BSPs + if bld.env.RTEMS_ARCH_BSP.startswith('arm-rtems6-beaglebone'): + driver_source.extend(walk_sources('./rtemslwip/beaglebone')) + drv_incl += './rtemslwip/beaglebone ./cpsw/src/include ' + driver_source.extend(walk_sources('./cpsw/src')) bld(features ='c', target='lwip_obj', - includes='./include ./lwip/src/include ./uLan/ports/os ./uLan/ports/driver/tms570_emac ./uLan/ports/os/rtems', + cflags='-g -Wall -O0', + includes=drv_incl + common_includes, source=source_files, ) -# bld(features ='c', -# target='lwip_drv_obj', -# includes='./ ../ ../../src/include ./include ./lwip/src/include ./lwip/ports/os/rtems ./lwip/ports/os ./lwip/ports/drivers ' + os.path.relpath(os.path.join(arch_lib_path,'include')), -# source=driver_source, -# ) + + bld(features ='c', + target='driver_obj', + cflags='-g -Wall -O0', + includes=drv_incl + common_includes + os.path.relpath(os.path.join(bld.env.PREFIX, arch_lib_path,'include')) , + source=driver_source, + ) bld(features='c cstlib', target = 'lwip', - use=['lwip_obj']) + cflags='-g -Wall -O0', + use=['lwip_obj', 'driver_obj']) bld.program(features='c', - target='test01.exe', - source='./lwip/test/sample_app.c', + target='networking01.exe', + source='./rtemslwip/test/networking01/sample_app.c', + cflags='-g -Wall -O0', use='lwip', lib=['rtemscpu', 'rtemsbsp', 'rtemstest', 'lwip'], - includes='./include ./uLan/ports/os/rtems ./uLan/ports/os ./lwip/src/include ./uLan/ports/os/rtems ./lwip/test/' + os.path.relpath(os.path.join(arch_lib_path,'include'))) + includes=drv_incl + common_includes + './rtemslwip/test/ ' + os.path.relpath(os.path.join(arch_lib_path,'include'))) + + arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION, + bld.env.RTEMS_ARCH_BSP) + lib_path = os.path.join(bld.env.PREFIX, arch_lib_path) + bld.read_stlib('telnetd', paths=[lib_path]) + bld.read_stlib('rtemstest', paths=[lib_path]) + bld.read_stlib('ftpd', paths=[lib_path]) + + bld.program(features='c', + target='telnetd01.exe', + source='./rtemslwip/test/telnetd01/init.c', + use='telnetd lwip rtemstest ftpd', + cflags='-g -Wall -O0', + includes=drv_incl + common_includes + './rtemslwip/test/ ' + os.path.relpath(os.path.join(arch_lib_path,'include'))) |