More speed increases for make-ing ports

Andrew Pantyukhin infofarmer at FreeBSD.org
Tue May 22 10:22:11 UTC 2007


On 5/22/07, Alexander Leidinger <Alexander at leidinger.net> wrote:
> Quoting Andrew Pantyukhin <infofarmer at FreeBSD.org> (from Tue, 22 May
> 2007 11:55:39 +0400):
>
> > On 5/22/07, Kris Kennaway <kris at obsecurity.org> wrote:
> >> On Tue, May 22, 2007 at 01:47:23AM -0500, Stephen Montgomery-Smith wrote:
> >>> This small modification cuts off about 25% off pkg_version on my system.
> >>>
> >>> Basically bsd.gnome.mk recursively finds all the dependencies, but many
> >>> of them are listed many times.  This makes make work extra hard when it
> >>> doesn't have to.  I simply weed out the repeated entries.
> >>>
> >>
> >>> --- bsd.gnome.mk-orig Tue May 22 01:29:08 2007
> >>> +++ bsd.gnome.mk      Tue May 22 01:29:22 2007
> >>> @@ -655,6 +655,8 @@
> >>>  _USE_GNOME+= ${${component}_USE_GNOME_IMPL} ${component}
> >>>  . endfor
> >>>
> >>> +_USE_GNOME!=(for i in ${_USE_GNOME}; do ${ECHO_CMD} $$i; done) | sort -u
> >>> +
> >>>  # Setup the GTK+ API version for pixbuf loaders, input method modules,
> >>>  # and theme engines.
> >>>  PLIST_SUB+=                  GTK2_VERSION="${GTK2_VERSION}"
> >>
> >> Be careful, != assignments may add thousands of process invocations to
> >> large targets like 'make index' and can slow it down dramatically.
> >
> > Right, and uniqueness logic can be implemented in make.
>
> Be proactive and tell/point out how... :)

TMTOWTDI. There are several examples in bsd.*.mk. The
obvious one is "flags" (you set or unset flag vars
first, then traverse them and add what you need to
the list). In recent versions of our make you can
also use ${VAR:O:u}


More information about the freebsd-ports mailing list