X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-afs.git/blobdiff_plain/0a84865f183dcecb5711250a1a96fa18ad5d3125..41165a6d2c880400afc4b04700d05bd3fa537a42:/setup.py?ds=sidebyside diff --git a/setup.py b/setup.py index 2a66b67..47cf789 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/python -from setuptools import setup, find_packages +from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext import sys @@ -17,22 +17,22 @@ include_dirs = [os.path.join(os.path.dirname(__file__), 'afs'), '%s/include' % root] library_dirs = ['%s/lib' % root, '%s/lib/afs' % root] -libraries = ['bos', 'volser', 'vldb', 'afsrpc', 'afsauthent', 'cmd', 'usd', - 'audit', 'util', - 'util', 'afsrpc', 'util', - 'util', 'afsauthent', 'util', - 'resolv'] -extra_objects = [] -define_macros = [('AfS_PTHREAD_ENV', None)] +if os.path.exists('%s/lib/libafsauthent_pic.a' % root): + suffix = '_pic' +else: + suffix = '' +libraries = ['afsauthent%s' % suffix, 'afsrpc%s' % suffix, 'resolv'] +define_macros = [('AFS_PTHREAD_ENV', None)] -for i, l in enumerate(libraries): - if l in ('util', 'vlib') and \ - not os.path.exists('%s/lib/afs/lib%s.a' % (root, l)): - libraries.pop(i) - extra_objects.append('%s/lib/afs/%s.a' % (root, l)) - elif l == 'com_err': - libraries.pop(i) - extra_objects.append('%s/lib/afs/libcom_err.a') +def PyAFSExtension(module, *args, **kwargs): + kwargs.setdefault('libraries', []).extend(libraries) + kwargs.setdefault('include_dirs', []).extend(include_dirs) + kwargs.setdefault('library_dirs', []).extend(library_dirs) + kwargs.setdefault('define_macros', []).extend(define_macros) + return Extension(module, + ["%s.pyx" % module.replace('.', '/')], + *args, + **kwargs) setup( name="PyAFS", @@ -42,15 +42,12 @@ setup( author_email="broder@mit.edu", license="GPL", requires=['Cython'], - packages=find_packages(), + packages=['afs', 'afs.tests'], ext_modules=[ - Extension("afs._pts", - ["afs/_pts.pyx"], - libraries=libraries, - include_dirs=include_dirs, - library_dirs=library_dirs, - extra_objects=extra_objects, - define_macros=define_macros) + PyAFSExtension("afs._util"), + PyAFSExtension("afs._acl"), + PyAFSExtension("afs._fs"), + PyAFSExtension("afs._pts", libraries=['krb5']), ], cmdclass= {"build_ext": build_ext} )