I'll look into it now.
I've described why it gets invoked every time :-)
Essentially, deb.make gets included every time, and as part of assignment of a value to one of the variables, dpkg gets invoked. ("What are our dependencies? Let's look at which *Debian package* version of gnustep-make is installed.")
Should it be calculated only when the target building a Debian package is invoked? Yes. How can you do that? As far as I know, you can't, really. You can't calculate a variable conditionally, only if a certain target will be built. (If that's possible, I'd love to be educated on how to do it.)
If I understand it correctly, it's possible to 'delay' evaluation of $(shell command_here). For what I'm using this calculation of the environment variable, however, that is not the case; the values are exported into environment to be written into a Debian control file by a sub-script.
Luckily, however, the variable export had to be done in a 'sub-make'. (Otherwise the 'export' statement in the top level of a makefile breaks the build system completely). The target being executed in sub-make is only visible if an environment variable is set appropriately -- it's hidden behind an if. So what I will reluctantly do is move the calculation of this variable into the 'else' block of this if.
Hi,
Ivan Vučica wrote:
> Whoops. This sounds like it's my mistake while trying to detect
> version of gnustep-make on the machine, to generate dependencies for
> binary Debian packages.
>
> In theory, it should not be ever happening unless you punch in "make
> debfile" or "make deb". Unfortunately I messed up.
di dyou have time to investigate this futher? I noticeed that when
building on debian (from source, plain, not inside dpkg) I get warnings
about the parameter used.
Why do you always invoke it??
Riccardo