#984 Speeding up configure
Metadata
Property | Value |
---|---|
Reported by | Christoph Grüninger (gruenich@iws.uni-stuttgart.de) |
Reported at | Dec 2, 2011 22:47 |
Type | Discussion |
Version | Git (pre2.4) [autotools] |
Operating System | Unspecified / All |
Last edited by | Christoph Grüninger (gruenich@iws.uni-stuttgart.de) |
Last edited at | Mar 11, 2012 10:23 |
Closed by | Christoph Grüninger (gruenich@iws.uni-stuttgart.de) |
Closed at | Mar 11, 2012 10:23 |
Closed in version | Unknown |
Resolution | Implemented |
Comment | Documented in a newly created section in buildsystem-howto. |
Added in recent changes on the homepage. |
Description
I am annoyed by Dune's sluggish build process. I hoped CMake might speed up the autogen and configure part. Lately Robert pointed [0] to autotool's configure cache [1]. I tried it and for dunecontontrol --opts=... --module=dune-pdelab configure it took 49 seconds without and 29 seconds with caching. I deleted the cache before the run and it was created by the first occurrence of a test. For my working configuration with dune-multidomain and dumux-devel I expect an ever higher benefit.
Because I would not like to waste 20 s a gazillion of times, I want to include caching in dunecontrol similar to the resume function. For every configure I would delete the old cache and use the cache only for successive dune modules in the same configure run.
Libraries like dunecommon are currently not cached because we use our own test DUNE_* instead of AC_CHECK_LIB / AC_SEARCH_LIBS. The latter has built-in caching [2] but I think we can include this in most of our own macros.
I will investigate this further and create patches in a not too remote future.
But I'm afraid of Donald Knuth statement: "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil"
[0] http://lists.dune-project.org/pipermail/dune/2011-November/009736.html [1] http://www.gnu.org/s/hello/manual/autoconf/Caching-Results.html [2] http://www.gnu.org/s/hello/manual/autoconf/Libraries.html