Mask range.unit with 0xff when determining the unit.
[pycomedi.git] / setup.py
index b60ce7757a8fdf7a661bfe5a4f185a18982032b9..98f5b1123ef0275b9959e59c0dce6f453a66bd8c 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,14 +1,33 @@
-"""PyComedi: an object-oriented interface for the Comedi drivers.
+# Copyright (C) 2008-2012 W. Trevor King <wking@drexel.edu>
+#
+# This file is part of pycomedi.
+#
+# pycomedi is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 2 of the License, or (at your option) any later
+# version.
+#
+# pycomedi is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# pycomedi.  If not, see <http://www.gnu.org/licenses/>.
 
-Requires
-  * Numpy  (http://numpy.scipy.org/)
-  * Comedi (http://www.comedi.org/)
-"""
+"An object-oriented interface for the Comedi drivers."
 
 from distutils.core import setup
+from distutils.extension import Extension
+import os
+import os.path
+
+from Cython.Distutils import build_ext
+import numpy
 
 from pycomedi import __version__
 
+
+package_name = 'pycomedi'
 classifiers = """\
 Development Status :: 2 - Pre-Alpha
 Intended Audience :: Developers
@@ -21,20 +40,34 @@ Topic :: Scientific/Engineering
 Topic :: Software Development :: Libraries :: Python Modules
 """
 
-doclines = __doc__.split('\n')
+_this_dir = os.path.dirname(__file__)
 
+ext_modules = []
+for filename in sorted(os.listdir(package_name)):
+    basename,extension = os.path.splitext(filename)
+    if extension == '.pyx':
+        ext_modules.append(
+            Extension(
+                '%s.%s' % (package_name, basename),
+                [os.path.join(package_name, filename)],
+                libraries=['comedi'],
+                include_dirs=[numpy.get_include()],
+                ))
 
-setup(name='pycomedi',
+setup(name=package_name,
       version=__version__,
       maintainer='W. Trevor King',
       maintainer_email='wking@drexel.edu',
-      url='http://www.physics.drexel.edu/~wking/unfolding-disasters/pycomedi/',
-      download_url='http://www.physics.drexel.edu/~wking/code/python/pycomedi-%s.tar.gz' % __version__,
+      url='http://blog.tremily.us/posts/{}/'.format(package_name),
+      download_url='http://git.tremily.us/?p={}.git;a=snapshot;h={};sf=tgz'.format(
+        package_name, __version__),
       license='GNU General Public License (GPL)',
       platforms=['all'],
-      description=doclines[0],
-      long_description='\n'.join(doclines[2:]),
+      description=__doc__,
+      long_description=open(os.path.join(_this_dir, 'README'), 'r').read(),
       classifiers=filter(None, classifiers.split('\n')),
-      packages=['pycomedi'],
-      provides=['pycomedi'],
+      packages=[package_name],
+      provides=[package_name],
+      cmdclass = {'build_ext': build_ext},
+      ext_modules = ext_modules,
       )