From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtfNN-0002ca-UC for qemu-devel@nongnu.org; Mon, 01 Jul 2013 10:46:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UtfNM-0008Ta-3H for qemu-devel@nongnu.org; Mon, 01 Jul 2013 10:46:45 -0400 Received: from cantor2.suse.de ([195.135.220.15]:33465 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtfNL-0008TC-RL for qemu-devel@nongnu.org; Mon, 01 Jul 2013 10:46:44 -0400 Message-ID: <51D1964F.6040904@suse.de> Date: Mon, 01 Jul 2013 16:46:39 +0200 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1371576844-28743-1-git-send-email-mjt@msgid.tls.msk.ru> <51D04EA6.6020806@suse.de> <51D05090.40304@msgid.tls.msk.ru> <51D18681.6050805@redhat.com> <51D1959B.50803@msgid.tls.msk.ru> In-Reply-To: <51D1959B.50803@msgid.tls.msk.ru> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC PATCH 0/4] per-object libraries List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Tokarev Cc: Paolo Bonzini , qemu-devel@nongnu.org Am 01.07.2013 16:43, schrieb Michael Tokarev: > 01.07.2013 17:39, Paolo Bonzini wrote: >> What used to be there was something like >> >> net-obj-y =3D foo.o bar.o >> common-obj-y +=3D $(addprefix net/, $(net-obj-y)) >> >> and this has been replaced by net/Makefile.objs and friends. >=20 > Maybe we should just list them all in a single makefile after all, > with proper paths >=20 > common-obj-y +=3D net/foo.o net/bar.o block/baz.o >=20 > 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. >=20 > And for every program we build, >=20 > $(PROGRAM)-obj =3D program.o $(foo-objs-y) $(bar-objs-y) >=20 > etc. >=20 > 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). >=20 > Something similar for a (softmmu|user) target too, with > maybe even all target variations listed in a single > top-level makefile. >=20 >> This should not be undone, but it is completely different from what yo= u >> 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. >=20 > What's wrong with a single makefile for everything, except > of the need to use full pathnames from the top-level source > dir? In short the problem we ran into was missing *.d inclusions. This got fixed by automatically expanding net/ to -include net/Makefile.objs and -include net/*.d or so. Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg