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 | ) |
---|