docs: def MakeExecutableTemplate(self, output_file=None):
      """Create the executable template.
  
      The client is built in two phases. First an executable template is created
      with the client binaries contained inside a zip file. Then the installation
      package is created by appending the SFX extractor to this template and
      writing a config file into the zip file.  This technique allows the
      client build to be carried out once on the supported platform (e.g.
      windows with MSVS), but the deployable installer can be build on any
      platform which supports python.  Subclasses for each OS do the actual
      work, we just make sure the output directory is set up correctly here.
  
      Args:
        output_file: string filename where we will write the template.
      """
      self.template_file = output_file or config.CONFIG.Get(
          "ClientBuilder.template_path", context=self.context)
      utils.EnsureDirExists(os.path.dirname(self.template_file))