mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
#!/usr/bin/env python |
|
|
|
""" |
|
|
|
(c) 2002, 2003, 2004, 2005 Simon Burton <simon@arrowtheory.com> |
|
Released under GNU LGPL license. |
|
|
|
version 0.xx |
|
|
|
""" |
|
|
|
|
|
import sys |
|
import os |
|
|
|
from work_unit import WorkUnit, get_syms |
|
import ir |
|
|
|
|
|
def mk_tao(CPPFLAGS = "", CPP = "gcc -E", modname = '_yasm', oname = None, YASM_DIR = ".", **options): |
|
if oname is None: |
|
oname = modname+'.pyx' |
|
CPPFLAGS += " -I"+YASM_DIR |
|
CPPFLAGS += " -DYASM_PYXELATOR" |
|
CPPFLAGS += " -DYASM_LIB_INTERNAL" |
|
CPPFLAGS += " -DYASM_BC_INTERNAL" |
|
CPPFLAGS += " -DYASM_EXPR_INTERNAL" |
|
files = [ 'libyasm.h', 'libyasm/assocdat.h', 'libyasm/bitvect.h' ] |
|
|
|
syms = get_syms( ['yasm'], [YASM_DIR] ) |
|
def cb(trans_unit, node, *args): |
|
name, file = node.name, node.file |
|
return True |
|
return name in syms |
|
extradefs = "" |
|
unit = WorkUnit(files,modname,oname,False,mark_cb=cb,extradefs=extradefs, |
|
CPPFLAGS=CPPFLAGS, CPP=CPP, **options) |
|
|
|
|
|
unit.parse( False ) |
|
unit.transform(verbose=False, test_parse=False, test_types=False) |
|
unit.output() |
|
|
|
def main(): |
|
options = {} |
|
for i,arg in enumerate(sys.argv[1:]): |
|
if arg.count('='): |
|
key,val = arg.split('=', 1) |
|
options[key]=val |
|
mk_tao(**options) |
|
|
|
if __name__=="__main__": |
|
main() |
|
|
|
|
|
|
|
|
|
|