X-Git-Url: https://repo.jachan.dev/binutils.git/blobdiff_plain/ec685c5ecafd5bf8876d332a0eb17f206c8d733a..94c8b7253a5e165ee92f7302f3247764d69b55e5:/gdb/python/python-config.py diff --git a/gdb/python/python-config.py b/gdb/python/python-config.py index 285a227042..3e60b86a6f 100644 --- a/gdb/python/python-config.py +++ b/gdb/python/python-config.py @@ -1,17 +1,17 @@ # Program to fetch python compilation parameters. -# Copied from python-config of the 2.6.5 release. +# Copied from python-config of the 2.7 release. import sys 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], - '|'.join('--'+opt for opt in valid_opts)) + sys.stderr.write ("Usage: %s [%s]\n" % (sys.argv[0], + '|'.join('--'+opt for opt in valid_opts))) sys.exit(code) try: @@ -22,33 +22,56 @@ except getopt.error: if not opts: exit_with_usage() -opt = opts[0][0] - pyver = sysconfig.get_config_var('VERSION') getvar = sysconfig.get_config_var +abiflags = getattr (sys, "abiflags", "") + +opt_flags = [flag for (flag, val) in opts] + +if '--help' in opt_flags: + exit_with_usage(code=0) + +def to_unix_path(path): + """On Windows, returns the given path with all backslashes + converted into forward slashes. This is to help prevent problems + when using the paths returned by this script with cygwin tools. + In particular, cygwin bash treats backslashes as a special character. + + On Unix systems, returns the path unchanged. + """ + if os.name == 'nt': + path = path.replace('\\', '/') + return path + +for opt in opt_flags: + if opt == '--prefix': + print (to_unix_path(sysconfig.PREFIX)) + + elif opt == '--exec-prefix': + print (to_unix_path(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 (to_unix_path(' '.join(flags))) -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) + elif opt in ('--libs', '--ldflags'): + libs = ['-lpython' + pyver + abiflags] + if getvar('LIBS') is not None: + libs.extend(getvar('LIBS').split()) + if getvar('SYSLIBS') is not None: + libs.extend(getvar('SYSLIBS').split()) + # 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'): + if getvar('LIBPL') is not None: + libs.insert(0, '-L' + getvar('LIBPL')) + elif os.name == 'nt': + libs.insert(0, '-L' + sysconfig.PREFIX + '/libs') + if getvar('LINKFORSHARED') is not None: + libs.extend(getvar('LINKFORSHARED').split()) + print (to_unix_path(' '.join(libs)))