Package wafadmin :: Package Tools :: Module nasm
[hide private]
[frames] | no frames]

Source Code for Module wafadmin.Tools.nasm

 1  #!/usr/bin/env python 
 2  # encoding: utf-8 
 3  # Thomas Nagy, 2008 
 4   
 5  """ 
 6  Nasm processing 
 7  """ 
 8   
 9  import os 
10  import TaskGen, Task 
11  from TaskGen import taskgen, before, extension 
12   
13  nasm_str = '${NASM} ${NASM_FLAGS} ${NASM_INCLUDES} ${SRC} -o ${TGT}' 
14   
15  EXT_NASM = ['.s', '.S', '.asm', '.ASM', '.spp', '.SPP'] 
16 17 @taskgen 18 @before('apply_link') 19 -def apply_nasm_vars(self):
20 21 # flags 22 if hasattr(self, 'nasm_flags'): 23 for flag in self.to_list(self.nasm_flags): 24 self.env.append_value('NASM_FLAGS', flag) 25 26 # includes - well, if we suppose it works with c processing 27 if hasattr(self, 'includes'): 28 for inc in self.to_list(self.includes): 29 self.env.append_value('NASM_INCLUDES', '-I %s' % inc.srcpath(self.env))
30
31 @extension(EXT_NASM) 32 -def nasm_file(self, node):
33 o_node = node.change_ext('.o') 34 35 task = self.create_task('nasm') 36 task.set_inputs(node) 37 task.set_outputs(o_node) 38 39 self.compiled_tasks.append(task) 40 41 self.meths.add('apply_nasm_vars')
42 43 # create our action here 44 Task.simple_task_type('nasm', nasm_str, color='BLUE', ext_out='.o')
45 46 -def detect(conf):
47 nasm = conf.find_program('nasm', var='NASM') 48 if not nasm: conf.fatal("could not find nasm, install it or set PATH env var.")
49