#!/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
'%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",
- version="0.0.0",
+ version="0.1.0",
description="PyAFS - Python bindings for AFS",
author="Evan Broder",
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}
)