1 # Program to fetch python compilation parameters.
2 # Copied from python-config of the 2.7 release.
7 from distutils
import sysconfig
9 valid_opts
= ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
12 def exit_with_usage(code
=1):
13 print >>sys
.stderr
, "Usage: %s [%s]" % (sys
.argv
[0],
14 '|'.join('--'+opt
for opt
in valid_opts
))
18 opts
, args
= getopt
.getopt(sys
.argv
[1:], '', valid_opts
)
25 pyver
= sysconfig
.get_config_var('VERSION')
26 getvar
= sysconfig
.get_config_var
28 opt_flags
= [flag
for (flag
, val
) in opts
]
30 if '--help' in opt_flags
:
31 exit_with_usage(code
=0)
33 def to_unix_path(path
):
34 """On Windows, returns the given path with all backslashes
35 converted into forward slashes. This is to help prevent problems
36 when using the paths returned by this script with cygwin tools.
37 In particular, cygwin bash treats backslashes as a special character.
39 On Unix systems, returns the path unchanged.
42 path
= path
.replace('\\', '/')
47 print to_unix_path(sysconfig
.PREFIX
)
49 elif opt
== '--exec-prefix':
50 print to_unix_path(sysconfig
.EXEC_PREFIX
)
52 elif opt
in ('--includes', '--cflags'):
53 flags
= ['-I' + sysconfig
.get_python_inc(),
54 '-I' + sysconfig
.get_python_inc(plat_specific
=True)]
56 flags
.extend(getvar('CFLAGS').split())
57 print to_unix_path(' '.join(flags
))
59 elif opt
in ('--libs', '--ldflags'):
61 if getvar('LIBS') is not None:
62 libs
.extend(getvar('LIBS').split())
63 if getvar('SYSLIBS') is not None:
64 libs
.extend(getvar('SYSLIBS').split())
65 libs
.append('-lpython'+pyver
)
66 # add the prefix/lib/pythonX.Y/config dir, but only if there is no
67 # shared library in prefix/lib/.
68 if opt
== '--ldflags':
69 if not getvar('Py_ENABLE_SHARED'):
70 if getvar('LIBPL') is not None:
71 libs
.insert(0, '-L' + getvar('LIBPL'))
73 libs
.insert(0, '-L' + sysconfig
.PREFIX
+ '/libs')
74 if getvar('LINKFORSHARED') is not None:
75 libs
.extend(getvar('LINKFORSHARED').split())
76 print to_unix_path(' '.join(libs
))