GNOME Bugzilla – Bug 318542
./configure does not allow for compilation outside of distribution tree.
Last modified: 2015-07-21 00:11:27 UTC
configure assumes it is run from within the working directory of the distribution. This makes it more difficult for someone to compile doxygen from a read-only source, such as a CD-ROM or DVD-ROM. It also makes it harder to cross-compile, since there is no guarantee that the source tree is untouched and can be re-used for a compile for a different target platform. The GNU Toolkit allows for this via % sh configure --srcdir="../doxygen-1.4.4" or % cd obj % sh ../doxygen-1.4.4/configure I would be willing to help out and submit a patch, but I want to be sure that I would do it in such a way that it would be accepted by the doxygen team. Kindest regards, -- Sander Other information: Sample build output: ------------------- % ../../../doxygen/configure --static --prefix /Users/sander/work/doxygen/ build/macosx/../../export/macosx/ReleaseStatic/ cat: PLATFORMS: No such file or directory Autodetected platform macosx-c++... Checking for GNU make tool... using /usr/bin/make Checking for GNU install tool... using /usr/bin/install Checking for dot (part of GraphViz)... not found! Checking for perl... using /usr/bin/perl cat: VERSION: No such file or directory cat: Makefile.in: No such file or directory Created Makefile from Makefile.in... ../../../doxygen/configure: line 475: qtools/Makefile: No such file or directory ../../../doxygen/configure: line 481: qtools/Makefile: No such file or directory ../../../doxygen/configure: line 499: qtools/Makefile: No such file or directory Created qtools/Makefile from qtools/Makefile.in... ../../../doxygen/configure: line 475: src/Makefile: No such file or directory ../../../doxygen/configure: line 481: src/Makefile: No such file or directory ../../../doxygen/configure: line 499: src/Makefile: No such file or directory Created src/Makefile from src/Makefile.in... ../../../doxygen/configure: line 475: examples/Makefile: No such file or directory ../../../doxygen/configure: line 481: examples/Makefile: No such file or directory ../../../doxygen/configure: line 499: examples/Makefile: No such file or directory Created examples/Makefile from examples/Makefile.in... ../../../doxygen/configure: line 475: doc/Makefile: No such file or directory ../../../doxygen/configure: line 481: doc/Makefile: No such file or directory ../../../doxygen/configure: line 499: doc/Makefile: No such file or directory Created doc/Makefile from doc/Makefile.in... ../../../doxygen/configure: line 475: addon/doxywizard/Makefile: No such file or directory ../../../doxygen/configure: line 481: addon/doxywizard/Makefile: No such file or directory ../../../doxygen/configure: line 499: addon/doxywizard/Makefile: No such file or directory Created addon/doxywizard/Makefile from addon/doxywizard/Makefile.in... ../../../doxygen/configure: line 475: addon/doxmlparser/src/Makefile: No such file or directory ../../../doxygen/configure: line 481: addon/doxmlparser/src/Makefile: No such file or directory ../../../doxygen/configure: line 499: addon/doxmlparser/src/Makefile: No such file or directory Created addon/doxmlparser/src/Makefile from addon/doxmlparser/src/Makefile.in... ../../../doxygen/configure: line 475: addon/doxmlparser/test/Makefile: No such file or directory ../../../doxygen/configure: line 481: addon/doxmlparser/test/Makefile: No such file or directory ../../../doxygen/configure: line 499: addon/doxmlparser/test/Makefile: No such file or directory Created addon/doxmlparser/test/Makefile from addon/doxmlparser/test/Makefile.in... ../../../doxygen/configure: line 475: addon/doxmlparser/examples/metrics/Makefile: No such file or directory ../../../doxygen/configure: line 481: addon/doxmlparser/examples/metrics/Makefile: No such file or <snip> % make make: *** No rule to make target `src/version.cpp', needed by `all'. Stop. %
Please provide such a patch, and I'd be happy to include it.
I see that the easiest way to do this is to start getting into the habit of using autotools. troll make is apparently requiring that the configure script be run from doxygen's main source directory. The GNU autotools are actually much better and more standard than troll make, and so far is the only way I could possibly make my doxygen.spec file dynamic (for RPM building). The generated configure script even has the ability to check for missing headers and include files. One of my projects, libteklti, uses autotools. The use of autotools wouldn't be needed when compiling from the tarball generated by a "make dist" command. However, when building from sources from a CVS download, autotools would be required. At least most unix systems nowadays have the autotools installed, and the changes I would implement would have no effect on Windows users at all.
I spent an hour looking through a autoconf-generated file, and found something like the following that might work just fine with t-make: ac_local=`dirname $0` echo $ac_local I'll give `dirname` a try, and see what happens.
I have fixed this bug. See bug #317773 to view the tarball.
Hi Kevin, Thanks for the patch and help on this. I'll give your tarball a run and provide you feedback ASAP. -- Sander
Seen the change to CMake for the current release I think this bug can be set to RESOLVED OBSOLETE
Per comment #6, I am setting this bug to OBSOLETE. Furthermore, I was able to use Cmake outside of the source tree.