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