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_nlandwaflib.Tools.c_preproc.re_linesare 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.TaskCompiles asm files by gas/nasm/yasm/…
-
color= 'BLUE'¶
-
hcode= b'${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'¶
-
orig_run_str= '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'¶
-
vars= ['AS', 'ASFLAGS', 'ASMPATH_ST', 'AS_SRC_F', 'AS_TGT_F', 'DEFINES', 'DEFINES_ST', '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_taskLinks 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.asmprogramLinks 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_taskLinks 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'¶
-
-
class
waflib.Tools.asm.link_task(*k, **kw)[source]¶ Bases:
waflib.Task.TaskBase class for all link tasks. A task generator is supposed to have at most one link task bound in the attribute link_task. See
waflib.Tools.ccroot.apply_link().-
color= 'YELLOW'¶
-
weight= 3¶ Try to process link tasks as early as possible
-
inst_to= None¶ Default installation path for the link task outputs, or None to disable
-
chmod= 493¶ Default installation mode for the link task outputs
-
add_target(target)[source]¶ Process the target attribute to add the platform-specific prefix/suffix such as .so or .exe. The settings are retrieved from
env.clsname_PATTERN
-
exec_command(*k, **kw)[source]¶ Wrapper for
waflib.Context.Context.exec_command(). This version set the current working directory (build.variant_dir), applies PATH settings (if self.env.PATH is provided), and can run long commands through a temporary@argfile.Parameters: cmd (list of string (best) or string (process will use a shell)) – process command to execute Returns: the return code Return type: int Optional parameters:
- cwd: current working directory (Node or string)
- stdout: set to None to prevent waf from capturing the process standard output
- stderr: set to None to prevent waf from capturing the process standard error
- timeout: timeout value (Python 3)
-
-
class
waflib.Tools.asm.stlink_task(*k, **kw)[source]¶ Bases:
waflib.Tools.ccroot.link_taskBase for static link tasks, which use ar most of the time. The target is always removed before being written.
-
chmod= 420¶ Default installation mode for the static libraries
-
hcode= b'${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}'¶
-
orig_run_str= '${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}'¶
-
vars= ['AR', 'ARFLAGS', 'AR_SRC_F', 'AR_TGT_F']¶
-
-
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')