On Thu, 2004-11-25 at 21:10 +0100, Alexandre Duret-Lutz wrote: > >>> "Braden" == Braden McDaniel <[EMAIL PROTECTED]> writes: > > [...] > >> > EXTRA_DIST = manual > [...] > >> > html: manual > [...] > >> > install-data-local: manual installdirs-local > >> > $(INSTALL_DATA) ./manual/* $(DESTDIR)$(docdir)/manual > [...] > >> > manual: > >> > $(DOXYGEN) > >> > > >> > When "make distcheck" runs "make install", I get this: > [...] > >> > /usr/bin/install -c -m 644 ./manual/* > >> > > /home/bmcdaniel/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_inst/share/doc/openvrml-0.14.99/manual > >> > /usr/bin/install: cannot stat `./manual/*': No such file or directory > >> > >> Where are the contents created? $top_srcdir/manual or > >> $top_builddir/manual? > > Braden> $builddir/manual, which is the same as $top_builddir/doc/manual. > > Because the manual is distributed (EXTRA_DIST) there is a copy > of it in $(srcdir)/manual at this point of distcheck. Because > $(srcdir)/manual exists and we have VPATH=$(srcdir), the `manual' > dependency of `install-data-local' is satisfied and the manual > is not recreated (which is undoubtedly what you want, otherwise > you wouldn't distribute it). > > Hence either the install rule is wrong in assuming that the manual is > always in the build directory, or the build rule is wrong in building > the manual in the build directory. > > I suggest you always build distributed files in the source > directory. (BTW this is mandatory if you want to support VPATH > builds with some non-GNU implementation of make.)
Fair enough; I initially had it in the srcdir, but I encountered problems then. If I do this: EXTRA_DIST = manual DISTCLEANFILES = manual/* html: manual/index.html installdirs-local: $(mkinstalldirs) $(DESTDIR)$(docdir)/manual install-data-local: html installdirs-local $(INSTALL_DATA) $(srcdir)/manual/* $(DESTDIR)$(docdir)/manual uninstall-local: rm -rf $(DESTDIR)$(docdir)/manual manual/index.html: Doxyfile $(DOXYGEN) ... then I run into problems in "make install": Making install in doc make[2]: Entering directory `/home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc' make[3]: Entering directory `/home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc' make[3]: Nothing to be done for `install-exec-am'. /usr/bin/doxygen GroupDef::insertMembers(): member `node_cast' with class scope `openvrml::node' inserted in group scope `nodes'! Warning: Cannot open file /home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc/../../doc/manual/doxygen.png for writing Warning: Cannot open file /home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc/../../doc/manual/Helvetica.ttf for writing Could not open file /home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc/../../doc/manual/doxygen.css for writing make[3]: *** [manual/index.html] Error 1 make[3]: Leaving directory `/home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc' make[2]: *** [install-am] Error 2 make[2]: Leaving directory `/home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build/doc' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/braden/src/openvrml/openvrml/BUILD/openvrml-0.14.99/_build' make: *** [distcheck] Error 2 Again, using dist-hook to copy the files instead of listing "manual" in EXTRA_DIST circumvents this problem. -- Braden McDaniel e-mail: <[EMAIL PROTECTED]> <http://endoframe.com> Jabber: <[EMAIL PROTECTED]>