code: def get_binfo(self):
          try:
              return self.binfo
          except AttributeError:
              pass
          binfo = self.new_binfo()
          self.binfo = binfo
          executor = self.get_executor()
          ignore_set = self.ignore_set
          if self.has_builder():
              binfo.bact = str(executor)
              binfo.bactsig = SCons.Util.MD5signature(executor.get_contents())
          if self._specific_sources:
              sources = [ s for s in self.sources if not s in ignore_set]
          else:
              sources = executor.get_unignored_sources(self, self.ignore)
          seen = set()
          binfo.bsources = [s for s in sources if s not in seen and not seen.add(s)]
          binfo.bsourcesigs = [s.get_ninfo() for s in binfo.bsources]
          binfo.bdepends = self.depends
          binfo.bdependsigs = [d.get_ninfo() for d in self.depends if d not in ignore_set]
          binfo.bimplicit = self.implicit or []
          binfo.bimplicitsigs = [i.get_ninfo() for i in binfo.bimplicit if i not in ignore_set]
          return binfo