2
0
mirror of https://gitlab.com/ita1024/waf.git synced 2024-11-18 07:57:05 +01:00
waf/waflib/Tools/asm.py

74 lines
1.6 KiB
Python
Raw Normal View History

2011-09-10 11:13:51 +02:00
#!/usr/bin/env python
# encoding: utf-8
2016-06-25 20:10:04 +02:00
# Thomas Nagy, 2008-2016 (ita)
2011-09-10 11:13:51 +02:00
"""
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')
"""
from waflib import Task
2011-09-10 11:13:51 +02:00
from waflib.Tools.ccroot import link_task, stlink_task
from waflib.TaskGen import extension
2011-09-10 11:13:51 +02:00
class asm(Task.Task):
"""
2016-06-25 20:10:04 +02:00
Compiles asm files by gas/nasm/yasm/...
2011-09-10 11:13:51 +02:00
"""
color = 'BLUE'
2014-04-30 22:37:36 +02:00
run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
2011-09-10 11:13:51 +02:00
@extension('.s', '.S', '.asm', '.ASM', '.spp', '.SPP')
def asm_hook(self, node):
"""
2016-06-25 20:10:04 +02:00
Binds the asm extension to the asm task
2011-09-10 11:13:51 +02:00
:param node: input file
:type node: :py:class:`waflib.Node.Node`
"""
return self.create_compiled_task('asm', node)
class asmprogram(link_task):
2016-06-25 20:10:04 +02:00
"Links object files into a c program"
2011-10-16 18:19:31 +02:00
run_str = '${ASLINK} ${ASLINKFLAGS} ${ASLNK_TGT_F}${TGT} ${ASLNK_SRC_F}${SRC}'
2011-09-10 11:13:51 +02:00
ext_out = ['.bin']
inst_to = '${BINDIR}'
class asmshlib(asmprogram):
2016-06-25 20:10:04 +02:00
"Links object files into a c shared library"
2011-09-10 11:13:51 +02:00
inst_to = '${LIBDIR}'
class asmstlib(stlink_task):
2016-06-25 20:10:04 +02:00
"Links object files into a c static library"
2011-09-10 11:13:51 +02:00
pass # do not remove
def configure(conf):
2016-06-25 20:10:04 +02:00
conf.env.ASMPATH_ST = '-I%s'