svn commit: r345238 - head
Wolfram Schneider
wosch at freebsd.org
Sun Mar 17 15:02:30 UTC 2019
On Sat, 16 Mar 2019 at 23:37, Ian Lepore <ian at freebsd.org> wrote:
>
> On Sat, 2019-03-16 at 20:02 +0000, Wolfram Schneider wrote:
> > Author: wosch
> > Date: Sat Mar 16 20:02:57 2019
> > New Revision: 345238
> > URL: https://svnweb.freebsd.org/changeset/base/345238
> >
> > Log:
> > `make buildkernel' should display the build time in seconds
> >
> > PR: 224433
> > Approved by: cem
> > Differential Revision: https://reviews.freebsd.org/D13910
> >
> > Modified:
> > head/Makefile.inc1
> >
> > Modified: head/Makefile.inc1
> > =====================================================================
> > =========
> > --- head/Makefile.inc1 Sat Mar 16 17:55:22 2019 (r345237)
> > +++ head/Makefile.inc1 Sat Mar 16 20:02:57 2019 (r345238)
> > @@ -1584,6 +1584,11 @@ _cleankernobj_fast_depend_hack: .PHONY
> >
> > ${WMAKE_TGTS:N_worldtmp:Nbuild${libcompat}}
> > ${.ALLTARGETS:M_*:N_worldtmp}: .MAKE .PHONY
> >
> > +# record kernel(s) build time in seconds
> > +.if make(buildkernel)
> > +_BUILDKERNEL_START!= date '+%s'
> > +.endif
> > +
> > #
> > # buildkernel
> > #
> > @@ -1640,7 +1645,12 @@ buildkernel: .MAKE .PHONY
> > @echo "------------------------------------------------------
> > --------"
> > @echo ">>> Kernel build for ${_kernel} completed on `LC_ALL=C
> > date`"
> > @echo "------------------------------------------------------
> > --------"
> > +
> > .endfor
> > + @seconds=$$(($$(date '+%s') - ${_BUILDKERNEL_START})); \
> > + echo -n ">>> Kernel(s) build for${BUILDKERNELS} in $$seconds
> > seconds, "; \
> > + echo "ncpu: $$(sysctl -n hw.ncpu)${.MAKE.JOBS:S/^/, make
> > -j/}"
> > + @echo "------------------------------------------------------
> > --------"
> >
> > NO_INSTALLEXTRAKERNELS?= yes
> >
> >
>
> Does this really report the buildkernel time, or the time from when
> make starts until when the kernel portion of the make finishes? Will
> the result be right when you do "make buildworld buildkernel"?
Good point, I didn't checked this yet. The handbook at
https://www.freebsd.org/doc/handbook/makeworld.html
recommends to run buildworld and buildkernel in 2 steps:
make -j4 buildworld ; make -j4 kernel
PS: it seems to work fine. The time will be recorded when the make
target is called, not when make is called.
$ grep ncpu build.log
>>> World build in 2004 seconds, ncpu: 32, make -j33
>>> Kernel(s) build for GENERIC in 138 seconds, ncpu: 32, make -j33
-Wolfram
--
Wolfram Schneider <wosch at FreeBSD.org> https://wolfram.schneider.org
More information about the svn-src-all
mailing list