On Fri, Apr 18, 2008 at 02:01:02PM +0200, Alban Bedel wrote:
On Fri, 18 Apr 2008 09:54:05 +0200 Diego Biurrun <diego@biurrun.de> wrote:
On Mon, Apr 14, 2008 at 03:08:49AM +0200, Alban Bedel wrote:
On Mon, 14 Apr 2008 01:34:26 +0200 Diego Biurrun <diego@biurrun.de> wrote:
On Sat, Apr 12, 2008 at 03:31:36PM +0200, Alban Bedel wrote:
so the new flat build system is underway. Sadly IMHO it have a few shortcomings and there is some things that I think we should discuss here before going any further.
The most important point IMHO, is do we really get rid of the .a or not? On the plus side I only see a few rule less in the Makefile. On the minus side the whole source list is required for any tool using the lib in question.
We would just need the relevant object files. You do have a point that this can be a burden to maintain.
IMHO if we don't have the .a anymore we should have an includeable Makefile with the corresponding file list. Otherwise anybody wanting to use this code (that is us in the case of the tools) must duplicate a good part of our build system, and keep up with any change in it.
I see no difference between
SRCS = foo.c bar.c baz.c
and
SRCS += subdir/foo.c subdir/bar.c subdir/baz.c
But if a tool need only subdir/* it must recreate that second list. With all the conditional used nowadays in the Makefiles that's far from as trivial as it look here. And what for? To spare _one_ line in the main Makefile.
This is trivially solved by the use of variables.
I would suggest you try to merge the tools Makefile next. If you take the approach you suggest you will clearly see that the 3 lines you so bitterly want to spare become a couple dozen more and a clear burden on maintenance.
Done. Diego