[PATCH rtems-net-legacy v3] nfsclient: Build nfsclient from the top level netlegacy script

Vijay Kumar Banerjee vijay at rtems.org
Wed Apr 14 06:00:51 UTC 2021


Ping :)

On Wed, Apr 7, 2021 at 10:51 AM Vijay Kumar Banerjee <vijay at rtems.org> wrote:
>
> ---
>  netlegacy.py      | 31 ++++++++++++++++++++++----
>  nfsclient/wscript | 56 -----------------------------------------------
>  wscript           |  2 +-
>  3 files changed, 28 insertions(+), 61 deletions(-)
>  delete mode 100644 nfsclient/wscript
>
> diff --git a/netlegacy.py b/netlegacy.py
> index 89176e6..05cb78a 100644
> --- a/netlegacy.py
> +++ b/netlegacy.py
> @@ -46,6 +46,14 @@ for root, dirs, files in os.walk("."):
>          if ext == '.h' and name not in exclude_headers:
>              include_files[root[2:]].append(os.path.join(root, name))
>
> +def find_node(bld, *paths):
> +    path = os.path.join(*paths)
> +    return os.path.relpath(str(bld.path.find_node(path)))
> +
> +def install_file_list(*paths):
> +    path = os.path.join(*paths)
> +    file_list = [os.path.join(path, f) for f in os.listdir(path)]
> +    return file_list
>
>  def build(bld):
>      include_path = []
> @@ -55,6 +63,13 @@ def build(bld):
>                     for s in os.listdir('./pppd') if s[-2:] == '.c']
>      telnetd_source = [os.path.join('./telnetd', s)
>                        for s in os.listdir('telnetd') if s[-2:] == '.c']
> +    nfs_source = []
> +    for root, dirs, files in os.walk('nfsclient'):
> +        for name in files:
> +            ext = os.path.splitext(name)[1]
> +            if ext == '.c':
> +                src_root = os.path.split(root)
> +                nfs_source.append(os.path.join(src_root[0], src_root[1], name))
>
>      bsp_dirs, bsp_sources = bsp_drivers.bsp_files(bld)
>
> @@ -67,12 +82,15 @@ def build(bld):
>                           './bsps/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)
>      include_path.append(os.path.relpath(os.path.join(bld.env.PREFIX,
>                                                       arch_lib_path)))
>      include_path.append(os.path.relpath(os.path.join(bld.env.PREFIX,
>                                                       arch_lib_path,
>                                                       'include')))
> -    include_path.append('./bsps/include/libchip')
> +    include_path.append(find_node(bld, 'bsps', 'include', 'libchip'))
> +
> +    bld.read_stlib('rtemsbsp', paths=[lib_path])
>
>      if bsp in bsp_dirs:
>          include_path.extend(bsp_dirs[bsp])
> @@ -108,12 +126,17 @@ def build(bld):
>                use='networking',
>                source=telnetd_source)
>
> +    bld.stlib(target='nfs',
> +              features='c',
> +              includes=ip,
> +              use=['rtemsbsp', 'networking'],
> +              source=nfs_source)
> +
>      bld.install_files(os.path.join('${PREFIX}', arch_lib_path),
> -                      ["libnetworking.a", 'libpppd.a', 'libtelnetd.a'])
> +                      ["libnetworking.a", 'libpppd.a', 'libtelnetd.a', 'libnfs.a'])
>      bld.install_files(os.path.join('${PREFIX}', arch_lib_path,
>                                     'include', 'libchip'),
> -                      [os.path.join('./bsps/include/libchip/', f)
> -                      for f in os.listdir('./bsps/include/libchip/')])
> +                      install_file_list('bsps', 'include', 'libchip'))
>      for i in include_files:
>          if 'include' in i.split('/'):
>              bld.install_files(os.path.join('${PREFIX}',
> diff --git a/nfsclient/wscript b/nfsclient/wscript
> deleted file mode 100644
> index bc2f994..0000000
> --- a/nfsclient/wscript
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -#
> -# RTEMS Project (https://www.rtems.org/)
> -#
> -# Copyright (c) 2021 Vijay Kumar Banerjee <vijay at rtems.org>.
> -# All rights reserved.
> -#
> -#  Redistribution and use in source and binary forms, with or without
> -#  modification, are permitted provided that the following conditions
> -#  are met:
> -#  1. Redistributions of source code must retain the above copyright
> -#     notice, this list of conditions and the following disclaimer.
> -#  2. Redistributions in binary form must reproduce the above copyright
> -#     notice, this list of conditions and the following disclaimer in the
> -#     documentation and/or other materials provided with the distribution.
> -#
> -#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> -#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> -#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> -#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> -#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> -#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> -#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> -#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> -#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> -#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> -#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> -
> -from rtems_waf import rtems
> -import os
> -
> -
> -def init(ctx):
> -    pass
> -
> -
> -def configure(conf):
> -    pass
> -
> -
> -def build(bld):
> -    source_files = []
> -    include_path = ['./', '../', os.path.relpath(bld.env.PREFIX)]
> -    arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION,
> -                                            bld.env.RTEMS_ARCH_BSP)
> -    for root, dirs, files in os.walk('./nfsclient'):
> -        for name in files:
> -            if name[-2:] == '.c':
> -                src_root = root.split('/')[2]
> -                source_files.append(os.path.join(src_root, name))
> -
> -    bld.stlib(target='nfs',
> -              features='c',
> -              cflags=['-O2', '-g'],
> -              includes=include_path,
> -              source=source_files)
> -    bld.install_files(os.path.join('${PREFIX}', arch_lib_path), ['libnfs.a'])
> diff --git a/wscript b/wscript
> index 07f774d..7af317d 100644
> --- a/wscript
> +++ b/wscript
> @@ -33,7 +33,7 @@ import sys
>  top = '.'
>
>  rtems_version = "6"
> -subdirs = ['nfsclient', 'testsuites']
> +subdirs = ['testsuites']
>
>  try:
>      import rtems_waf.rtems as rtems
> --
> 2.26.2
>


More information about the devel mailing list