Bug#638411: debian-rules-missing-*-target fooled by variables
Niels Thykier <niels@thykier.net> writes:
> I disagree that we should blindly assume that a "variable"-target as a
> wildcard. Consider Lintian's d/rules that has:
> $(profiles): $(allchecks) private/generate-profiles.pl
> LINTIAN_ROOT='.' private/generate-profiles.pl
> This is completely unrelated to build-arch and build-indep, but its
> presence would (as I understand you) make Lintian assume that
> build-(arch|indep) is now present.
Yup.
Mostly I would have made that choice because it's a lot simpler and I
don't think there are very many packages that use variables for rule
targets, and most of the ones that do have a fairly sophisticated build
system. But...
> The alternative is to track variables and understand make. In theory
> this very quickly becomes hard (to do right). However, if we assume
> that people, who would use variables this way, are a bit sane, we can
> get away with a far simpler approach.
> Attached is a patch that does very simple (and in some cases even
> incorrect[1]) tracking of variables and their values (ignoring tons of
> rules). I still suspect it will not cause a not of false-negatives and
> should reduce the number of false-positives.
...if you're willing to do the work, I'm certainly okay with this. :)
We haven't gotten a lot of complaints about this yet, so if handling the
simple cases along these lines makes people happy, that's an even better
solution.
--
Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Reply to: