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

Reply via email to