build: Remove binaries and libraries build groups
commitc6673b96a59e38031da6654580250bbc58766cfd
authorAndrew Bartlett <abartlet@samba.org>
Sun, 26 May 2013 13:11:03 +0000 (26 23:11 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 27 May 2013 01:56:46 +0000 (27 11:56 +1000)
tree3cb5f919f7bcde8f9cd21a38e66aa25432baedf5
parentdfe73e7885a40de8c24d1231365a16f7aa3d5073
build: Remove binaries and libraries build groups

Build groups are used in Samba to ensure that even if the dependency
chain for a target is not perfect, that it builds reliably.  This
matters most in the early build stages, where we are building the asn1
compiler and autogenerating files.

Once we get to the main stage, dependencies between C files, libraries
and binaries are much clearer, because the C compiler and linker takes
these as inputs anyway.

Groups were added to our waf build for stability during early
development, as dependency information was first imported from the
previous autoconf/perl based build system.

I don't think we need this distinction in the main build of C files
into .o, and when linking these into binaries, because the invocation
of these tools is very well defined, and we will find any missing
inputs very quickly.

As such, I've removed the libraries and binaries targets,
consolidating them with 'main'

By making this change, a build of smbtorture only on a clean tree
drops from 3778 to 2489 targets, and much of the expensive linker
stage is skipped.  The time for a null build of smbtorture only also
drops from 4.673s to as low as 2.499s on my laptop.

Andrew Bartlett

Reviewed-by: Jelmer Vernooij <jelmer@samba.org>
buildtools/wafsamba/wafsamba.py
source4/heimdal_build/wscript_build