Here is an idea for writing a multiprocessor-friendly autoconf. Basically, the idea is to change the configure phase into a Makefile target, and use caching as a way to split it into various sub-targets that can be executed in parallel. The shell script might run the "sane build" test and then spawn the Makefile.
Non-caching shell code would constitute a serialization barrier. AC_REQUIRE would also be used to determine the required Makefile dependencies (possibly together with some static analysis on the referenced cache variables or #define'd symbols -- people doing strange things with variables and evals would need to provide hints or possibly to use an AC_SERIALIZE barrier). It could also give an interesting way to solve the space problem by using suffix rules: ac_cv_func_%: AC_CHECK_FUNC.% *** test body here *** ac_cv_func_getcwd: AC_CHECK_FUNC.getcwd ac_cv_func_fork: AC_CHECK_FUNC.fork There is too little meat in this message to provide a design, but I'm willing to go on and provide a proof-of-concept if there's enough interest. This change would probably mean doing major rewrites of parts of autoconf, and heavily using autom4te traces. Paolo