code: def actualize (self, scanner = None):
          
          if __debug__:
              from .scanner import Scanner
              assert scanner is None or isinstance(scanner, Scanner)
          actual_name = self.actualize_no_scanner ()
  
          if self.always_:
              bjam.call("ALWAYS", actual_name)
  
          if not scanner:
              return actual_name
  
          else:
              # Add the scanner instance to the grist for name.
              g = '-'.join ([ungrist(get_grist(actual_name)), str(id(scanner))])
  
              name = replace_grist (actual_name, '<' + g + '>')
  
              if name not in self.made_:
                  self.made_ [name] = True
  
                  self.project_.manager ().engine ().add_dependency (name, actual_name)
  
                  self.actualize_location (name)
  
                  self.project_.manager ().scanners ().install (scanner, name, str (self))
  
              return name
docs: Generates all the actual targets and sets up build actions for
              this target.
  
              If 'scanner' is specified, creates an additional target
              with the same location as actual target, which will depend on the
              actual target and be associated with 'scanner'. That additional
              target is returned. See the docs (#dependency_scanning) for rationale.
              Target must correspond to a file if 'scanner' is specified.
  
              If scanner is not specified, then actual target is returned.