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