Обсуждение: doc/src/sgml/Makefile versus VPATH
So isn't this still pretty broken? I notice that the clean and distclean targets still use addprefix on a lot of temporary/intermediate files that I would think get made in the build directory, not the source directory. The references to man files in srcdir in nonsql_manpage_files and adjacent macros seem a tad suspicious as well. regards, tom lane
Tom Lane wrote: > So isn't this still pretty broken? I notice that the clean and > distclean targets still use addprefix on a lot of temporary/intermediate > files that I would think get made in the build directory, not the source > directory. Yeah, I noticed that too. I'm not too sure about it, because some of those files we do want shipped in source tarballs; and they are definitely cleaned in the builddir by maintainer-clean. I didn't want to get into the detail of what's the ultimate distclean charter; my immediate problem was that "make -C doc maintainer-clean" was not getting rid of the stamp files and thus I was getting bit by the problem that openjade was running all the time, even after I maintainer-cleaned. By Peter's recent decree that tarballs are supposed to be built in non-vpath-builds only, I am not really sure what should actually happen here, both on build and on the various clean targets. > The references to man files in srcdir in nonsql_manpage_files and > adjacent macros seem a tad suspicious as well. I agree, it probably merits more investigation. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Alvaro Herrera <alvherre@commandprompt.com> writes: > By Peter's recent decree that tarballs are supposed to be built in > non-vpath-builds only, I am not really sure what should actually happen > here, both on build and on the various clean targets. I think that that means the Makefile can just assume that *every* built file is built in the current directory, and $(srcdir) should only be applied to non-derived files. regards, tom lane
On Tue, 2009-10-06 at 12:56 -0400, Tom Lane wrote: > Alvaro Herrera <alvherre@commandprompt.com> writes: > > By Peter's recent decree that tarballs are supposed to be built in > > non-vpath-builds only, I am not really sure what should actually happen > > here, both on build and on the various clean targets. > > I think that that means the Makefile can just assume that *every* built > file is built in the current directory, and $(srcdir) should only be > applied to non-derived files. More or less, except when you are installing, you need to look in both places for files to install (and preferably avoid installing both, I think).
On Tue, 2009-10-06 at 12:24 -0400, Tom Lane wrote: > So isn't this still pretty broken? I notice that the clean and > distclean targets still use addprefix on a lot of temporary/intermediate > files that I would think get made in the build directory, not the source > directory. Yeah, those rules have "evolved" a bit. Basically, everything should be in clean except the bits that go into the tarball, namely the final man and html builds. I have committed some fixes. (It almost looks like 8.4 again now.) > The references to man files in srcdir in > nonsql_manpage_files and adjacent macros seem a tad suspicious as well. Indeed. This only affects if you build your own man pages in a vpath build, so it's not critical. I'll look at it later.