aboutsummaryrefslogtreecommitdiff
path: root/pow/pywrap/build.py
blob: 0160918f0ad2146d7c65b59d15d943da18ee253a (plain) (blame)
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
"""
Hack to build our Python wrapper.  Basic problem here is that we need
a bunch of arguments that were given to ./configure when Python itself
was built, and there appears to be no real consistancy about how
different unix-like distributions use the various parameters, so even
the standard python-config script is not smart enough to figure out
which arguments we need on every platform.  Feh.

This script is an attempt to pull the relevant information out of the
distutils.sysconfig module.  If I understood distutils better, I could
probably figure out some way to wrap this whole thing up nicely in the
distutils framework; if you understand how to do this, please do so
and send me the code.

As it is, this is a minimal hack to get the job done, and probably a
bit fragile.  Much of the code is taken from python-config.  If
there's any real documentation on how to do this sort of thing, I have
not found it yet.  YMMV.  Beware Of Dog.

$Id$
"""

import os, subprocess, sys

from distutils.sysconfig import (get_config_var as getvar,
                                 get_python_inc as getinc)

openssl_dir = os.path.realpath(os.path.join(os.getcwd(), "../../openssl/openssl"))

cmd = getvar("CC").split()

cmd.append("-o")
cmd.append("python")
cmd.append("python.c")

cmd.append("-Wl,-rpath,%s" % openssl_dir)
cmd.append("-L%s" % openssl_dir)
cmd.append("-lcrypto")
cmd.append("-lssl")

cmd.append("-I%s" % getinc(plat_specific = False))
cmd.append("-I%s" % getinc(plat_specific = True))

if not getvar("Py_ENABLE_SHARED"):
  cmd.append("-L%s" % getvar("LIBPL"))

for var in ("CFLAGS", "LIBS", "SYSLIBS", "LDFLAGS"):
  cmd.extend(getvar(var).split())

cmd.append("-lpython%s" % getvar("VERSION"))

print " ".join(cmd)

sys.exit(subprocess.call(cmd))