GNOME Bugzilla – Bug 125646
Build fails in doc/reference directory
Last modified: 2009-08-15 18:40:50 UTC
From a clean CVS checkout, I get this: *** Building conglomerate-overrides.txt *** ../../uss/mkgtkdocoverrides ../..'/src' ../..'/doc/reference/conglomerate-overrides.txt' *** Added 0 objects to conglomerate-overrides.txt *** touch scan-build.stamp make[3]: *** No rule to make target `conglomerate-overrides.txt', needed by `tmpl-build.stamp'. Stop.
file is now in CVS. I expect there are more this kind of files in doc/reference.
rm -r doc/reference cvs update -d doc ./autogen.sh make results now in: make[3]: *** No rule to make target `tmpl/*.sgml', needed by `sgml-build.stamp'. Stop. make[3]: Leaving directory `/usr/src/conglomerate/doc/reference' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/src/conglomerate/doc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/src/conglomerate' make: *** [all] Error 2 On a next `make` the directory exists and build of doc is completed. This should be fixed also.
On the cong developers mailinglist was this discussion: | On Sun, Oct 26, 2003 at 03:11:12AM +0200, Robert Varga wrote: | > On Sun, 2003-10-26 at 01:30, Geert Stappers wrote: | > > On Sat, Oct 25, 2003 at 11:28:42PM +0300, Robert Varga wrote: | ..... | > > > So the gtk-doc part is ok now, right? | > > IM(NS)HO it is still not what the gtkdoc authors had mind. | > > I think that we should not do several things at the same time. | > > | > > Reverse doc/reference/Makefile.am more to the original example. | > > | > > | > > See also bugzilla.g.o/123318 & 123315 | > > | > > | > I agree with you that the reference generation is messy right now. | > Please bare with me a few days while I investigate some more the GObject | > tree issue. | | No worries Mate! | You are doing fine. | | > | > Robert Varga | > | | Geert Stappers We known that reference generation is not as is should be and we are working on it.
I checked out the CVS code a few days ago and got the "No rule to make tmpl/*.sgml" error as well. It seems that the * simply isn't being expanded - the line in the makefile (doc/reference/Makefile) that caues the problem is of the form sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml Which I presume means simply that the sgml-build.stamp target depends on all the .sgml files in the tmpl directory, and if any .sgml file is updated, this target needs to be run. Are either of the 2 macros on that line stopping the * expanding? Could this be taken care of with a $(wildcard)?
Update description of this bug?
retitled.
only a crossreference to bug 123360
In CVS now the doc/reference/sgml directory, which goes also in dist tarballs
Added also a tmpl directory to CVS. While documenting it here, I'm realizing that we mis some important thing.
The missing part could be in 125787 or 125785
The missing part could be in bug 125787 or bug 125785 (now you can click on the hyperlinks)
Ask me next year what the progress is.
I knew already that this is a nasty bug, now I saying loudly IT IS A NASTY BUG.
Bug #131600, disable gtk-doc, allows us to lower the severity
From #conglomerate at irc.gimp.net 16:37 < nsh> It's about problem with gtk-doc make we discussed. 16:38 < nsh> Probably, it is possible to create empty file dummy.sgml in reference/gtk-doc dir 16:38 < nsh> and add it to CVS. 16:39 < nsh> Then CVS could be build with only one make from the clean checkout.:) 16:39 < stappers> mmm, I remember vaguely such tests
The reason for that is error in common gtk-doc.make file (Common rule for build documentation). Here is part of makefile which fails: sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml @echo '*** Building SGML ***' cd $(srcdir) && \ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main touch sgml-build.stamp The problem is that make builds dependency tree before doing all rules. In that moment, the $(srcdir)/tmpl/*.sgml dir is empty, that is the cause of error. Here is possible solutions: 1. Correct makefile. I don't like this change, because makefile is common and used in many gnome projects. 2. Most projects avoid this by including tmpl/*.sgml files into CVS. Those are gtk, libgnomeui, gnome-vfs and many others. I also don't like this because tmpl/*.sgml files are autogenerated by gtk-doc from conglomerate-sections.txt. The only advantage of such change is that it is a common practice. 3. Create empty dummy.sgml file and add this to CVS $touch doc/reference/tmpl/dummy.sgml $cvs add doc/reference/tmpl/dummy.sgml This is solution I prefer, since it fixes the error and doesn't dirty CVS with autogenerated files.
Filed bug 145292 against gtk-doc, is is titled That not so funny feature Now it makes sense to "hide" the problem in this project.
Bug 145292 is retitled into Confusing mention of make failure
Now there is doc/reference/tmpl/dummy.sgml in CVS A first-and-single compile run after "checkout" is now possible.
17:32 < stappers> nsh: how do like the current state of http://bugzilla.gnome.org/show_bug.cgi?id=125646 17:33 < stappers> nsh: please "verify" it 17:34 < nsh> It's great. :) 17:40 < stappers> could you mark it "VERIFIED" ? 17:47 < nsh> I have no permissions :( 17:56 -!- nsh [~shmyrev@193.232.173.25] has quit [Download Gaim: http://gaim.sourceforge.net/]
and CLOSED