4 ms·
It's hard to criticize their design decisions at the time. For instance, "m4" and "sh" were likely chosen because they exist on all systems, and "perl" and "py
by makecheck 16y ago
It's hard to criticize their design decisions at the time. For instance, "m4" and "sh" were likely chosen because they exist on all systems, and "perl" and "python" were not yet ubiquitous.
I have never seen "configure" work particularly badly, and I've had to build some pretty hairy, dependency-ridden crap on Linux, Solaris and Mac OS X. It has held up remarkably well, and many projects are good about providing useful "configure" options. Usually fixing something requires an environment variable or configure option, and not a makefile hack.
There is no question the generated code is practically indecipherable. But you have to treat it like a compiler; no one goes leafing through the ".o" that GCC generates on a regular basis, so why worry about what "autoconf" and "automake" produce? Like any widely-used tool (such as a compiler), you can put a fair amount of trust in the maintainers to not make anything too broken; and if you see a problem, you can file a bug report.
It is also somewhat reassuring that even if the generated result is wrong, it is at least theoretically possible to fix it; just try fixing something that goes wrong in Visual Studio.
I will allow that "m4" is showing its age, and these days it's a heck of a lot easier to Google some examples and adapt them, than it is to figure out how to add a custom rule from scratch. The big challenge for the GNU Build System is to create a modern version that makes new assumptions (e.g. "perl" always exists), and update their methods accordingly.
- mfukar 16y agoThere is no question the generated code is practically indecipherable. But you have to treat it like a compiler; no one goes leafing through the ".o" that GCC generates on a regular basis, so why worry about what "autoconf" and "automake" produce? Actually, object files are nothing but undecipherable. They are machine code, well documented by the architecture manuals and the ELF format. There are also tools to introspect them (objdump, ld, etc.), which, believe you me, is done on a regular basis by a lot of people.
- jacquesm 16y ago> no one goes leafing through the ".o" that GCC generates on a regular basis, Try the -S flag to the compiler, that way you don't need to 'leaf though the .o file' (you can't really leaf through it, it's not a text file, but an assembly source file is.
- nailer 16y ago> e.g. "perl" always exists It probably does, but most infrastructure software in both RHEL/Fedora and Ubuntu has been created in Python for nearly a decade now.