Re: Python recompile
bart <[email protected]>
| Newsgroups | comp.lang.c,comp.lang.python |
|---|---|
| Organization | A noiseless patient Spider |
| Message-ID | <[email protected]> |
On 07/03/2025 21:26, Lawrence D'Oliveiro wrote: > On Thu, 6 Mar 2025 19:21:45 -0000 (UTC), Waldek Hebisch wrote: > >> Per platform Makefile-s do not scale when one wants to support multiple >> system and multiple configurations (there is exponential growth of >> possible combinations). And even of single configuration for supposedly >> single system like Linux there are troubles. >> In one project there was someting like 20 Makefile.linux_x files where x >> represented one Linux flavour. Yet regularly somebody would come and >> say: "build fails on my Linux x.y.z". If enough information was >> provided new Makefile was added, or possibly some similar Makefile was >> modified to cover more cases. > > Can you offer more details on the project in question? I ask because > there are things that can be done in GNU Makefiles to deal more > dynamically with environmental differences in some simpler cases, > without resorting to a full-on meta-build system like Autotools or > CMake, and perhaps the maintainers of this project aren’t aware of > that. > > Here’s a simple example, building an extension module for Python: > > CFLAGS=-g $(shell python3-config --includes) -fPIC -Wall -Wno-switch -Wno-parentheses > > gxscript_lexer.so : gxscript_lexer.o > $(CC) $^ $(shell python3-config --ldflags) -shared -o $@ > > gxscript_lexer.o : gxscript_lexer.c > > clean : > rm -f gxscript_lexer.so gxscript_lexer.o > rm -rf __pycache__ > > .PHONY : clean > > Note how it uses the “python3-config” command to figure out the right > flags (including file/directory locations) for compilation and > linking. So it doesn’t have to know that the libraries are in /usr/lib > on one system, and /usr/local/lib on another. So how does 'python3-config' know where this stuff is?