[dune-pdelab] *** No rule to make target `doxygen-tag', needed by `install-doxygen'. Stop.

Victor Mataré matare at lih.rwth-aachen.de
Tue Jan 17 14:09:12 CET 2012


On Tuesday 17 January 2012 13:04:31 Markus Blatt wrote:
> Hi,
> 
> On Tue, Jan 17, 2012 at 12:50:00PM +0100, Victor Mataré wrote:
> > On Friday 13 January 2012 09:29:08 Markus Blatt wrote:
> > > Please check whether you really have doxygen available und DUNE finds it:
> > > cd dune-pdelab
> > > grep doxygen config.log 
> > 
> > $ grep doxygen config.log
> > configure:4305: checking for doxygen
> > config.status:1602: creating doc/doxygen/Doxyfile
> > config.status:1602: creating doc/doxygen/Makefile
> > 
> 
> There should be something like 
> 
> configure:4296: checking for doxygen
> configure:4312: found /usr/bin/doxygen
> configure:4323: result: doxygen
> 
> in that file. I think, DUNE did not find doxygen. Is it in your PATH
> variable, i.e. can you start it by hand whith `doxygen`?

OK, here's what happened:
I built dumux/dune with this command:

$ ./dune-common-2.1.1/bin/dunecontrol --module=dumux --opts=dumux-2.0.2/optim.opts all

And then tried to install with this command:

$ ./dune-common-2.1.1/bin/dunecontrol --module=dumux --opts=dumux-2.0.2/optim.opts make install

Documentation was built and installed correctly for all modules according to whatever default the build command implies. Except for pdelab, where the build defaults seem to be inconsistent with the installation defaults. However now that I explicitly specified --enable-documentation for the configure phase, the issue is worked around:

$ ./dune-common-2.1.1/bin/dunecontrol --module=dumux --configure-opts="--enable-documentation" --all-opts=dumux-2.0.2/optim.opts all

Now when I grep for doxygen in config.log, you get your expected output since doxygen is actually used:

$ grep doxygen dune-pdelab/config.log 
configure:4305: checking for doxygen
configure:4321: found /usr/bin/doxygen
configure:4332: result: doxygen
config.status:1602: creating doc/doxygen/Doxyfile
config.status:1602: creating doc/doxygen/Makefile
ac_cv_prog_DOXYGEN=doxygen
DOXYGEN='doxygen'

So I guess this means that the defaults for documentation build/install are inconsistent, probably because the install scripts don't honour BUILD_DOCS for some reason. Now that I know how to work around this bug, I'm hitting the next one (which was already there in the 2.0snapshot):

test -z "/usr/local/share/doc/dune-pdelab" || /bin/mkdir -p "/usr/local/share/doc/dune-pdelab"
test -z "/usr/local/include/dune/pdelab/finiteelementmap" || /bin/mkdir -p "/usr/local/include/dune/pdelab/finiteelementmap"
 /usr/bin/install -c -m 644 conformingconstraints.hh edges0.5fem.hh finiteelementmap.hh global.hh hangingnodeconstraints.hh hangingnodemanager.hh l2orthonormal.hh mfdconstraints.hh mimeticfem.hh monomfem.hh opbfem.hh p0constraints.hh p0fem.hh p0fem.hh p12dfem.hh p1fem.hh p1fem.hh pk1dbasis.hh pk2dfem.hh pk3dfem.hh pkfem.hh powerfem.hh q12dfem.hh q1fem.hh q22dfem.hh qkdg.hh rannacher_turek2dfem.hh rt02dfem.hh rt0constraints.hh rt0q2dfem.hh rt0q3dfem.hh rt0qfem.hh variablemonomfem.hh '/usr/local/include/dune/pdelab/finiteelementmap'
/usr/bin/install: will not overwrite just-created `/usr/local/include/dune/pdelab/finiteelementmap/p0fem.hh' with `p0fem.hh'
/usr/bin/install: will not overwrite just-created `/usr/local/include/dune/pdelab/finiteelementmap/p1fem.hh' with `p1fem.hh'
make[4]: *** [install-finiteelementmapHEADERS] Error 1
make[4]: Leaving directory `/home/matare/DUMUX/dune-pdelab/dune/pdelab/finiteelementmap'
make[3]: *** [install-am] Error 2
make[3]: Leaving directory `/home/matare/DUMUX/dune-pdelab/dune/pdelab/finiteelementmap'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/matare/DUMUX/dune-pdelab/dune/pdelab'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/matare/DUMUX/dune-pdelab/dune'
make: *** [install-recursive] Error 1
--- Failed to build dune-pdelab ---
Terminating dunecontrol due to previous errors!

In dune-pdelab/dune/pdelab/finiteelementmap/Makefile I see duplicate entries for p0fem.hh and p1fem.hh:

finiteelementmap_HEADERS = \
        conformingconstraints.hh                \
        edges0.5fem.hh                          \
        finiteelementmap.hh                     \
        global.hh                               \
        hangingnodeconstraints.hh               \
        hangingnodemanager.hh                   \
        l2orthonormal.hh                        \
        mfdconstraints.hh                       \
        mimeticfem.hh                           \
        monomfem.hh                             \
        opbfem.hh                               \
        p0constraints.hh                        \
        p0fem.hh                                \
        p0fem.hh                                \
        p12dfem.hh                              \
        p1fem.hh                                \
        p1fem.hh                                \
        pk1dbasis.hh                            \
        pk2dfem.hh                              \
        pk3dfem.hh                              \
        pkfem.hh                                \
        powerfem.hh                             \
        q12dfem.hh                              \
        q1fem.hh                                \
        q22dfem.hh                              \
        qkdg.hh                                 \
        rannacher_turek2dfem.hh                 \
        rt02dfem.hh                             \
        rt0constraints.hh                       \
        rt0q2dfem.hh                            \
        rt0q3dfem.hh                            \
        rt0qfem.hh                              \
        variablemonomfem.hh

Lo and behold, after deleting the duplicate lines, make install works fine. Now where they come from I cannot reproduce since I don't know autotools well enough.

> 
> > 
> > OK, so I just did and I found that it doesn't. But then how am I
> > supposed to install it if make install doesn't work? 
> 
> You actually do not have to install it, to use it. 
> I usually have all the modules lying around in one directory of my
> home-dir :
> 
> mblatt at legolas:~/src/dune/2.1-tarballs$ ls
> dune-common-2.1.1  dune-istl-2.1.1            dune-pdelab
> dune-grid-2.1.1    dune-localfunctions-2.1.1  dune-pdelab-howto
> 
> And work from there using dune-control and make directly. Probably a
> matter of taste.

As a sysadmin I don't consider issues like usability, maintainability, OS integration and privilege separation a matter of taste. Having software "lying around" is not an option if I'm expected to deliver a secure, usable and up-to-date software environment to the end user. I think fixing make install would be a good idea since otherwise you're breaking common unix practice, which will probably put off some potential user every now and then ;-)

regards,
Victor

-- 
Victor Mataré
Sysadmin
Lehrstuhl für Ingenieur- und Hydrogeologie der RWTH Aachen
Lochnerstraße 4-20
52064 Aachen
Ph: +49-241-8096778
Fx: +49-241-8092280

http://www.lih.rwth-aachen.de




More information about the dune-pdelab mailing list