docs: def autogen_envconfigs(config, envs):
      """Make the envconfigs for undeclared envs.
  
      This is a stripped-down version of parseini.__init__ made for making
      an envconfig.
      """
      prefix = 'tox' if config.toxinipath.basename == 'setup.cfg' else None
      reader = tox.config.SectionReader("tox", config._cfg, prefix=prefix)
      distshare_default = "{homedir}/.tox/distshare"
      reader.addsubstitutions(toxinidir=config.toxinidir,
                              homedir=config.homedir)
  
      reader.addsubstitutions(toxworkdir=config.toxworkdir)
      config.distdir = reader.getpath("distdir", "{toxworkdir}/dist")
      reader.addsubstitutions(distdir=config.distdir)
      config.distshare = reader.getpath("distshare", distshare_default)
      reader.addsubstitutions(distshare=config.distshare)
  
      try:
          make_envconfig = tox.config.ParseIni.make_envconfig  # tox 3.4.0+
      except AttributeError:
          make_envconfig = tox.config.parseini.make_envconfig
      # Dig past the unbound method in Python 2
      make_envconfig = getattr(make_envconfig, '__func__', make_envconfig)
  
      # Create the undeclared envs
      for env in envs:
          section = tox.config.testenvprefix + env
          config.envconfigs[env] = make_envconfig(
              config, env, section, reader._subs, config)