python-config has the following non-trivial code for discovery of cflags/ldflags, which should be callable as a sysconfig API instead: elif opt in ('--includes', '--cflags'): flags = ['-I' + sysconfig.get_path('include'), '-I' + sysconfig.get_path('platinclude')] 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 + sys.abiflags) # 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)) Also, it begs the question why distutils doesn't use the same code in its compiler class, or even in customize_compiler()...
+1 on the request. I don’t think it can go in 3.2, though. I’ll propose a patch, this will let me learn more about the flags. > Also, it begs the question why distutils doesn't use the same code in > its compiler class, or even in customize_compiler()... Certainly because distutils pre-dates python-config. In packaging, we should certainly use sysconfig functions.