Hi,
the current build system is somewhat sub-optimal for parallel builds,
and it sometimes fails for exports and test_char.h, especially when
using "make depend". Some time ago, I hacked up some improvements, but
I think the changes may require GNU make (though I don't really know
which features are GNU-only). I use at least MAKECMDGOALS and "-
include" (include, but ignore missing file).
Now my question: Do we support non-GNU make for the UNIX build? There
are some remnants of BSD make support, but that is definitely not
functional. What other common make variants are out there?
The potential gain is substantial. On my 4-core+HT machine:
trunk improved
make -j 8 all
real 0m25.993s 0m15.831s
user 1m20.957s 1m33.650s
sys 0m8.429s 0m10.005s
make -j 8 install (after make all)
real 0m21.098s 0m7.236s
user 0m14.461s 0m13.981s
sys 0m1.376s 0m1.100s
make -j 8 all (again, nothing to do)
real 0m1.078s 0m0.084s
user 0m0.300s 0m0.136s
sys 0m0.192s 0m0.084s
That's 40% speed-up for make all and factor 3 for make install. The
patch is at
http://people.apache.org/~sf/better_parallel_build.diff
Cheers,
Stefan