From 2cf19c4108d9b930f644fe94723a886e92c5e878 Mon Sep 17 00:00:00 2001 From: Vijay Kumar Banerjee Date: Sat, 3 Apr 2021 19:04:59 -0600 Subject: nfsclient: Build nfsclient from the top level netlegacy script --- 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 . -# 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 -- cgit v1.2.3