How to add a dependency on start.o to the test executables in waf?
Sebastian Huber
sebastian.huber at embedded-brains.de
Thu Oct 24 13:12:31 UTC 2019
Hello,
I have a problem in the new build system, which I am not able to solve
with my novice waf knowledge.
You can check out the prototype with these steps:
git clone git://git.rtems.org/sebh/rtems.git
cd rtems
git checkout --track origin/build
./waf bsp_defaults --rtems-bsps=sparc > bsps.ini
./waf configure
./waf
To build a test executable, we need:
1. the test program objects,
2. the libraries, e.g. librtemscpu.a and librtemsbsp.a
3. the linker command file (source or configuration file, see
ConfigFileItem in wscript)
4. the start file start.o
The dependencies on 1. and 2. work. The 3. is basically read-only for a
build. The problem is 4.
The start file is build with:
class StartItem(Item):
def __init__(self, uid, data):
super(StartItem, self).__init__(uid, data)
def build(self, bld):
bld(
rule="${CC} -DASM ${CFLAGS} ${CPPFLAGS}
${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c -o ${TGT} ${SRC}",
source=self.data["source"],
target=self.data["target"],
name=self.uid,
features="asm",
includes=bld.env.INCLUDES,
before=["cstlib"],
)
The test executables are built with:
class ExecutableItem(Item):
def __init__(self, uid, data):
super(ExecutableItem, self).__init__(uid, data)
executables.append(self)
def build(self, bld):
if self.is_enabled(bld):
includes = bld.env["INCLUDES"]
bld.env["INCLUDES"] = (
includes + bld.bsp_includes +
["testsuites/support/include"]
)
bld.use = ["rtemstest", "rtemscpu", "rtemsbsp"]
for p in self.links():
p.build(bld)
bld.env["INCLUDES"] = includes
bld(
target=self.data["target"] + ".exe",
use=bld.use,
features="c cprogram",
)
del bld.use
How can I add a dependency on start.o to the test executables? I tried
several variants of bld.add_manual_dependency(), but nothing worked.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list