Home | History | Annotate | Download | only in Misc
      1 #!@EXENAME@
      2 
      3 import sys
      4 import os
      5 import getopt
      6 from distutils import sysconfig
      7 
      8 valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
      9               'ldflags', 'help']
     10 
     11 def exit_with_usage(code=1):
     12     print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
     13                                             '|'.join('--'+opt for opt in valid_opts))
     14     sys.exit(code)
     15 
     16 try:
     17     opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
     18 except getopt.error:
     19     exit_with_usage()
     20 
     21 if not opts:
     22     exit_with_usage()
     23 
     24 pyver = sysconfig.get_config_var('VERSION')
     25 getvar = sysconfig.get_config_var
     26 
     27 opt_flags = [flag for (flag, val) in opts]
     28 
     29 if '--help' in opt_flags:
     30     exit_with_usage(code=0)
     31 
     32 for opt in opt_flags:
     33     if opt == '--prefix':
     34         print sysconfig.PREFIX
     35 
     36     elif opt == '--exec-prefix':
     37         print sysconfig.EXEC_PREFIX
     38 
     39     elif opt in ('--includes', '--cflags'):
     40         flags = ['-I' + sysconfig.get_python_inc(),
     41                  '-I' + sysconfig.get_python_inc(plat_specific=True)]
     42         if opt == '--cflags':
     43             flags.extend(getvar('CFLAGS').split())
     44         print ' '.join(flags)
     45 
     46     elif opt in ('--libs', '--ldflags'):
     47         libs = ['-lpython' + pyver]
     48         libs += getvar('LIBS').split()
     49         libs += getvar('SYSLIBS').split()
     50         # add the prefix/lib/pythonX.Y/config dir, but only if there is no
     51         # shared library in prefix/lib/.
     52         if opt == '--ldflags':
     53             if not getvar('Py_ENABLE_SHARED'):
     54                 libs.insert(0, '-L' + getvar('LIBPL'))
     55             if not getvar('PYTHONFRAMEWORK'):
     56                 libs.extend(getvar('LINKFORSHARED').split())
     57         print ' '.join(libs)
     58 
     59