|
|
Subscribe / Log in / New account

Rejuvenating Autoconf

Rejuvenating Autoconf

Posted Oct 24, 2020 15:26 UTC (Sat) by khim (subscriber, #9252)
In reply to: Rejuvenating Autoconf by smurf
Parent article: Rejuvenating Autoconf

If you would look on the Linux kernel's build system then you would arrive at the correct conclusion: make doesn't scale at all.

Can you build Linux in Windows using native compiler? No.

Can you build kernel and include module developed by someone else, who doesn't even care Linux kernel exist? Nope.

And so on.

Make solves one problem and does it acceptably well: build the code for something where all sources are available and all code lives in a single repo and you control everything about your config.

That's how Unix (and it's descendants) are structured and thus it's not surprising Make alone works for them.

If you try to split your software into independent packages… Make stops working. You need something on top of make or you need something to replace make.


to post comments

Rejuvenating Autoconf

Posted Oct 24, 2020 16:43 UTC (Sat) by pizza (subscriber, #46) [Link]

> Can you build Linux in Windows using native compiler? No.

Why not? Linux is cross-compiled all the time; it's not "make" that's a problem here. Unless by "native" you mean a compiler that's not GCC, in which case that's because Linux expliticly requires GCC, not a five-year-old visual studio compiler or whatever.

> Can you build kernel and include module developed by someone else, who doesn't even care Linux kernel exist? Nope.

Why would "someone who doesn't even care Linux exists" develop a Linux kernel module? And how are their sins Make's fault?

> Make solves one problem and does it acceptably well: build the code for something where all sources are available and all code lives in a single repo and you control everything about your config.

So... how exactly are you supposed to build/compile/link/whatever something when you don't have everything you need to create the final output?

> If you try to split your software into independent packages… Make stops working. You need something on top of make or you need something to replace make.

At the end of the day, make is just a dependency resolver. It can only do what it's told. If you rip out a pile of your android app into a separate module, are you seriously trying to tell us that maven/gradle/whatever will just magically do the right thing without altering the build scripts in some way?

FFS.

Rejuvenating Autoconf

Posted Oct 25, 2020 9:35 UTC (Sun) by smurf (subscriber, #17840) [Link]

> Can you build Linux in Windows using native compiler? No.

In what way, pray tell, is that the "fault" of 'make'??

> Can you build kernel and include module developed by someone else, who doesn't even care Linux kernel exist? Nope.

Can you put a car engine into a train? Nope. That's hardly the fault of the program used to design the engine.

Nice try, but FAIL: next time please post real arguments instead of strawmen.

A possible succesor to make

Posted Oct 25, 2020 11:07 UTC (Sun) by jnxx (guest, #142729) [Link]

A solution which is equally powerful as make, is able to build from independent modular packages, can build correcyly and reliably in parallel, is appenwarrs redo:

https://github.com/apenwarr/redo

https://redo.readthedocs.io/en/latest/

Apart from that, it is extremely simple.

It is, however, not a solution that will make Linux/POSIX software automagically
run on Windows.

What I think is already a very, very good solution for defining dependencies
between packages, and building them from source, is GNU Guix.
It is really well done.

https://guix.gnu.org/

Again, Guix is not the solution to provide commercial software vendors
a kind of app store to distribute their binary closed-source licensed
stuff. However, it works breathtakingly well for defining
environments and developing in Linux environments.

I think it is probably often a solution where otherwise one
would need to set up a whole bunch of virtual machines.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds