[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8326: can't override dvi: target, or others with -local
From: |
Stefano Lattarini |
Subject: |
bug#8326: can't override dvi: target, or others with -local |
Date: |
Wed, 23 Mar 2011 21:28:52 +0100 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
On Wednesday 23 March 2011, Karl Berry wrote:
> Aside from the discussion in #8289 about alternatives to the hardwired
> make dvi being run by make distcheck, there seems to be another problem,
> namely putting a simple
> dvi:
> in a Makefile.am doesn't work to override the default rule. I get an
> error like this:
>
> doc/Makefile.am:12: user target `dvi' defined here...
> automake: ... overrides Automake target `dvi' defined here
> doc/Makefile.am:12: consider using dvi-local instead of dvi
>
This happens almost surely because you have `override' warnings enabled,
and Automake is treating warnings as errors (do you have `-Wall -Werror'
in AM_INIT_AUTOMAKE, maybe?). If you want to override an Automake-provided
target without complaints from Automake, you must disable the `override'
warnings, e.g., by using "AUTOMAKE_OPTIONS = -Wno-override" in the affected
Makefile.am (or by not using `-Wall' in AM_INIT_AUTOMAKE, even if I would
discourage this).
> Looking for the code that's enforcing this, I see in Rule.pm around line
> this comment:
> # -am targets listed in %dependencies support a -local
> # variant. If the user tries to override TARGET or
> # TARGET-am for which there exists a -local variant,
> # just tell the user to use it.
>
> But dvi-local does not suffice for the case at hand; that is, it can't
> be used to avoid rebuilding the dvi, as far as I can see. Certainly
> merely adding dvi-local: does nothing in particular. Is there another
> way?
>
See above.
> (Aside: I'm just curious, what can dvi-local actually be used for?
> If there's a known use for it, I suggest mentioning it in the doc.)
>
If there is a known use, I don't know it; sorry!
> As far as I can see, this behavior contradicts the documentation (node:
> Extending), which simply says:
>
> * As far as rules are concerned, a user-defined rule overrides any
> `automake'-defined rule for the same target.
>
> So my report is to suggest implementing that :).
>
That's already implemented (well, almost -- it's not true for few special
targets, like `all' and `check'; maybe we should fix this inconsistency?)
> Perhaps there should be a warning in case of such overrides,
>
See above.
> but a fatal "you can't do that"?
>
You must have enabled `-Werror' somewhere... could you please confirm?
Otherwise we have a bug.
> Else the doc should be changed.
>
> At any rate, if there's a workaround to get a clean make distcheck with
> a PDF-only manual with the currently released automake, we'd like to know.
>
Adding:
AUTOMAKE_OPTIONS = -Wno-override
dvi:
to the relevant Makefile.am should be enough as a workaround (even if not
particularly clean).
> Thanks,
> Karl
>
>
HTH,
Stefano