Hello Karl, * Karl Berry wrote on Sat, Apr 11, 2009 at 02:54:16AM CEST: > 1) In the Extending node of the automake (1.10.2) manual, there's a typo: > > now: respected by `automake' to ensure the user always have the last word. > new: respected by `automake' to ensure the user always has the last word.
Yes. This has already been fixed in branch-1-10 and master, along with several other typographical and grammatical nits in the manual. > Also, it might be clearer to make each of the following two sentences > into an @item. Thanks, fixed as below; pushed to master. > 2) Anyway, what I'm really writing about is ... I gather there is no > install-local target. Or any other way to run additional commands at > install time, after install-exec and install-data have run. > > The usefulness is to run a post-install command installed by > install-exec, using data installed by install-data. I need to do > this in the TeX tree. > > I worked around it by using a different rule that depends on install, > which is fine, so this isn't make-or-break or anything. I just > wanted to suggest it. Or is there another way to accomplish it? > I guess install: could be made into a double-colon target, but > that doesn't exactly seem right either. Not really. Naming such a thing install-local seems suboptimal for these reasons: - It will be very tempting to abuse it, when install-{data,exec}-local would have been more appropriate; maybe install-hook would be better, esp. given that its semantics would be to clearly run after all other installation has finished. - It isn't clear to me what should happen if the user typed make install-data or make install-exec only. Letting the hook run after one of them only seems clearly wrong. Not running it at all would require some sort of `post-install' target or so. Running it twice would require some sort of state in the form of "we've already done the other". And frankly, I don't see how that state can be deduced automatically from automake-generated code; we'd have to require that the user (or at least the Makefile.am author) provide this information (we can often reliably find out whether one of the target has _not_ yet been run, but the reverse is typically not possible). Can you work around it (or have already done so) by simply adding install-{data,exec}-local rules in the last Makefile.am traversed by make, which should be one that installs no other files important to this post-install action? Cheers, and thanks for the report, Ralf 2009-04-14 Karl Berry <k...@freefriends.org> manual: improve markup: itemize list in `Extending'. * doc/automake.texi (Extending): Use `...@item's for user override semantics. diff --git a/doc/automake.texi b/doc/automake.texi index de46d21..c5ac962 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -9314,12 +9314,18 @@ different places (@file{Makefile.am}, @file{configure.ac}, and @command{automake} itself), it is possible to have conflicting definitions of rules or variables. When building @file{Makefile.in} the following priorities are respected by @command{automake} to ensure -the user always has the last word. User defined variables in -...@file{makefile.am} have priority over variables @code{AC_SUBST}ed from -...@file{configure.ac}, and @code{AC_SUBST}ed variables have priority -over @command{automake}-defined variables. As far as rules are -concerned, a user-defined rule overrides any +the user always has the last word: + +...@itemize +...@item +User defined variables in @file{Makefile.am} have priority over +variables @code{AC_SUBST}ed from @file{configure.ac}, and +...@code{ac_subst}ed variables have priority over +...@command{automake}-defined variables. +...@item +As far as rules are concerned, a user-defined rule overrides any @command{automake}-defined rule for the same target. +...@end itemize @cindex overriding rules @cindex overriding semantics