Stripping down GNU make
After reading Thomas' rant about automake 1.10 rejecting GNU-makeism in its script I wondered if it wouldn't possible to ship GNU make with all tarballs, instead of all the autotools crap. So I did some experiments this morning.
Raw GNU make 3.81 as distributed by the FSF requires 1.1 MB. After unpacking 6.4 MB of disk space are used:
576 config/
1052 doc/
140 glob/
2028 po/
556 tests/
168 w32/
2080 .
Considering the goal of distributing GNU make with each of your tarballs, quite alot of space is used by non-essential stuff like unit tests, documentation and translations. Removing the doc, po and tests folder produces a much smaller tarball:
-rw-r--r-- 1 mathias mathias 541323 2007-07-02 07:50 make-3.81.tar.bz2
That's already smaller than the configure script shipped with make 3.81 (takes 456k) and the m4 macros used to generated it (576k). Encouraged by this, I became even more radical - I removed the autoconf stuff:
-rw-r--r-- 1 mathias mathias 364566 2007-07-02 07:53 make-3.81.tar.bz2
Well, but this steps leaves you without any platform detection for the build system. So some replacement would be needed. Tried with bulldozer some time ago, by injecting pre-conditions and checks as rules into my GNUmakefile. Worked with few code. Maybe worth to start a library of GNU make based platform detection rules?
Conclusion: Avoiding GNU-makeisms in automake scripts is absolutely pointless, because:
- GNU make is available for any platform your software supports anyway.
- The core of GNU make is that much smaller than the usual autoconf/automake bloat, so it could be shipped with every tarball to make up the build system.
- Its only a matter of time, until Greenpeace shows up and blames the free software community for wasting insane amounts of electrons.
Comments
No comments yet.
Post a Comment
This site's webmaster failed misserably in upgrading the underlaying web framework.
The comment system is entirely broken right now. Sorry!