[PATCH (3.5)]: Build system reimagined
Hi! The patch mentioned in the subject is far too big to include here (58 files changed, 1407 insertions(+), 890 deletions(-)), please see the feature/3.5/build-system-reorg[1] branch in my github repo. [1]: https://github.com/algernon/syslog-ng/commits/feature/3.5/build-system-reorg commit 7b3afe7a17685817e228b80d3da4cb95a35bec77 Author: Gergely Nagy <algernon@balabit.hu> Date: Mon Apr 22 11:31:29 2013 +0200 Build system reimagined This is a huge change, one that cannot be sensibly broken up into smaller pieces, so please bear with me! The purpose of the complete rewrite of the build system is to get rid of recursive make calls, and instead, use a single, non-recursive Makefile built up from multiple included parts, that has all the dependency information, therefore providing a much more robust dependency tracking, which is also significantly faster. For the sake of convenience, the Mk/populater-makefiles.sh script will add wrapper Makefiles to every directory that has a Makefile.am (unless it belongs to a third party library), allowing one to restrict 'make all' and 'make check' to a particular directory. The 'make check' provided by this convenience Makefile does not recurse into subdirectories, however. The system also provides shortcuts to build various parts of syslog-ng: - make syslog-ng - make mod-sql mod-mongodb mod-socket - etc Signed-off-by: Gergely Nagy <algernon@balabit.hu> As said in the commit message itself, the main driving force behind the change is far better dependency tracking (which also brings us significant compile speed increase). I believe that while this is a huge change, and does have some drawbacks (the need for Mk/populate-makefiles.sh, for example), not having to play nasty tricks with SUBDIRS is already worth it: I've seen that break far too many times in the not too distant past, and the dependency tracking the new system brings gets rid of those problems pretty much forever. Comments, criticism, review and all that is more than welcome. -- |8]
participants (1)
-
Gergely Nagy