'Add all the default files to self.filelist:
- README or README.txt
- setup.py
- test/test*.py
- all pure Python modules mentioned in setup script
- all files pointed by package_data (build_py)
- all files defined in data_files.
- all files defined as scripts.
- all C sources listed as part of extensions or C libraries
in the setup script (doesn\'t catch C headers!)
Warns if (README or README.txt) or setup.py are missing; everything
else is optional.'

def add_defaults(self):

    standards = [('README', 'README.txt'), self.distribution.script_name]
    for fn in standards:
        if isinstance(fn, tuple):
            alts = fn
            got_it = False
            for fn in alts:
                if os.path.exists(fn):
                    got_it = True
                    self.filelist.append(fn)
                    break
            if (not got_it):
                self.warn(('standard    file    not    found:    should    have    one    of    ' + ',    '.join(alts)))
        elif os.path.exists(fn):
            self.filelist.append(fn)
        else:
            self.warn(("standard    file    '%s'    not    found" % fn))
    optional = ['test/test*.py', 'setup.cfg']
    for pattern in optional:
        files = filter(os.path.isfile, glob(pattern))
        self.filelist.extend(files)
    build_py = self.get_finalized_command('build_py')
    if self.distribution.has_pure_modules():
        self.filelist.extend(build_py.get_source_files())
    for (pkg, src_dir, build_dir, filenames) in build_py.data_files:
        for filename in filenames:
            self.filelist.append(os.path.join(src_dir, filename))
    if self.distribution.has_data_files():
        for item in self.distribution.data_files:
            if isinstance(item, str):
                item = convert_path(item)
                if os.path.isfile(item):
                    self.filelist.append(item)
            else:
                (dirname, filenames) = item
                for f in filenames:
                    f = convert_path(f)
                    if os.path.isfile(f):
                        self.filelist.append(f)
    if self.distribution.has_ext_modules():
        build_ext = self.get_finalized_command('build_ext')
        self.filelist.extend(build_ext.get_source_files())
    if self.distribution.has_c_libraries():
        build_clib = self.get_finalized_command('build_clib')
        self.filelist.extend(build_clib.get_source_files())
    if self.distribution.has_scripts():
        build_scripts = self.get_finalized_command('build_scripts')
        self.filelist.extend(build_scripts.get_source_files())
