On 5/22/07, Stephen Montgomery-Smith <[EMAIL PROTECTED]> wrote:
Andrew Pantyukhin wrote: > On 5/22/07, Alexander Leidinger <[EMAIL PROTECTED]> wrote: >> Quoting Andrew Pantyukhin <[EMAIL PROTECTED]> (from Tue, 22 May >> 2007 11:55:39 +0400): >> >> > On 5/22/07, Kris Kennaway <[EMAIL PROTECTED]> 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}I must admit I was looking for the :u. Definitely a good feature - maybe it could be invoked in the make file conditional on an appropriate value of OSVERSION. Incidently if you want to save a few more != assignments, I notice that setting the variables ARCH=i386 OPSYS=FreeBSD OSREL=6.2 OSVERSION=602110 in /etc/make.conf will do this for you.
A seemingly better way may be to make these system vars available in make by default. They may even be compiled in - to achieve virtually no performance impact (except for a bit larger default var table). _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
