|
From: | Daniel Herring |
Subject: | Re: speeding up GNU make for LibreOffice by factor ~2 (and dependency file parsing by factor ~10) |
Date: | Fri, 21 Feb 2014 09:04:15 -0500 |
User-agent: | Alpine 2.02 (LRH 1266 2009-07-14) |
On Wed, 19 Feb 2014, Bjoern Michaelsen wrote:
It introduces a new "includedepcache" keyword. The first time GNU make runs past it, it works just like a normal include, except that it tracks the dependency relations described in the included file and writes them in a simplified and better to parse format into the file ${includefile}.cache. The second time GNU make comes past the includedepcache statement, it checks for the ${includefile}.cache file, and if it is younger than ${includefile}, and if so, it reads that file instead of the ${includefile}.
Here's my summary interpretation of your email.LibreOffice uses some form of automatic dependency tracking. You profiled the build and realized that a large fraction of (re)build time was spent while make parsed these dependencies. Thus you developed an efficient binary format that could be used instead of the traditional text files.
Here is my question.Tools like Automake support automatic dependency tracking. The main makefile includes one dependency file per target. The deps are initialized to the empty list, and updated each time the compiler runs.
http://www.gnu.org/software/automake/manual/html_node/Dependencies.htmlIs your "includedepcache" keyword intended for such dependency files, or are there other uses cases in mind as well?
Thanks, Daniel
[Prev in Thread] | Current Thread | [Next in Thread] |