summaryrefslogtreecommitdiffstats
path: root/wscript
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2020-09-01 14:01:14 +1000
committerChris Johns <chrisj@rtems.org>2020-09-16 15:49:37 +1000
commit7afbccd8d7c6d7ffbdfd853e210fa207abab3d70 (patch)
tree9981f891e8ef490695a59158b0a470f244806598 /wscript
parentrtems-bsd-cxx: Undefine _GNU_SOURCE (diff)
downloadrtems-libbsd-7afbccd8d7c6d7ffbdfd853e210fa207abab3d70.tar.bz2
waf: Reformat to PEP8 using yapf
Diffstat (limited to 'wscript')
-rw-r--r--wscript152
1 files changed, 91 insertions, 61 deletions
diff --git a/wscript b/wscript
index 03151bb2..55652ff8 100644
--- a/wscript
+++ b/wscript
@@ -1,28 +1,32 @@
-#
-# RTEMS Project (https://www.rtems.org/)
-#
+# SPDX-License-Identifier: BSD-2-Clause
+'''RTEMS LibBSD is a transparent source build of the FreeBSD kernel
+source for RTEMS.
+
+To use see README.waf shipped with this file.
+'''
+
# Copyright (c) 2015-2016 Chris Johns <chrisj@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.
+# 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.
+# 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.
#
# RTEMS LibBSD is a transparent source build of the FreeBSD kernel source for RTEMS.
@@ -57,6 +61,7 @@ builders = {}
BUILDSET_DIR = "buildset"
BUILDSET_DEFAULT = "buildset/default.ini"
+
def load_ini(conf, f):
ini = configparser.ConfigParser()
ini.read(f)
@@ -73,8 +78,9 @@ def load_ini(conf, f):
elif os.path.isfile(os.path.join(BUILDSET_DIR, extends)):
extendfile = os.path.join(BUILDSET_DIR, extends)
else:
- conf.fatal("'{}': Invalid file given for general/extends:'{}'"
- .format(f, extends))
+ conf.fatal(
+ "'{}': Invalid file given for general/extends:'{}'".format(
+ f, extends))
base = load_ini(conf, extendfile)
for s in ini.sections():
if not base.has_section(s):
@@ -85,6 +91,7 @@ def load_ini(conf, f):
ini = base
return ini
+
def load_config(conf, f):
ini = load_ini(conf, f)
config = {}
@@ -100,6 +107,7 @@ def load_config(conf, f):
config['modules-enabled'].append(mod)
return config
+
def update_builders(ctx, buildset_opt):
global builders
builders = {}
@@ -111,7 +119,7 @@ def update_builders(ctx, buildset_opt):
if os.path.isdir(bs):
for f in os.listdir(bs):
if f[-4:] == ".ini":
- buildsets += [os.path.join(bs,f)]
+ buildsets += [os.path.join(bs, f)]
else:
for f in bs.split(','):
buildsets += [f]
@@ -123,7 +131,8 @@ def update_builders(ctx, buildset_opt):
bsname = bsconfig['name']
builder.updateConfiguration(bsconfig)
builder.generate(rtems_version)
- builders[bsname]=builder
+ builders[bsname] = builder
+
def bsp_init(ctx, env, contexts):
# This function generates the builders and adds build-xxx, clean-xxx and
@@ -143,6 +152,7 @@ def bsp_init(ctx, env, contexts):
for y in contexts:
newcmd = y.cmd + '-' + builder
newvariant = y.variant + '-' + builder
+
class context(y):
cmd = str(newcmd)
variant = str(newvariant)
@@ -158,49 +168,66 @@ def bsp_init(ctx, env, contexts):
commands += [str(cmd)]
waflib.Options.commands = commands
+
def init(ctx):
- rtems.init(ctx, version = rtems_version, long_commands = True,
- bsp_init = bsp_init)
+ rtems.init(ctx,
+ version=rtems_version,
+ long_commands=True,
+ bsp_init=bsp_init)
+
def options(opt):
rtems.options(opt)
opt.add_option("--enable-auto-regen",
- action = "store_true",
- default = False,
- dest = "auto_regen",
- help = "Enable auto-regeneration of LEX, RPC and YACC files.")
+ action="store_true",
+ default=False,
+ dest="auto_regen",
+ help="Enable auto-regeneration of LEX, RPC and YACC files.")
opt.add_option("--enable-warnings",
- action = "store_true",
- default = False,
- dest = "warnings",
- help = "Enable all warnings. The default is quiet builds.")
+ action="store_true",
+ default=False,
+ dest="warnings",
+ help="Enable all warnings. The default is quiet builds.")
opt.add_option("--net-test-config",
- default = "config.inc",
- dest = "net_config",
- help = "Network test configuration.")
+ default="config.inc",
+ dest="net_config",
+ help="Network test configuration.")
opt.add_option("--freebsd-options",
- action = "store",
- default = "",
- dest = "freebsd_options",
- help = "Set FreeBSD options (developer option).")
- opt.add_option("--optimization",
- action = "store",
- default = "2",
- dest = "optimization",
- help = "Set optimization level to OPTIMIZATION (-On compiler flag). Default is 2 (-O2).")
- opt.add_option("--buildset",
- action = "append",
- default = [],
- dest = "buildset",
- help = "Select build sets to build. If set to a directory, all .ini file in this directory will be used.")
+ action="store",
+ default="",
+ dest="freebsd_options",
+ help="Set FreeBSD options (developer option).")
+ opt.add_option(
+ "--optimization",
+ action="store",
+ default="2",
+ dest="optimization",
+ help=
+ "Set optimization level to OPTIMIZATION (-On compiler flag). Default is 2 (-O2)."
+ )
+ opt.add_option(
+ "--buildset",
+ action="append",
+ default=[],
+ dest="buildset",
+ help=
+ "Select build sets to build. If set to a directory," \
+ " all .ini file in this directory will be used."
+ )
+
def bsp_configure(conf, arch_bsp):
- conf.check(header_name = "dlfcn.h", features = "c")
- conf.check(header_name = "rtems/pci.h", features = "c", mandatory = False)
+ conf.check(header_name="dlfcn.h", features="c")
+ conf.check(header_name="rtems/pci.h", features="c", mandatory=False)
if not rtems.check_posix(conf):
- conf.fatal("RTEMS kernel POSIX support is disabled; configure RTEMS with --enable-posix")
+ conf.fatal(
+ "RTEMS kernel POSIX support is disabled; configure RTEMS with --enable-posix"
+ )
if rtems.check_networking(conf):
- conf.fatal("RTEMS kernel contains the old network support; configure RTEMS with --disable-networking")
+ conf.fatal(
+ "RTEMS kernel contains the old network support;" \
+ " configure RTEMS with --disable-networking"
+ )
env = conf.env.derive()
for builder in builders:
ab = conf.env.RTEMS_ARCH_BSP
@@ -210,15 +237,16 @@ def bsp_configure(conf, arch_bsp):
builders[builder].bsp_configure(conf, arch_bsp)
conf.setenv(ab)
+
def configure(conf):
if conf.options.auto_regen:
- conf.find_program("lex", mandatory = True)
- conf.find_program("rpcgen", mandatory = True)
- conf.find_program("yacc", mandatory = True)
+ conf.find_program("lex", mandatory=True)
+ conf.find_program("rpcgen", mandatory=True)
+ conf.find_program("yacc", mandatory=True)
conf.env.AUTO_REGEN = conf.options.auto_regen
conf.env.WARNINGS = conf.options.warnings
conf.env.NET_CONFIG = conf.options.net_config
- conf.env.FREEBSD_OPTIONS =conf.options.freebsd_options
+ conf.env.FREEBSD_OPTIONS = conf.options.freebsd_options
conf.env.OPTIMIZATION = conf.options.optimization
conf.env.BUILDSET = conf.options.buildset
if len(conf.env.BUILDSET) == 0:
@@ -226,9 +254,11 @@ def configure(conf):
update_builders(conf, conf.env.BUILDSET)
rtems.configure(conf, bsp_configure)
+
def test(bld):
rtems.test_uninstall(bld)
+
def build(bld):
rtems.build(bld)
builders[bld.libbsd_buildset_name].build(bld)