| 1 | #!/usr/bin/python | 
|---|
| 2 |  | 
|---|
| 3 | from distutils.core import setup | 
|---|
| 4 | from distutils.extension import Extension | 
|---|
| 5 | from Cython.Distutils import build_ext | 
|---|
| 6 | import sys | 
|---|
| 7 | import os | 
|---|
| 8 |  | 
|---|
| 9 | for root in ['/Library/OpenAFS/Tools', | 
|---|
| 10 |              '/usr/local', | 
|---|
| 11 |              '/usr/afsws', | 
|---|
| 12 |              '/usr']: | 
|---|
| 13 |     if os.path.exists('%s/include/afs/afs.h' % root): | 
|---|
| 14 |         break | 
|---|
| 15 |  | 
|---|
| 16 | include_dirs = [os.path.join(os.path.dirname(__file__), 'afs'), | 
|---|
| 17 |                 '%s/include' % root] | 
|---|
| 18 | library_dirs = ['%s/lib' % root, | 
|---|
| 19 |                 '%s/lib/afs' % root] | 
|---|
| 20 | if os.path.exists('%s/lib/libafsauthent_pic.a' % root): | 
|---|
| 21 |     suffix = '_pic' | 
|---|
| 22 | else: | 
|---|
| 23 |     suffix = '' | 
|---|
| 24 | libraries = ['afsauthent%s' % suffix, 'afsrpc%s' % suffix, 'resolv'] | 
|---|
| 25 | define_macros = [('AFS_PTHREAD_ENV', None)] | 
|---|
| 26 |  | 
|---|
| 27 | def PyAFSExtension(module, *args, **kwargs): | 
|---|
| 28 |     kwargs.setdefault('libraries', []).extend(libraries) | 
|---|
| 29 |     kwargs.setdefault('include_dirs', []).extend(include_dirs) | 
|---|
| 30 |     kwargs.setdefault('library_dirs', []).extend(library_dirs) | 
|---|
| 31 |     kwargs.setdefault('define_macros', []).extend(define_macros) | 
|---|
| 32 |     return Extension(module, | 
|---|
| 33 |                      ["%s.pyx" % module.replace('.', '/')], | 
|---|
| 34 |                      *args, | 
|---|
| 35 |                      **kwargs) | 
|---|
| 36 |  | 
|---|
| 37 | setup( | 
|---|
| 38 |     name="PyAFS", | 
|---|
| 39 |     version="0.1.1", | 
|---|
| 40 |     description="PyAFS - Python bindings for AFS", | 
|---|
| 41 |     author="Evan Broder", | 
|---|
| 42 |     author_email="broder@mit.edu", | 
|---|
| 43 |     url="http://github.com/ebroder/pyafs/", | 
|---|
| 44 |     license="GPL", | 
|---|
| 45 |     requires=['Cython'], | 
|---|
| 46 |     packages=['afs', 'afs.tests'], | 
|---|
| 47 |     ext_modules=[ | 
|---|
| 48 |         PyAFSExtension("afs._util"), | 
|---|
| 49 |         PyAFSExtension("afs._acl"), | 
|---|
| 50 |         PyAFSExtension("afs._fs"), | 
|---|
| 51 |         PyAFSExtension("afs._pts", libraries=['krb5']), | 
|---|
| 52 |         ], | 
|---|
| 53 |     cmdclass= {"build_ext": build_ext} | 
|---|
| 54 | ) | 
|---|