diff options
author | Chris Johns <chrisj@rtems.org> | 2023-04-20 16:16:40 -1000 |
---|---|---|
committer | KinseyMoore <48726349+KinseyMoore@users.noreply.github.com> | 2023-04-25 21:45:23 -0500 |
commit | ab074c12ca72f0d90951c31f61ba1523b01fd667 (patch) | |
tree | 9c3bd559a9ac16e652a04c465c6588ba6376afdb | |
parent | rtems_waf: Update (diff) | |
download | rtems-net-services-ab074c12ca72f0d90951c31f61ba1523b01fd667.tar.bz2 |
waf: Add option to enable NTP debug
-rw-r--r-- | bsd/freebsd/contrib/ntp/libntp/msyslog.c | 6 | ||||
-rw-r--r-- | netservices.py | 106 |
2 files changed, 106 insertions, 6 deletions
diff --git a/bsd/freebsd/contrib/ntp/libntp/msyslog.c b/bsd/freebsd/contrib/ntp/libntp/msyslog.c index 5a45404..da27c46 100644 --- a/bsd/freebsd/contrib/ntp/libntp/msyslog.c +++ b/bsd/freebsd/contrib/ntp/libntp/msyslog.c @@ -96,7 +96,7 @@ format_errmsg( * For Windows, we have: * #define errno_to_str isc_strerror */ -#ifndef errno_to_str +#if !defined(errno_to_str) || DEBUG void errno_to_str( int err, @@ -430,7 +430,7 @@ init_logging( # ifndef LOG_NTP # define LOG_NTP LOG_DAEMON # endif - openlog(progname, LOG_PID | LOG_NDELAY, (was_daemon) + openlog(progname, LOG_PID | LOG_NDELAY, (was_daemon) ? LOG_NTP : 0); # ifdef DEBUG @@ -576,7 +576,7 @@ setup_logfile( msyslog(LOG_ERR, "Cannot open log file %s, %m", name); return ; - } + } if (NULL == syslog_fname) return; diff --git a/netservices.py b/netservices.py index e0166b7..ff76944 100644 --- a/netservices.py +++ b/netservices.py @@ -29,6 +29,80 @@ import os import rtems_waf.rtems as rtems + +def net_check_libbsd(conf): + pass + + +def net_check_legacy(conf): + if conf.env.NET_NAME != 'legacy': + return + # + # BSPs must define: + # - RTEMS_BSP_NETWORK_DRIVER_NAME + # - RTEMS_BSP_NETWORK_DRIVER_ATTACH + # + for define in [ + 'RTEMS_BSP_NETWORK_DRIVER_NAME', 'RTEMS_BSP_NETWORK_DRIVER_ATTACH' + ]: + code = ['#include <bspopts.h>'] + code += ['#include <bsp.h>'] + code += ['#ifndef %s' % (define)] + code += [' #error %s not defined' % (define)] + code += ['#endif'] + try: + conf.check_cc(fragment=rtems.test_application(code), + execute=False, + msg='Checking for %s' % (define)) + except conf.errors.WafError: + conf.fatal(ab + ' does not provide %s' % (define)) + + +def net_check_lwip(conf): + pass + + +def net_config_header(bld): + if not os.path.exists(bld.env.NET_CONFIG): + bld.fatal('network configuraiton \'%s\' not found' % + (bld.env.NET_CONFIG)) + net_tags = [ + 'NET_CFG_IFACE', 'NET_CFG_IFACE_OPTS', 'NET_CFG_BOOT_PROT', 'NET_CFG_SELF_IP', + 'NET_CFG_NETMASK', 'NET_CFG_MAC_ADDR', 'NET_CFG_GATEWAY_IP', + 'NET_CFG_DOMAINNNAME', 'NET_CFG_DNS_IP', 'NET_CFG_NTP_IP' + ] + try: + net_cfg_lines = open(bld.env.NET_CONFIG).readlines() + except: + bld.fatal('network configuraiton \'%s\' read failed' % + (bld.env.NET_CONFIG)) + lc = 0 + sed = 'sed ' + net_defaults = {} + for l in net_cfg_lines: + lc += 1 + if not l.strip().startswith('NET_CFG_'): + bld.fatal('network configuration \'%s\' ' \ + 'invalid config: %d: %s' % (bld.env.NET_CONFIG, lc, l)) + ls = l.split('=') + if len(ls) != 2: + bld.fatal('network configuration \'%s\' ' \ + 'parse error: %d: %s' % (bld.env.NET_CONFIG, lc, l)) + lhs = ls[0].strip() + rhs = ls[1].strip() + if lhs in net_tags: + net_defaults[lhs] = rhs + else: + bld.fatal('network configuration \'%s\' ' \ + 'invalid config: %d: %s' % (bld.env.NET_CONFIG, lc, l)) + for cfg in net_defaults: + sed += "-e 's/@%s@/%s/' " % (cfg, net_defaults[cfg]) + bld(target=bld.env.NETWORK_CONFIG, + source='testsuites/include/network-config.h.in', + rule=sed + ' < ${SRC} > ${TGT}', + update_outputs=True) + + def removeprefix(data, prefix): if data.startswith(prefix): return data[len(prefix):] @@ -41,6 +115,14 @@ def options(opt): default='-O2', dest='optimization', help='Optimaization level (default: %default)') + copts.add_option('--net-test-config', + default='config.inc', + dest='net_config', + help='Network test configuration (default: %default)') + copts.add_option('--ntp-debug', + action='store_true', + dest='ntp_debug', + help='Build NTP with DEBUG enabled (default: %default)') def add_flags(flags, new_flags): @@ -64,9 +146,15 @@ def check_net_lib(conf, lib, name): def bsp_configure(conf, arch_bsp): + conf.env.NET_CONFIG = conf.options.net_config + bld_inc = conf.path.get_bld().find_or_declare('include') + conf.env.NETWORK_CONFIG = str(bld_inc.find_or_declare('network-config.h')) conf.env.OPTIMIZATION = conf.options.optimization conf.env.LIB += ['m'] + bld_inc = conf.path.get_bld().find_or_declare('include') + conf.env.IFLAGS = [str(bld_inc)] + section_flags = ["-fdata-sections", "-ffunction-sections"] add_flags(conf.env.CFLAGS, section_flags) add_flags(conf.env.CXXFLAGS, section_flags) @@ -80,16 +168,24 @@ def bsp_configure(conf, arch_bsp): if stack_count != 1: conf.fatal('More than one networking stack found') + net_check_libbsd(conf) + net_check_legacy(conf) + net_check_lwip(conf) + + conf.env.NTP_DEFINES = [] + if conf.options.ntp_debug: + conf.env.NTP_DEFINES += ['DEBUG=1'] + def build(bld): net_name = bld.env.NET_NAME net_use = 'NET_' + net_name.upper() - net_def = 'RTEMS_NET_' + net_name.upper() + net_def = 'RTEMS_NET_' + net_name.upper() + '=1' net_root = os.path.join('net', net_name) net_inc = str(bld.path.find_node(os.path.join(net_root, 'include'))) net_adapter_source = net_root + '/net_adapter.c' - inc = [str(bld.path.find_node('include')), net_inc] + inc = bld.env.IFLAGS + ['include', net_inc] cflags = ['-g', bld.env.OPTIMIZATION] ntp_source_files = [] @@ -105,12 +201,16 @@ def build(bld): for f in files['header-paths-to-import']: ntp_incl.append(os.path.join('./bsd', f)) + net_config_header(bld) + + bld.add_group() + bld.stlib(features='c', target='ntp', source=ntp_source_files, includes=ntp_incl + [os.path.join(net_root, 'ntp')], cflags=cflags, - defines=[net_def, 'HAVE_CONFIG_H=1'], + defines=[net_def, 'HAVE_CONFIG_H=1'] + bld.env.NTP_DEFINES, use=[net_use]) bld.install_files("${PREFIX}/" + arch_lib_path, ["libntp.a"]) |