summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..509c28d
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,90 @@
+# vim:fileencoding=UTF-8
+#
+# setup.py
+#
+# Copyright (C) AB Strakt 2001, All rights reserved
+#
+# @(#) $Id: setup.py,v 1.28 2004/08/10 10:59:01 martin Exp $
+#
+"""
+Installation script for the OpenSSL module
+"""
+
+from distutils.core import setup, Extension
+import os, sys
+
+from version import __version__
+
+# A hack to determine if Extension objects support the depends keyword arg.
+try:
+ init_func = Extension.__init__.func_code
+ has_dep = 'depends' in init_func.co_varnames
+except:
+ has_dep = 0
+if not has_dep:
+ # If it doesn't, create a local replacement that removes depends
+ # from the kwargs before calling the regular constructor.
+ _Extension = Extension
+ class Extension(_Extension):
+ def __init__(self, name, sources, **kwargs):
+ if kwargs.has_key('depends'):
+ del kwargs['depends']
+ apply(_Extension.__init__, (self, name, sources), kwargs)
+
+
+crypto_src = ['src/crypto/crypto.c', 'src/crypto/x509.c',
+ 'src/crypto/x509name.c', 'src/crypto/pkey.c',
+ 'src/crypto/x509store.c', 'src/crypto/x509req.c',
+ 'src/crypto/x509ext.c', 'src/crypto/pkcs7.c',
+ 'src/crypto/pkcs12.c', 'src/crypto/netscape_spki.c',
+ 'src/util.c']
+crypto_dep = ['src/crypto/crypto.h', 'src/crypto/x509.h',
+ 'src/crypto/x509name.h', 'src/crypto/pkey.h',
+ 'src/crypto/x509store.h', 'src/crypto/x509req.h',
+ 'src/crypto/x509ext.h', 'src/crypto/pkcs7.h',
+ 'src/crypto/pkcs12.h', 'src/crypto/netscape_spki.h',
+ 'src/util.h']
+rand_src = ['src/rand/rand.c', 'src/util.c']
+rand_dep = ['src/util.h']
+ssl_src = ['src/ssl/connection.c', 'src/ssl/context.c', 'src/ssl/ssl.c',
+ 'src/util.c']
+ssl_dep = ['src/ssl/connection.h', 'src/ssl/context.h', 'src/ssl/ssl.h',
+ 'src/util.h']
+
+IncludeDirs = None
+LibraryDirs = None
+
+# Add more platforms here when needed
+if os.name == 'nt' or sys.platform == 'win32':
+ Libraries = ['libeay32', 'ssleay32', 'Ws2_32']
+else:
+ Libraries = ['ssl', 'crypto']
+
+if sys.platform == 'darwin':
+ IncludeDirs = ['/sw/include']
+ LibraryDirs = ['/sw/lib']
+
+def mkExtension(name):
+ import string
+ modname = 'OpenSSL.%s' % name
+ src = globals()['%s_src' % string.lower(name)]
+ dep = globals()['%s_dep' % string.lower(name)]
+ return Extension(modname, src, libraries=Libraries, depends=dep,
+ include_dirs=IncludeDirs, library_dirs=LibraryDirs)
+
+setup(name='pyOpenSSL', version=__version__,
+ package_dir = { 'OpenSSL': '.' },
+ ext_modules = [mkExtension('crypto'), mkExtension('rand'), mkExtension('SSL')],
+ py_modules = ['OpenSSL.__init__', 'OpenSSL.tsafe', 'OpenSSL.version'],
+ description = 'Python wrapper module around the OpenSSL library',
+ author = 'Martin Sjögren, AB Strakt', author_email = 'msjogren@gmail.com',
+ url = 'http://pyopenssl.sourceforge.net/',
+ license = 'LGPL',
+ long_description = """\
+High-level wrapper around a subset of the OpenSSL library, includes
+ * SSL.Connection objects, wrapping the methods of Python's portable
+ sockets
+ * Callbacks written in Python
+ * Extensive error-handling mechanism, mirroring OpenSSL's error codes
+... and much more ;)"""
+ )