~myers-1/pyopenssl/npn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
.. _building:

Building and Installing
=======================

These instructions can also be found in the file ``INSTALL``.

I have tested this on Debian Linux systems (woody and sid), Solaris 2.6 and
2.7. Others have successfully compiled it on Windows and NT.

.. _building-unix:

Building the Module on a Unix System
------------------------------------

pyOpenSSL uses distutils, so there really shouldn't be any problems. To build
the library::

    python setup.py build

If your OpenSSL header files aren't in ``/usr/include``, you may need to supply
the ``-I`` flag to let the setup script know where to look. The same goes for
the libraries of course, use the ``-L`` flag. Note that ``build`` won't accept
these flags, so you have to run first ``build_ext`` and then ``build``!
Example::

    python setup.py build_ext -I/usr/local/ssl/include -L/usr/local/ssl/lib
    python setup.py build

Now you should have a directory called ``OpenSSL`` that contains e.g.
``SSL.so`` and ``__init__.py`` somewhere in the build dicrectory,
so just::

    python setup.py install

If you, for some arcane reason, don't want the module to appear in the
``site-packages`` directory, use the ``--prefix`` option.

You can, of course, do::

    python setup.py --help

to find out more about how to use the script.

.. _building-windows:

Building the Module on a Windows System
---------------------------------------

Big thanks to Itamar Shtull-Trauring and Oleg Orlov for their help with
Windows build instructions.  Same as for Unix systems, we have to separate
the ``build_ext`` and the ``build``.

Building the library::

    setup.py build_ext -I ...\openssl\inc32 -L ...\openssl\out32dll
    setup.py build

Where ``...\openssl`` is of course the location of your OpenSSL installation.

Installation is the same as for Unix systems::

    setup.py install

And similarily, you can do::

    setup.py --help

to get more information.