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. Of course, you then have to keep this info up to date (e.g. change OSVERSION every time you do a "make world"), and it doesn't really seem to save a lot of time on my system, but I would be interested to hear other reports.

_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to