GNOME Bugzilla – Bug 570216
glibmm fails to build outside source tree
Last modified: 2009-02-05 16:00:49 UTC
When building glibmm outside source tree, following errors were found: - In docs/reference/, doxygen fails to find glibmm_header.html_fragment: ---8<--- make[3]: Entering directory `/home/thep/build/gnome_svn/glibmm/docs/reference' rm -rf html rm -rf xml doxygen Doxyfile Error: tag HTML_HEADER: header file `glibmm_header.html_fragment' does not exist make[3]: *** [html/index.html] Error 1 make[3]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs/reference' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/thep/build/gnome_svn/glibmm' make: *** [all] Error 2 ---8<--- The files 'glibmm_{header,footer}.html_fragment' are in $srcdir, which is different from $builddir for non-source-dir builds. And their paths are missing in Doxyfile. - In the same subdir, glibmm-2.4.devhelp generation fails, with complaint that "doxygen_to_devhelp.xsl" is missing: ---8<--- processing group__Markup.html... xsltproc --stringparam book_title "glibmm 2.4 Reference Manual" \ --stringparam book_name "glibmm 2.4" \ --stringparam reference_prefix "../../../doc/glibmm-2.4/docs/reference/html" \ -o glibmm-2.4.devhelp doxygen_to_devhelp.xsl xml/index.xml warning: failed to load external entity "doxygen_to_devhelp.xsl" cannot parse doxygen_to_devhelp.xsl make[3]: *** [glibmm-2.4.devhelp] Error 4 make[3]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs/reference' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/thep/build/gnome_svn/glibmm' make: *** [all] Error 2 ---8<--- Again, the file is located in $srcdir. So the path is just missing here. - With errors above fixed, 'make install' still fails in docs/reference/, because glibmm-2.4.devhelp is not found again: ---8<--- /home/thep/bin/install-check -m 644 /home/thep/vcs/gnome_svn/glibmm/docs/reference/glibmm-2.4.devhelp /home/gnome2/share/devhelp/books/glibmm-2.4/$f; /usr/bin/install: cannot stat `/home/thep/vcs/gnome_svn/glibmm/docs/reference/glibmm-2.4.devhelp': No such file or directory make[3]: *** [install-reference] Error 1 make[3]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs/reference' make[2]: *** [install-am] Error 2 make[2]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs/reference' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/thep/build/gnome_svn/glibmm/docs' make: *** [install-recursive] Error 1 ---8<--- This is under the 'install-reference:' target. It tries to install the devhelp file from $srcdir (/home/thep/vcs/gnome_svn/glibmm/... for my case above), not from $builddir where it's generated.
Created attachment 127764 [details] [review] Summarized fixes This patch summarizes all the fixes, which make the build successful on my machine.
Created attachment 127835 [details] [review] $(top_builddir) instead of $(builddir) Use $(top_builddir), as some automake versions do not provide $(builddir), e.g. Bug #570357.
Created attachment 127855 [details] [review] without builddir Better yet, the built file is already at current dir. Just remove the path.
Committed. Thanks. Please remember to patch the Changelog in future.