code: def get_cachedir_bsig(self):
          
          try:
              return self.cachesig
          except AttributeError:
              pass
  
          # Collect signatures for all children
          children = self.children()
          sigs = [n.get_cachedir_csig() for n in children]
          # Append this node's signature...
          sigs.append(self.get_contents_sig())
          # ...and it's path
          sigs.append(self.get_internal_path())
          # Merge this all into a single signature
          result = self.cachesig = SCons.Util.MD5collect(sigs)
          return result
docs: Return the signature for a cached file, including
          its children.
  
          It adds the path of the cached file to the cache signature,
          because multiple targets built by the same action will all
          have the same build signature, and we have to differentiate
          them somehow.