def expandPackages(bsvfile): newpackage, bsvpat = bsvdependencies.bsvDependencies( bsvfile, False, default_bluespecdir, options.bsvpath, []) setPkg = Set(bsvfile) for _, pkgs, _, _ in newpackage: for pkg in pkgs: for pth in options.bsvpath: pkgFile = find("%s.bsv" % pkg, pth) if pkgFile != None: subSet = expandPackages([pkgFile]) setPkg = subSet | setPkg for _, _, includes, _ in newpackage: setPkg = Set(includes) | setPkg return setPkg
def expandPackages(bsvfile): newpackage, bsvpat = bsvdependencies.bsvDependencies(bsvfile, False, default_bluespecdir, options.bsvpath, []) setPkg = Set(bsvfile) for _,pkgs,_,_ in newpackage: for pkg in pkgs: for pth in options.bsvpath: pkgFile = find("%s.bsv" % pkg, pth) if pkgFile != None: subSet = expandPackages([pkgFile]) setPkg = subSet | setPkg for _,_,includes,_ in newpackage: setPkg = Set(includes) | setPkg return setPkg
synthmoduletemplate = ''' %(name)s_MOD = %(module)s %(name)s_V = verilog/%(module)s.v %(name)s_BO = obj/%(name)s.bo %(name)s_BSV = %(bsvfilename)s %(name)s_DEP = %(dependences)s %(name)s_INC = %(includes)s $(eval $(call BSV_V_RULE, $(%(name)s_MOD), $(%(name)s_V), $(%(name)s_BSV), $(%(name)s_DEP), $(%(name)s_INC))) ''' if __name__=='__main__': options = argparser.parse_args() (bsvdep,bsvpath) = bsvdependencies.bsvDependencies(options.bsvfile, options.all, options.bluespecdir, options.bsvpath, options.bsvdefine) makef = open(options.output, 'w') makef.write('# BSV dependences\n') makef.write('OBJMAKEFILE_DEP = %s\n' % ' '.join(['$(wildcard %s/*.bsv)' % path for path in bsvpath])) makef.write('\n') for bsvfilename,packages,includes,synthesizedModules in bsvdep: basename = os.path.basename(bsvfilename) (name, ext) = os.path.splitext(basename) makef.write(makefiletemplate % { 'name': name, 'bsvfilename': bsvfilename, 'dependences': ' '.join(['obj/%s.bo' % pkg for pkg in packages]), 'includes': ' '.join(includes)