Kaydet (Commit) a70f3496 authored tarafından Collin Winter's avatar Collin Winter

Make python-config support multiple option flags on the same command line,…

Make python-config support multiple option flags on the same command line, rather than requiring one invocation per flag.
üst 00dd3f51
...@@ -82,6 +82,8 @@ Tools/Demos ...@@ -82,6 +82,8 @@ Tools/Demos
measures the number of UDP packets processed per second depending on the measures the number of UDP packets processed per second depending on the
number of background CPU-bound Python threads. number of background CPU-bound Python threads.
- python-config now supports multiple options on the same command line.
Build Build
----- -----
......
...@@ -5,11 +5,11 @@ import os ...@@ -5,11 +5,11 @@ import os
import getopt import getopt
from distutils import sysconfig from distutils import sysconfig
valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
'ldflags', 'help'] 'ldflags', 'help']
def exit_with_usage(code=1): def exit_with_usage(code=1):
print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0], print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
'|'.join('--'+opt for opt in valid_opts)) '|'.join('--'+opt for opt in valid_opts))
sys.exit(code) sys.exit(code)
...@@ -21,33 +21,36 @@ except getopt.error: ...@@ -21,33 +21,36 @@ except getopt.error:
if not opts: if not opts:
exit_with_usage() exit_with_usage()
opt = opts[0][0]
pyver = sysconfig.get_config_var('VERSION') pyver = sysconfig.get_config_var('VERSION')
getvar = sysconfig.get_config_var getvar = sysconfig.get_config_var
if opt == '--help': opt_flags = [flag for (flag, val) in opts]
exit_with_usage(0)
if '--help' in opt_flags:
elif opt == '--prefix': exit_with_usage(code=0)
print sysconfig.PREFIX
for opt in opt_flags:
elif opt == '--exec-prefix': if opt == '--prefix':
print sysconfig.EXEC_PREFIX print sysconfig.PREFIX
elif opt in ('--includes', '--cflags'): elif opt == '--exec-prefix':
flags = ['-I' + sysconfig.get_python_inc(), print sysconfig.EXEC_PREFIX
'-I' + sysconfig.get_python_inc(plat_specific=True)]
if opt == '--cflags': elif opt in ('--includes', '--cflags'):
flags.extend(getvar('CFLAGS').split()) flags = ['-I' + sysconfig.get_python_inc(),
print ' '.join(flags) '-I' + sysconfig.get_python_inc(plat_specific=True)]
if opt == '--cflags':
elif opt in ('--libs', '--ldflags'): flags.extend(getvar('CFLAGS').split())
libs = getvar('LIBS').split() + getvar('SYSLIBS').split() print ' '.join(flags)
libs.append('-lpython'+pyver)
# add the prefix/lib/pythonX.Y/config dir, but only if there is no elif opt in ('--libs', '--ldflags'):
# shared library in prefix/lib/. libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
if opt == '--ldflags' and not getvar('Py_ENABLE_SHARED'): libs.append('-lpython'+pyver)
libs.insert(0, '-L' + getvar('LIBPL')) # add the prefix/lib/pythonX.Y/config dir, but only if there is no
print ' '.join(libs) # shared library in prefix/lib/.
if opt == '--ldflags':
if not getvar('Py_ENABLE_SHARED'):
libs.insert(0, '-L' + getvar('LIBPL'))
libs.extend(getvar('LINKFORSHARED').split())
print ' '.join(libs)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment