tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: make: should -j affect cwd?
FWIW,
On Wed, Jan 18, 2012 at 10:22:47AM -0500, Mouse wrote:
>
> Well...I actually think the conceptual core of make - tsort on the
> dependency graph, pruning pieces of it based on mtimes, and running
> commands - is the easy part. I think the reason make has turned into a
> horror - to the extent it has, of course - is the ancillary facilities.
> .include, .if, .for, $(VARIABLE), $(VARIABLE:this:that:theother).... I
> think it is no coincidence that every issue I've had with NetBSD's
> make, all the code I've written for it, has been around these latter
> facilities. They are the least amenable to theoretical consideration,
> because the problem they are solving is difficult to codify
> theoretically - it is fundamentally a human-interface problem.
Since I had to allow compilation of big softwares (KerGIS and now
kerTeX) on different systems, I have designed a set of basic Bourne
Shell scripts to generate Makefiles to be interpreted by a POSIX make(1)
---that is the very core of make.
The bonus of this is Makefile skeletons that are probably the smallest
that one can think of. Cross-compilation. And, what I did want from the
very beginning: a framework that removes the intermediate objects once
the target is obtained (SAVE_SPACE option), so that I do not need more
and more gigabytes to compile things (I have now the obligation to make
room to be able to compile NetBSD, while I had enough before).
This result is called RISK (Reduced Instruction Set toolKit). [So, it
the implementation is debatable, at least there is one.]
What I mean is this: instead of rewriting make, why not develop scripts
à la RISK that offer the same features that make extensions offers, plus
new features (like my SAVE_SPACE option) and encourage people to rely,
for new programs, on this framework, leaving make(1) alone?
And this will do with NetBSD proper as well as for pkgsrc.
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Home |
Main Index |
Thread Index |
Old Index