On 30/8/2022 4:30 am, Kinsey Moore wrote: > --- > lwip.py | 106 ++++++++++++++++++++++++++++++++------------------------ > 1 file changed, 61 insertions(+), 45 deletions(-) > > diff --git a/lwip.py b/lwip.py > index f8d8eb0..2e12957 100644 > --- a/lwip.py > +++ b/lwip.py > @@ -29,43 +29,50 @@ from rtems_waf import rtems > import json > import os > > + > def removeprefix(data, prefix): > if data.startswith(prefix): > return data[len(prefix):] > return data > > + > +xilinx_lwip_prefix = 'embeddedsw/ThirdParty/sw_services/lwip211/' > + > xilinx_drv_incl = '' > -xilinx_drv_incl += > './embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/include > ' > -xilinx_drv_incl += './embeddedsw/lib/bsp/standalone/src/common ' > -xilinx_drv_incl += './embeddedsw/XilinxProcessorIPLib/drivers/common/src/ ' > -xilinx_drv_incl += './embeddedsw/XilinxProcessorIPLib/drivers/scugic/src ' > -xilinx_drv_incl += './embeddedsw/XilinxProcessorIPLib/drivers/emacps/src ' > -xilinx_drv_incl += './rtemslwip/xilinx ' > +xilinx_drv_incl += xilinx_lwip_prefix + 'src/contrib/ports/xilinx/include ' > +xilinx_drv_incl += 'embeddedsw/lib/bsp/standalone/src/common ' > +xilinx_drv_incl += 'embeddedsw/XilinxProcessorIPLib/drivers/common/src/ ' > +xilinx_drv_incl += 'embeddedsw/XilinxProcessorIPLib/drivers/scugic/src ' > +xilinx_drv_incl += 'embeddedsw/XilinxProcessorIPLib/drivers/emacps/src ' > +xilinx_drv_incl += 'rtemslwip/xilinx '
Lists or strings? I prefer lists because weird paths can effect the waf conversion from strings to lists. This also goes for defines, fkags etc. Otherwise looks good. Thanks Chris > > xilinx_aarch64_drv_incl = '' > -xilinx_aarch64_drv_incl += './rtemslwip/zynqmp ' > -xilinx_aarch64_drv_incl += > './embeddedsw/lib/bsp/standalone/src/arm/ARMv8/64bit ' > -xilinx_aarch64_drv_incl += > './embeddedsw/lib/bsp/standalone/src/arm/common/gcc ' > -xilinx_aarch64_drv_incl += './embeddedsw/lib/bsp/standalone/src/arm/common ' > +xilinx_aarch64_drv_incl += 'rtemslwip/zynqmp ' > +xilinx_aarch64_drv_incl += > 'embeddedsw/lib/bsp/standalone/src/arm/ARMv8/64bit ' > +xilinx_aarch64_drv_incl += 'embeddedsw/lib/bsp/standalone/src/arm/common/gcc > ' > +xilinx_aarch64_drv_incl += 'embeddedsw/lib/bsp/standalone/src/arm/common ' > > # These sources are explicitly listed instead of using walk_sources below > # because multiple BSPs of varying architecture are expected to use code from > # the embeddedsw repository. > xilinx_aarch64_driver_source = [ > - > './embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xadapter.c', > - > './embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xpqueue.c', > - > './embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c', > - > './embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif_hw.c', > - './embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps_bdring.c', > - './embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps.c', > - './embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps_control.c', > - './embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps_intr.c', > - './embeddedsw/lib/bsp/standalone/src/common/xil_assert.c' > + xilinx_lwip_prefix + 'src/contrib/ports/xilinx/netif/xadapter.c', > + xilinx_lwip_prefix + 'src/contrib/ports/xilinx/netif/xpqueue.c', > + xilinx_lwip_prefix + 'src/contrib/ports/xilinx/netif/xemacpsif.c', > + xilinx_lwip_prefix + 'src/contrib/ports/xilinx/netif/xemacpsif_dma.c', > + xilinx_lwip_prefix + 'src/contrib/ports/xilinx/netif/xemacpsif_hw.c', > + xilinx_lwip_prefix + > 'src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c', > + 'embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps_bdring.c', > + 'embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps.c', > + 'embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps_control.c', > + 'embeddedsw/XilinxProcessorIPLib/drivers/emacps/src/xemacps_intr.c', > + 'embeddedsw/lib/bsp/standalone/src/common/xil_assert.c' > ] > > + > def build(bld): > source_files = [] > - common_includes = './lwip/src/include ./uLan/ports/os/rtems > ./rtemslwip/include ' > + common_includes = 'lwip/src/include uLan/ports/os/rtems > rtemslwip/include ' > driver_source = [] > drv_incl = ' ' > bsd_compat_sources = [ > @@ -73,7 +80,7 @@ def build(bld): > "rtemslwip/bsd_compat/ifaddrs.c", > "rtemslwip/bsd_compat/rtems-kernel-program.c" > ] > - bsd_compat_incl = './rtemslwip/bsd_compat_include ' > + bsd_compat_incl = 'rtemslwip/bsd_compat_include ' > > arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION, > bld.env.RTEMS_ARCH_BSP) > @@ -81,12 +88,12 @@ def build(bld): > files = json.load(cf) > for f in files['files-to-import']: > if f[-2:] == '.c': > - source_files.append(os.path.join('./lwip', f)) > + source_files.append(os.path.join('lwip', 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/network_compat.c') > + 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/network_compat.c') > source_files.extend(bsd_compat_sources) > > def walk_sources(path): > @@ -102,14 +109,14 @@ def build(bld): > > # 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')) > + 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')) > + driver_source.extend(walk_sources('rtemslwip/beaglebone')) > + drv_incl += 'rtemslwip/beaglebone cpsw/src/include ' > + driver_source.extend(walk_sources('cpsw/src')) > > # These files will only compile for BSPs on Xilinx hardware > is_xilinx_bsp = False > @@ -121,32 +128,35 @@ def build(bld): > if bld.env.RTEMS_ARCH_BSP.endswith('_qemu'): > is_qemu = True > if is_xilinx_bsp: > - > driver_source.extend(walk_sources('./embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif')) > drv_incl += xilinx_drv_incl > if is_aarch64_bsp: > - driver_source.extend(walk_sources('./rtemslwip/zynqmp')) > + driver_source.extend(walk_sources('rtemslwip/zynqmp')) > if is_qemu: > - driver_source.extend(walk_sources('./rtemslwip/zynqmp_qemu')) > + driver_source.extend(walk_sources('rtemslwip/zynqmp_qemu')) > else: > - > driver_source.extend(walk_sources('./rtemslwip/zynqmp_hardware')) > + > driver_source.extend(walk_sources('rtemslwip/zynqmp_hardware')) > driver_source.extend(xilinx_aarch64_driver_source) > drv_incl += xilinx_aarch64_drv_incl > > - bld(features ='c', > + bld(features='c', > target='lwip_obj', > cflags='-g -Wall -O0', > includes=drv_incl + bsd_compat_incl + common_includes, > source=source_files, > ) > > - bld(features ='c', > + drv_obj_incl = drv_incl + common_includes > + drv_obj_incl += os.path.relpath( > + os.path.join(bld.env.PREFIX, arch_lib_path, 'include') > + ) > + 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')) , > + includes=drv_obj_incl, > source=driver_source, > ) > bld(features='c cstlib', > - target = 'lwip', > + target='lwip', > cflags='-g -Wall -O0', > use=['lwip_obj', 'driver_obj']) > bld.install_files("${PREFIX}/" + arch_lib_path, ["liblwip.a"]) > @@ -159,20 +169,24 @@ def build(bld): > path = os.path.join(src_root[0], src_root[1]) > if ext == '.h': > subpath = removeprefix(removeprefix(path, root_path), > "/") > - bld.install_files("${PREFIX}/" + arch_lib_path + > "/include/" + subpath, > - os.path.join(path,name)) > + bld.install_files( > + "${PREFIX}/" + arch_lib_path + "/include/" + subpath, > + os.path.join(path, name) > + ) > > [install_headers(path) for path in common_includes.split(' ')[:-1]] > [install_headers(path) for path in drv_incl.split(' ')[:-1]] > [install_headers(path) for path in bsd_compat_incl.split(' ')[:-1]] > > + test_app_incl = drv_incl + common_includes + 'rtemslwip/test/ ' > + test_app_incl += os.path.relpath(os.path.join(arch_lib_path, 'include')) > bld.program(features='c', > target='networking01.exe', > - source='./rtemslwip/test/networking01/sample_app.c', > + source='rtemslwip/test/networking01/sample_app.c', > cflags='-g -Wall -O0', > use='lwip', > lib=['rtemscpu', 'rtemsbsp', 'rtemstest', 'lwip'], > - includes=drv_incl + common_includes + './rtemslwip/test/ ' + > os.path.relpath(os.path.join(arch_lib_path,'include'))) > + includes=test_app_incl) > > arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION, > bld.env.RTEMS_ARCH_BSP) > @@ -183,16 +197,18 @@ def build(bld): > > bld.program(features='c', > target='telnetd01.exe', > - source='./rtemslwip/test/telnetd01/init.c', > + 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'))) > + includes=test_app_incl) > + > > def add_flags(flags, new_flags): > for flag in new_flags: > if flag not in flags: > flags.append(flag) > > + > def bsp_configure(conf, arch_bsp): > conf.env.LIB += ['m'] > section_flags = ["-fdata-sections", "-ffunction-sections"] _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel