Subject: Re: non-.WAIT bsd.subdir.mk (was Re: patches to fix make -j)
To: Todd Vierling <tv@duh.org>
From: Luke Mewburn <lukem@NetBSD.org>
List: tech-toolchain
Date: 12/19/2003 12:47:29
--35rzUHtxHARXKmYf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Thu, Dec 18, 2003 at 11:25:56AM -0500, Todd Vierling wrote:
| And I found the diff, and updated it to -current; see below. In more
| detail, you can specify something like
|=20
| SUBDIR=3D a:d b:c c d:e:b e
|=20
| and you will get a guarantee that c builds before b, d builds before a,=
and
| e and b both build before d, regardless of -j setting. With parallelis=
m,
| the above will indeed build c and e in parallel before proceeding with =
their
| dependents.
This is a good start, yet it lacks some functionality which we use in
"real world" situations within our build system:
1. Many uses of .WAIT are to allow a library containing common routines
to be built before the rest of a subsystem.
E.g., src/usr.sbin/lpr/common_source, which is used by=20
src/usr.sbin/lpr/{lp,lpc,lpd,lpq,lpr,lprm,lptest,pac,filters}
Your proposed syntax would greatly increase the size
and complexity of the SUBDIR variable assignment.
Maybe a "wildcard" dependency is required ("*:common_source" ?)
2. Certain subsections need to be built _and_ installed
before the build progresses. See the "build" targets in
src/Makefile and src/x11/Makefile.
Having a better way of representing this via SUBDIR
would be "most excellent".
Cheers,
Luke.
--35rzUHtxHARXKmYf
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (NetBSD)
iD8DBQE/4lixpBhtmn8zJHIRAtBPAJ49LCCefBddn56xZ1hmaTIByQXDLwCgqmkk
bxnm49pAk+tbSo49cuSZ7ZA=
=7D6S
-----END PGP SIGNATURE-----
--35rzUHtxHARXKmYf--