Jonas Smedegaard wrote: > Quoting Jakub Wilk (2015-07-23 21:08:15) > > * Eduard Bloch <e...@gmx.de>, 2015-07-23, 19:43: > >>The problem: I see lots of $(shell ...) stuff. In boost, there are > >>about 12 such calls. And they run dpkg-architecture or > >>dpkg-parsechangelogs or similar commands. When this was done a just > >>couple of times (i.e. before dh(7)), that's acceptable. But now, it > >>looks like debian/rules is called many, many times through dh. > > > > One mistake boost makes is using ":=" instead of plain "=". Contrary > > to popular belief, the former almost always causes more evaluation of > > $(shell) stuff, specially when dh is involved. > > Could you elaborate on that? > > I never use short-form dh but would like to understand if the > optimizations I've tried to do in CDBS might do more harm than good.
If you use :=, the shell command is immediately run and the result stored in the variable. So if you reference the variable a dozen times, the shell command gets run once. And if you reference the variable zero times, the shell command gets run once. If you use =, the shell command is run when the variable is evaluated. So if you reference the variable a dozen times, the shell command gets run a dozen times. And if you reference the variable zero times, the shell command gets run zero times. So := is an optimization if you expect to evaluate the variable more than once. It's a pessimization if you don't evaluate the variable. If the invocations of make for dh aren't referencing those variables, using := is a pessimization. - Josh Triplett -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150723205749.GA8552@jtriplet-mobl1