01.07.2013 17:39, Paolo Bonzini wrote:
> What used to be there was something like
> 
>    net-obj-y = foo.o bar.o
>    common-obj-y += $(addprefix net/, $(net-obj-y))
> 
> and this has been replaced by net/Makefile.objs and friends.

Maybe we should just list them all in a single makefile after all,
with proper paths

   common-obj-y += net/foo.o net/bar.o block/baz.o

and be done with it, without the need to put them in
different makefiles and without re-merging them back
in a non-trivial way during make invocation?  It isn't
much typing really, and it is rather obvious this way
and easy to deal with.

And for every program we build,

 $(PROGRAM)-obj = program.o $(foo-objs-y) $(bar-objs-y)

etc.

Why do we re-merge them back making things shorter to
write (without paths), non-obvious and half-working?
(by "half" i mean that some variables gets prefixed
while some arent).

Something similar for a (softmmu|user) target too, with
maybe even all target variations listed in a single
top-level makefile.

> This should not be undone, but it is completely different from what you
> are trying to do.  You need a much more fine-grained assignment of
> libraries to object files.
> 
> I think the build system parts are hard because we haven't found the
> right design.

What's wrong with a single makefile for everything, except
of the need to use full pathnames from the top-level source
dir?

Thanks,

/mjt

Reply via email to