Set a homepage for the module.
[invirt/packages/python-afs.git] / setup.py
index 2a66b67..3b7b0ea 100755 (executable)
--- 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,40 +17,38 @@ 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",
-    version="0.0.0",
+    version="0.1.0",
     description="PyAFS - Python bindings for AFS",
     author="Evan Broder",
     author_email="broder@mit.edu",
+    url="http://github.com/ebroder/pyafs/",
     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}
 )