[Dune] VPATH builds and DUNE_COMMON_ROOT
pipping at lavabit.com
pipping at lavabit.com
Mon Sep 12 17:18:31 CEST 2011
Hello,
I have a problem with VPATH builds (aka out-of-source builds),
specifically the generation of doxygen documentation resulting
from the doc target (of make) using the 2.1 branch of dune.
I use dunecontrol to build modules like dune-grid which live in
the same directory as dune-common. An invocation will look like
this:
./dune-common/bin/dunecontrol --builddir=<something>
The doc target of e.g. dune-grid will evaluate the following
lines from dune-common/am/doxygen:
if test -f $(srcdir)/Doxylocal && test $(srcdir)/Doxylocal -nt
$(srcdir)/Doxyfile.in; then \
cd $(top_srcdir) && $(DUNEDOXYNIZE); \
fi
The problem occurs when Doxylocal is newer than Doxyfile.in
because only then is DUNEDOXYNIZE called.
The value of DUNEDOXYNIZE can be traced back to dune-common/am:
doxygen:DUNEDOXYNIZE=@DUNE_COMMON_ROOT@/bin/dunedoxynize
That looks sane. But for some reason DUNE_COMMON_ROOT ends up
being the same as DUNE_COMMON_BUILDDIR for me (so that it ends with
/<builddir>) which for a VPATH
build it clearly should not.
If I run
touch ../../../doc/doxygen/Doxylocal
from inside <builddir>/doc/doxygen and then
make doc
I consequently get an error:
if test -f [..]/dune-grid/doc/doxygen/Doxylocal && test
[..]/dune-grid/doc/doxygen/Doxylocal -nt
[..]/dune-grid/doc/doxygen/Doxyfile.in; then \
cd [..]/dune-grid && [..]/dune-common/build_gcc/bin/dunedoxynize; \
fi
/bin/bash: line 1: [..]/dune-common/<builddir>/bin/dunedoxynize: No such
file or directory
Please note that there is also a global installation of
dune-common in /usr on the machine in question that should be
ignored because DUNE_CONTROL_PATH is set accordingly during the
dunecontrol invocation.
Best regards,
Elias Pipping
More information about the Dune
mailing list