Date: Mon, 12 Feb 2001 13:44:22 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: Warner Losh <imp@harmony.village.org> Cc: audit@freebsd.org, peter@freebsd.org, bde@freebsd.org Subject: Re: kmod.mk patches to fix excessive recompiling Message-ID: <Pine.BSF.4.21.0102121310120.1520-100000@besplex.bde.org> In-Reply-To: <200102111630.f1BGUrW23037@harmony.village.org>
index | next in thread | previous in thread | raw e-mail
On Sun, 11 Feb 2001, Warner Losh wrote:
> For a long time I've noticed that too many things recompile in the
> modules when I rebuild after a cvs update. I've tracked the problem
> down now.
>
> kmod.mk puts @ and machine as dependencies for all the sources. This
> is done to ensure that the link exists, but for no other reasons.
> However, when the link does exist, the directory mod time comes into
> consideration (that directory is the target of the symlink). So,
> whenever $S or $S/$MACHINE/include changes, all files are rebuilt inn
> the modules tree. My laptop is only a 300MHz Pentium, so this can
> take longer than my attention span.
Interesting bug (not just because I wrote it :-). I usually use cp
instead of ln -s in Makefiles so that I don't have to think about
symlink misbehaviour, but this doesn't work for directories.
> Index: kmod.mk
> ===================================================================
> RCS file: /home/imp/FreeBSD/CVS/src/sys/conf/kmod.mk,v
> retrieving revision 1.90
> diff -u -r1.90 kmod.mk
> --- kmod.mk 2001/01/28 21:24:05 1.90
> +++ kmod.mk 2001/02/11 16:25:20
> @@ -158,7 +158,14 @@
> .MAIN: all
> all: objwarn ${PROG} all-man _SUBDIR
>
> -beforedepend ${OBJS}: ${_ILINKS}
> +beforedepend ${OBJS}:
> +.if !exists(@)
> +beforedepend ${OBJS}: @
> +.endif
> +.if !exists(machine)
> +beforedepend ${OBJS}: machine
> +.endif
This should loop over ${_ILINKS}.
> +
Extra blank line.
Bruce
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-audit" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0102121310120.1520-100000>
