[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