[syslog-ng] [PATCH (3.5)]: Build system reimagined

Gergely Nagy algernon at balabit.hu
Mon Apr 22 12:01:37 CEST 2013


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 at 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 at 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]



More information about the syslog-ng mailing list