File setup.py of Package python-pysvn

"""
   This wrapper makes pysvn build/install process distutils compatible.
   Mikhail Terekhov <termim@gmail.com>
"""

from distutils.command.build_ext import build_ext as _build_ext
from distutils.core import setup, Extension
import sys, os, os.path, subprocess

class build_ext(_build_ext):
    def build_extension(self, ext):
        sources = ext.sources[0]
        fullname = self.get_ext_fullname(ext.name)
        modpath = fullname.split('.')
        package = '.'.join(modpath[:-1])
        base = modpath[-1]
        build_py = self.get_finalized_command('build_py')
        package_dir = build_py.get_package_dir(package)
        ext_filename = os.path.join(package_dir, self.get_ext_filename(base))
        outfile = os.path.join(self.build_lib, *modpath[:-1])
        outfile = os.path.join(outfile,self.get_ext_filename(base))
        sys.path.insert(0,sources)
        import setup as msetup
        curdir = os.path.abspath(os.curdir)
        try:
            os.chdir(sources)
            msetup.main(['','configure'])
            subprocess.call('make')
        finally:
            os.chdir(curdir)
            
        self.copy_file(ext_filename, outfile, preserve_mode=True)

docs = [os.path.join('Docs',x) for x in os.listdir('Docs')]
examples = [os.path.join('Examples/Client',x) for x in os.listdir('Examples/Client')]

setup(name='pysvn',
      version='1.0',
      url = 'http://pysvn.tigris.org/',
      author = 'Barry Scott',
      author_email = 'barryscott@tigris.org',
      description = "Highlevel and easy to use Python bindings to Subversion",
      long_description =
      "The pysvn project's goal is to enable Tools to be written in Python that use Subversion. "
      "Windows, Mac OS X, Linux and other unix platforms are supported.",
      
      cmdclass={'build_ext': build_ext},
      packages = ['pysvn'],
      package_dir = {'pysvn': 'Source/pysvn'},
      data_files = [('share/doc/packages/python-pysvn', docs),
                    ('share/doc/packages/python-pysvn/Examples/Client', examples)],
      ext_modules=[Extension('pysvn._pysvn_%d_%d' % sys.version_info[:2], ['Source']),],

      classifiers=[
      'License :: Apache License',
      'Development Status :: 5 - Production/Stable',
      'Programming Language :: Python',
      'Intended Audience :: Developers',
      'Operating System :: MacOS :: MacOS X',
      'Operating System :: Microsoft :: Windows',
      'Operating System :: POSIX',
      'Topic :: Software Development :: Version Control',
      ],
      )