(I hope I’m posting in the right section)
As with all old, large codebases it’s difficult to know the complete picture as an outsider, so pardon my ignorance if I’m bringing something up that was discussed and decided before. I couldn’t find any discussion related to this.
CPython has a build system which is a combination of autotools, a handwritten Makefile template and a ~2500 line setup.py script. On top of that, the Windows/MSVC build duplicates a big portion of this. For context: I’m bringing this up because I build CPython for a lot of different configurations (architectures X operating systems - around 18 total), with custom toolchains, dependencies, flags; and the assumptions in this build system make it more difficult than it should be. Very often this results in having to patch the build to accomplish something. There are build systems that allow customizing all that without modifying the build which is preferable. The volume of the code in the build system makes it very hard to approach and reason about the logic in it.
I think there is definitely room for improvement on this front and I was wondering if there is openness in the CPython project for revamping the build system (perhaps with CMake) - I would be happy to contribute.