• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!@EXENAME@
2# -*- python -*-
3
4# Keep this script in sync with python-config.sh.in
5
6import getopt
7import os
8import sys
9import sysconfig
10
11valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
12              'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir',
13              'embed']
14
15def exit_with_usage(code=1):
16    print("Usage: {0} [{1}]".format(
17        sys.argv[0], '|'.join('--'+opt for opt in valid_opts)), file=sys.stderr)
18    sys.exit(code)
19
20try:
21    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
22except getopt.error:
23    exit_with_usage()
24
25if not opts:
26    exit_with_usage()
27
28getvar = sysconfig.get_config_var
29pyver = getvar('VERSION')
30
31opt_flags = [flag for (flag, val) in opts]
32
33if '--help' in opt_flags:
34    exit_with_usage(code=0)
35
36for opt in opt_flags:
37    if opt == '--prefix':
38        print(getvar('prefix'))
39
40    elif opt == '--exec-prefix':
41        print(getvar('exec_prefix'))
42
43    elif opt in ('--includes', '--cflags'):
44        flags = ['-I' + sysconfig.get_path('include'),
45                 '-I' + sysconfig.get_path('platinclude')]
46        if opt == '--cflags':
47            flags.extend(getvar('CFLAGS').split())
48        print(' '.join(flags))
49
50    elif opt in ('--libs', '--ldflags'):
51        libs = []
52        if '--embed' in opt_flags:
53            libs.append('-lpython' + pyver + sys.abiflags)
54        else:
55            libpython = getvar('LIBPYTHON')
56            if libpython:
57                libs.append(libpython)
58        libs.extend(getvar('LIBS').split() + getvar('SYSLIBS').split())
59
60        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
61        # shared library in prefix/lib/.
62        if opt == '--ldflags':
63            if not getvar('Py_ENABLE_SHARED'):
64                libs.insert(0, '-L' + getvar('LIBPL'))
65        print(' '.join(libs))
66
67    elif opt == '--extension-suffix':
68        print(getvar('EXT_SUFFIX'))
69
70    elif opt == '--abiflags':
71        print(sys.abiflags)
72
73    elif opt == '--configdir':
74        print(getvar('LIBPL'))
75