Sujet : Re: Python recompile
De : ldo (at) *nospam* nz.invalid (Lawrence D'Oliveiro)
Groupes : comp.lang.c comp.lang.pythonDate : 07. Mar 2025, 22:26:46
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vqfoam$3nnbq$4@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
User-Agent : Pan/0.162 (Pokrosvk)
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.