mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-15 02:59:14 +08:00
waf: Reformat to PEP8 using yapf
This commit is contained in:
152
wscript
152
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)
|
||||
|
Reference in New Issue
Block a user