code: def prepare(self):
          
          if self.depends is not None:
              for d in self.depends:
                  if d.missing():
                      msg = "Explicit dependency `%s' not found, needed by target `%s'."
                      raise SCons.Errors.StopError(msg % (d, self))
          if self.implicit is not None:
              for i in self.implicit:
                  if i.missing():
                      msg = "Implicit dependency `%s' not found, needed by target `%s'."
                      raise SCons.Errors.StopError(msg % (i, self))
          self.binfo = self.get_binfo()
docs: Prepare for this Node to be built.
  
          This is called after the Taskmaster has decided that the Node
          is out-of-date and must be rebuilt, but before actually calling
          the method to build the Node.
  
          This default implementation checks that explicit or implicit
          dependencies either exist or are derived, and initializes the
          BuildInfo structure that will hold the information about how
          this node is, uh, built.
  
          (The existence of source files is checked separately by the
          Executor, which aggregates checks for all of the targets built
          by a specific action.)
  
          Overriding this method allows for for a Node subclass to remove
          the underlying file from the file system.  Note that subclass
          methods should call this base class method to get the child
          check and the BuildInfo structure.