After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 366119 - Installation breaks under Solaris (and probably other platforms)
Installation breaks under Solaris (and probably other platforms)
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: build
1.4.x
Other Solaris
: Normal major
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2006-10-28 06:43 UTC by David Sainty
Modified: 2007-04-05 20:10 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description David Sainty 2006-10-28 06:43:08 UTC
I haven't tested version 1.5.0, but I have checked the code and the bug appears to still be there.

The problem starts in Makefile.in:

	install_docs:
		cp -r doc $(DOCDIR)
		cd $(DOCDIR)/doc ; $(MAKE)

In doc/Makefile.in:

	all: language FORCE
		*Do install stuff*

	language: language.doc 

	language.doc: $(wildcard ../src/translator*.h) maintainers.txt language.tpl translator.py
		python translator.py

The problem is that "cp -r" might copy language.doc BEFORE maintainers.txt, language.tpl or translator.py.  On Solaris this happens consistently.  But "translator.py" doesn't work in the installation directory, it needs source files to work with.

One fix is to replace "cd $(DOCDIR)/doc ; $(MAKE)" with "cd $(DOCDIR)/doc ; $(MAKE) --assume-new=language.doc".  This is a bit ugly, and assumes "gmake".

A better fix would be to to the MAKE under the build directory, and just copy the generated files into DOCDIR instead of running "make" in the installation location.
Comment 1 Kevin McBride 2006-10-29 14:26:16 UTC
I agree.  The files should be generated entirely within the build directory, not within the installation directory.

Kevin -> Dimitri: Any ideas on what else we should change in the two Makefile.in's pointed to here?
Comment 2 Dimitri van Heesch 2006-10-30 19:55:48 UTC
Ok, I see the problem. I propose the following rule as a replacement:

install_docs: 
        $(INSTTOOL) -d $(DOCDIR)
        $(MAKE) -C examples
        $(MAKE) -C doc 
        $(MAKE) -C latex 
        cp latex/doxygen_manual.pdf $(DOCDIR)
        cp -r examples $(DOCDIR)
        cp -r html $(DOCDIR)

Could you check for me if this works as expected?
Comment 3 David Sainty 2006-10-31 20:09:06 UTC
Yes, this works well, thanks.  I've tested this on NetBSD, Solaris and SUSE Linux.
Comment 4 Kevin McBride 2006-11-01 04:59:42 UTC
assigning bug to Dimitri, so that the patch will be included in the next CVS update.
Comment 5 Dimitri van Heesch 2007-04-05 20:10:09 UTC
This bug was marked "assigned" by me some time ago, which means it should be
fixed in version 1.5.2 and is hereby marked as such. I would kindly request you
to check if this version indeed fixes the problem and reopen the bug report
should you still see the same problem.