asm

Assembly support, used by tools such as gas and nasm

To declare targets using assembly:

def configure(conf):
        conf.load('gcc gas')

def build(bld):
        bld(
                features='c cstlib asm',
                source = 'test.S',
                target = 'asmtest')

        bld(
                features='asm asmprogram',
                source = 'test.S',
                target = 'asmtest')

Support for pure asm programs and libraries should also work:

def configure(conf):
        conf.load('nasm')
        conf.find_program('ld', 'ASLINK')

def build(bld):
        bld(
                features='asm asmprogram',
                source = 'test.S',
                target = 'asmtest')
class waflib.Tools.asm.asm_parser(nodepaths=None, defines=None)[source]

Bases: waflib.Tools.c_preproc.c_parser

filter_comments(node)[source]

Filter the comments from a c/h file, and return the preprocessor lines. The regexps waflib.Tools.c_preproc.re_cpp, waflib.Tools.c_preproc.re_nl and waflib.Tools.c_preproc.re_lines are used internally.

Returns:the preprocessor directives as a list of (keyword, line)
Return type:a list of string pairs
class waflib.Tools.asm.asm(*k, **kw)[source]

Bases: waflib.Task.Task

Compiles asm files by gas/nasm/yasm/…

color = 'BLUE'
hcode = b'${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${ASMDEFINES_ST:DEFINES} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
orig_run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${ASMDEFINES_ST:DEFINES} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
vars = ['AS', 'ASFLAGS', 'ASMDEFINES_ST', 'ASMPATH_ST', 'AS_SRC_F', 'AS_TGT_F', 'DEFINES', 'INCPATHS']
waflib.Tools.asm.asm_hook(self, node)[source]

Binds the asm extension to the asm task

Parameters:node (waflib.Node.Node) – input file
class waflib.Tools.asm.asmprogram(*k, **kw)[source]

Bases: waflib.Tools.ccroot.link_task

Links object files into a c program

ext_out = ['.bin']
inst_to = '${BINDIR}'
hcode = b'${ASLINK} ${ASLINKFLAGS} ${ASLNK_TGT_F}${TGT} ${ASLNK_SRC_F}${SRC}'
orig_run_str = '${ASLINK} ${ASLINKFLAGS} ${ASLNK_TGT_F}${TGT} ${ASLNK_SRC_F}${SRC}'
vars = ['ASLINK', 'ASLINKFLAGS', 'ASLNK_SRC_F', 'ASLNK_TGT_F']
class waflib.Tools.asm.asmshlib(*k, **kw)[source]

Bases: waflib.Tools.asm.asmprogram

Links object files into a c shared library

inst_to = '${LIBDIR}'
hcode = b'nocode'
class waflib.Tools.asm.asmstlib(*k, **kw)[source]

Bases: waflib.Tools.ccroot.stlink_task

Links object files into a c static library

hcode = b'\tdef wrap(self):\n\t\ttry:\n\t\t\tos.remove(self.outputs[0].abspath())\n\t\texcept OSError:\n\t\t\tpass\n\t\treturn old(self)\n'
waflib.Tools.asm.extension(*k)

Decorator that registers a task generator method which will be invoked during the processing of source files for the extension given:

from waflib import Task
class mytask(Task):
        run_str = 'cp ${SRC} ${TGT}'
@extension('.moo')
def create_maa_file(self, node):
        self.create_task('mytask', node, node.change_ext('.maa'))
def build(bld):
        bld(source='foo.moo')