From owner-freebsd-current@FreeBSD.ORG Thu Feb 5 07:13:55 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 211AA16A4CE for ; Thu, 5 Feb 2004 07:13:55 -0800 (PST) Received: from phantom.cris.net (phantom.cris.net [212.110.130.74]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E33243D48 for ; Thu, 5 Feb 2004 07:13:38 -0800 (PST) (envelope-from ru@FreeBSD.org.ua) Received: from phantom.cris.net (ru@localhost [127.0.0.1]) by phantom.cris.net (8.12.10/8.12.10) with ESMTP id i15FEToh018770; Thu, 5 Feb 2004 17:14:29 +0200 (EET) (envelope-from ru@FreeBSD.org.ua) Received: (from ru@localhost) by phantom.cris.net (8.12.10/8.12.10/Submit) id i15FEPsJ018759; Thu, 5 Feb 2004 17:14:25 +0200 (EET) (envelope-from ru) Date: Thu, 5 Feb 2004 17:14:25 +0200 From: Ruslan Ermilov To: Bruce Evans Message-ID: <20040205151425.GA18523@FreeBSD.org.ua> References: <20040205091634.GC13932@FreeBSD.org.ua> <20040206012805.N8113@gamplex.bde.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="rwEMma7ioTxnRzrJ" Content-Disposition: inline In-Reply-To: <20040206012805.N8113@gamplex.bde.org> User-Agent: Mutt/1.5.5.1i cc: current@FreeBSD.org Subject: Re: Very long SRCS list with unusually long src/ prefix X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2004 15:13:55 -0000 --rwEMma7ioTxnRzrJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Feb 06, 2004 at 01:40:45AM +1100, Bruce Evans wrote: > On Thu, 5 Feb 2004, Ruslan Ermilov wrote: [...] > % +.for f in ${DPSRCS:M*.[cS]} ${DPSRCS:M*.cc} ${DPSRCS:M*.C} ${DPSRCS:M*= =2Ecpp} \ > % + ${DPSRCS:M*.cxx} ${DPSRCS:M*.m} > % +_mkdep_${f}: ${f} > % + @echo ${.ALLSRC} > % +.endfor >=20 > This seems to run echo once for each file separately. It should be deemed > inefficient :-). >=20 But that's what this patch basically does: it splits possibly very long ${.ALLSRC} list into pieces. It's very inefficient only in traditional mode. Run this with and without -j1 to see the diff: : COUNT!=3D jot 1000 :=20 : all: : .for foo in ${COUNT} : @echo $$$$ >/dev/null : .endfor > I can't see anything better using current make features. The make -V hack > doesn't work with local variables. >=20 Yes, because -V is meaningless with local variables. > This and some other things would be easier and more efficient if make > had a builtin echo. Then we could just use "builtin_echo ${.ALLSRC:M*.[c= S]} > | mkdep ..." in the rules below, and the make -V hack would not be needed > in kern.post.mk. >=20 Yeah. > % ${DEPENDFILE}: ${DPSRCS} > % rm -f ${DEPENDFILE} > % .if !empty(DPSRCS:M*.[cS]) > % - ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \ > % - ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} \ > % - ${.ALLSRC:M*.[cS]} > % + (cd ${.CURDIR}; ${MAKE} _mkdep_cS) | xargs env \ > % + ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \ > % + ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} >=20 > make uses a real shell, so the env shouldn't be needed. >=20 $ echo foo.c | xargs CC=3Dcc mkdep xargs: CC=3Dcc: No such file or directory Cheers, --=20 Ruslan Ermilov FreeBSD committer ru@FreeBSD.org --rwEMma7ioTxnRzrJ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAIl3RUkv4P6juNwoRAvuOAJ9h9OtYpk4fkuIOwzEGFozF52SkHgCfaVq3 yQSXqcMqW7424ILMK+U93Gc= =BB31 -----END PGP SIGNATURE----- --rwEMma7ioTxnRzrJ--