qmake build system issue

Martin Gysel me at bearsh.org
Thu Nov 14 12:45:22 UTC 2013


Hi

while trying to write an gentoo ebuild for the qt version I came across
a build system issue. running qmake on a clean checkout doesn't generate
an install rule for files which do not exist at that time. this affects
the install rule for the html documetation as the html file is generated
during building.

here's a snippet from the Makefile generated after a clean checkout
install_doc: first FORCE
        @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/$(DOCDIR)/ || $(MKDIR)
$(INSTALL_ROOT)/$(DOCDIR)/

        $(MAKE) -C /home/bearsh/workspace/subsurface/Documentation
OUT=/home/bearsh/workspace/subsurface/Documentation/ doc
        -$(INSTALL_DIR)
/home/bearsh/workspace/subsurface/Documentation/images
$(INSTALL_ROOT)/$(DOCDIR)/

once I call make or create the empty file
'Documentation/user-manual.html' the Makefile looks like this:
install_marbledir: first FORCE
        @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/$(DATADIR)/subsurface/ ||
$(MKDIR) $(INSTALL_ROOT)/$(DATADIR)/subsurface/
        -$(INSTALL_DIR)
/home/bearsh/workspace/subsurface/marbledata/maps
$(INSTALL_ROOT)/$(DATADIR)/subsurface/
        -$(INSTALL_DIR)
/home/bearsh/workspace/subsurface/marbledata/bitmaps
$(INSTALL_ROOT)/$(DATADIR)/subsurface/

after some googling it seems to be a known or expected behaviour of qmake :(

any ideas how to solve this issue? one *dirty* way would be to add an
empty user-manual.html to git and put it also into .gitignore or we add
a install target to the doc Makefile or we simply remove the installing
of any doc file, so it's up to the packager to 'install' it or not.

/martin


More information about the subsurface mailing list