def make_modules(self, groups, code_opts):
modules = []<EOL>for raw_module, raw_funcs in groups:<EOL><INDENT>module = raw_module[<NUM_LIT:0>].strip().strip(string.punctuation)<EOL>funcs = [func.strip() for func in raw_funcs]<EOL>args = [self.database.query_args(func, raw=True)<EOL>for func in funcs]<EOL>if self.generic:<EOL><INDENT>args = [arg if arg else ('<STR_LIT>', [])<EOL>for arg in args]<EOL><DEDENT>else:<EOL><INDENT>args = [arg for arg in args if arg]<EOL><DEDENT>if not args:<EOL><INDENT>logging.info(_('<STR_LIT>'), module)<EOL>continue<EOL><DEDENT>logging.debug(module)<EOL>module = ModuleSource(module, zip(funcs, args),<EOL>code_opts)<EOL>modules.append(module.c_source())<EOL><DEDENT>return AttrsGetter(modules)<EOL>
Build shellcoding files for the module.