# 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 ;)"""
     )

@@ -850,14 +850,8 @@
     
-apply(
 _Ext
@@ -865,18 +865,16 @@
 __init__
-, 
 (self, n
@@ -885,19 +885,20 @@
  sources
-)
 , 
+**
 kwargs)%0A
@@ -2178,26 +2178,8 @@
 e):%0A
-    import string%0A
     
@@ -2201,13 +2201,11 @@
 SSL.
-%25s
 ' 
-%25
++
  nam
@@ -2230,88 +2230,72 @@
 s()%5B
-'%25s_src' %25 string.lower(name)%5D%0A    dep = globals()%5B'%25s_dep' %25 string.lower(name)
+name.lower() + '_src'%5D%0A    dep = globals()%5Bname.lower() + '_dep'
 %5D%0A  

Remove some anachronisms