code: def actualize (self):
          
          if self.actualized_:
              return
  
          self.actualized_ = True
  
          ps = self.properties ()
          properties = self.adjust_properties (ps)
  
  
          actual_targets = []
  
          for i in self.targets ():
              actual_targets.append (i.actualize ())
  
          self.actualize_sources (self.sources (), properties)
  
          self.engine_.add_dependency (actual_targets, self.actual_sources_ + self.dependency_only_sources_)
  
          # FIXME: check the comment below. Was self.action_name_ [1]
          # Action name can include additional rule arguments, which should not
          # be passed to 'set-target-variables'.
          # FIXME: breaking circular dependency
          import toolset
          toolset.set_target_variables (self.manager_, self.action_name_, actual_targets, properties)
  
          engine = self.manager_.engine ()
  
          # FIXME: this is supposed to help --out-xml option, but we don't
          # implement that now, and anyway, we should handle it in Python,
          # not but putting variables on bjam-level targets.
          bjam.call("set-target-variable", actual_targets, ".action", repr(self))
  
          self.manager_.engine ().set_update_action (self.action_name_, actual_targets, self.actual_sources_,
                                                     properties)
  
          # Since we set up creating action here, we also set up
          # action for cleaning up
          self.manager_.engine ().set_update_action ('common.Clean', 'clean-all',
                                                     actual_targets)
  
          return actual_targets
docs: Generates actual build instructions.