On 3/10/19 3:30 am, Gedare Bloom wrote: > On Wed, Oct 2, 2019 at 5:12 AM Sebastian Huber > <sebastian.hu...@embedded-brains.de> wrote: >> >> On 30/09/2019 15:14, Sebastian Huber wrote: >>> Hello, >>> >>> I would like to work on a new build system prototype. The idea is to use >>> specification items maintained by Doorstop (YAML files), a Python >>> configuration script and waf to build RTEMS and the tests. This is >>> similar to the libbsd build. The difference is that in libbsd the build >>> data is maintained directly in Python code (libbsd.py).
A key design aspect is how the configuration of RTEMS is handled and maintained. Amar's solution provides a specific model for managing settings and specifically BSP options. We need a way to add options for a BSP that lets us collect, document and validate these settings. We need a way to query and review option defaults. The solution needs to be able to add and remove BSPs with minimal impact and this leads to being able to build a BSP that is external to the RTEMS source tree. There are BSPs that are private or export restricted. Another issue to consider is how we deprecate, update or alter options. I suspect we will have an iterating design around the internal design and implementation complexity and suitable external user work-flows. >>> How do you build a singe object file (start.o) from assembly files in >>> waf? An example would be great. >> >> I think I found it in: >> >> https://git.rtems.org/amar/waf-old.git/tree/py/waf/builder.py#n54 >> >> def start(self, source, defines=[]): >> from os.path import splitext, basename >> >> for s in source: >> file = splitext(basename(s))[0] >> self.ctx( >> rule = '${CC} -DASM ${CFLAGS} >> ${CPPFLAGS} ${DEFINES_ST:DEFINES} >> ${CPPPATH_ST:INCPATHS} -c -o ${TGT} ${SRC}', >> source = s, >> target = "%s.o" % file, >> name = "start_%s_o" % file, >> features = "c casm bld_include src_include", >> defines = defines, >> ) >> > It seems likely for a simple link you'd only need features="casm", > although I'm not sure. I would try `feature = 'asm'` first .... $ grep -r '@feature.*asm' .waf3-2.0.13-4c5a17779813574907c253ab5418388d/ .waf3-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Tools/nasm.py:@feature('asm') .waf3-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Tools/ccroot.py:@feature('c','cxx','d','asm','fc','includes') .waf3-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Tools/ccroot.py:@feature('c','cxx','d','fc','asm') .waf3-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Tools/ccroot.py:@feature('c','cxx','d','fc','javac','cs','uselib','asm') Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel