Heime <[email protected]> writes: > I notice that Makefile.in includes ${buildinfodir} as order-only > prerequisites. > Why is this, why is it important? Should one do the same for other > documentation? >
(Adding ‘[email protected]’ to Cc: in case that mailing list’s users want to respond.) 1. Short answer about the question of order-only prerequisites: (info "(make) Prerequisite Types") 2. As the text in the ‘make’ user manual explains, the reason for the build-only prerequisite is to specify a target/dependency relationship that does not include the time that the prerequisite was updated. So long as the prerequisite exists, the prerequisite is considered up to date. If it does not exist, then carry out its recipe/rule for creating it. In this case, the target requires that the directory exists, but the target does not need to be updated whenever the directory’s timestamp has been updated. > $(buildinfodir)/emacs.info: ${EMACSSOURCES} | ${buildinfodir} > $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< > > But for emacs.dvi and emacs.pdf, ${buildinfodir} is not used. What is the > reason? > Your Emacs distribution will include a ‘info’ directory that contains all of the .info files that make up the Emacs-related manuals. The other forms of files that can be generated from .texinfo files do not belong in the ‘info’ directory. This is similar to the requirement that all Emacs Lisp source files that are included in your Emacs distribution belong in the directory (tree) ‘lisp’, but other (non-Emacs-Lisp) files do not belong there. -- The lyf so short, the craft so long to lerne. - Geoffrey Chaucer, The Parliament of Birds.
