From: Collin Winter Date: Fri, 19 Mar 2010 00:08:44 +0000 (+0000) Subject: Make python-config support multiple option flags on the same command line, rather... X-Git-Tag: v2.7b1~317 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a70f3496203cd68d88208a21d90f0ca3503aa2f6;p=python Make python-config support multiple option flags on the same command line, rather than requiring one invocation per flag. --- diff --git a/Misc/NEWS b/Misc/NEWS index 6adc89d7a2..95ff3495f6 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -82,6 +82,8 @@ Tools/Demos measures the number of UDP packets processed per second depending on the number of background CPU-bound Python threads. +- python-config now supports multiple options on the same command line. + Build ----- diff --git a/Misc/python-config.in b/Misc/python-config.in index 9ac44146d4..552bbd55fe 100644 --- a/Misc/python-config.in +++ b/Misc/python-config.in @@ -5,11 +5,11 @@ import os import getopt from distutils import sysconfig -valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', +valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', 'ldflags', 'help'] 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)) sys.exit(code) @@ -21,33 +21,36 @@ except getopt.error: if not opts: exit_with_usage() -opt = opts[0][0] - pyver = sysconfig.get_config_var('VERSION') getvar = sysconfig.get_config_var -if opt == '--help': - exit_with_usage(0) - -elif opt == '--prefix': - print sysconfig.PREFIX - -elif opt == '--exec-prefix': - print sysconfig.EXEC_PREFIX - -elif opt in ('--includes', '--cflags'): - flags = ['-I' + sysconfig.get_python_inc(), - '-I' + sysconfig.get_python_inc(plat_specific=True)] - if opt == '--cflags': - flags.extend(getvar('CFLAGS').split()) - print ' '.join(flags) - -elif opt in ('--libs', '--ldflags'): - libs = getvar('LIBS').split() + getvar('SYSLIBS').split() - libs.append('-lpython'+pyver) - # add the prefix/lib/pythonX.Y/config dir, but only if there is no - # shared library in prefix/lib/. - if opt == '--ldflags' and not getvar('Py_ENABLE_SHARED'): - libs.insert(0, '-L' + getvar('LIBPL')) - print ' '.join(libs) +opt_flags = [flag for (flag, val) in opts] + +if '--help' in opt_flags: + exit_with_usage(code=0) + +for opt in opt_flags: + if opt == '--prefix': + print sysconfig.PREFIX + + elif opt == '--exec-prefix': + print sysconfig.EXEC_PREFIX + + elif opt in ('--includes', '--cflags'): + flags = ['-I' + sysconfig.get_python_inc(), + '-I' + sysconfig.get_python_inc(plat_specific=True)] + if opt == '--cflags': + flags.extend(getvar('CFLAGS').split()) + print ' '.join(flags) + + elif opt in ('--libs', '--ldflags'): + libs = getvar('LIBS').split() + getvar('SYSLIBS').split() + libs.append('-lpython'+pyver) + # add the prefix/lib/pythonX.Y/config dir, but only if there is no + # 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)