Explicitly substitute absolute path variables.

Apparently, Automakes prior to 1.10 do not automatically substitute
the absolute path directory variables

   abs_srcdir    abs_top_srcdir
   abs_builddir  abs_top_builddir

that Autoconf computes (since ca. 2003) into the Makefiles.  This
leads to a subtle error when OPM-Core is used in conjunction with
dune-common's DUNE_CHECK_MODULES (or, more appropriately, our own
OPM_CORE_CHECK_MODULES) macro that gets invoked through dunecontrol.

The *_CHECK_MOUDLES macro contains an unconditional statement that
uses 'abs_top_srcdir' to compute the absolute path to the current
module's top source directory.  When abs_top_srcdir is unset, the
root becomes unset too, whence the subsequent existence and validity
checks fail due to incorrect CPPFLAGS and/or LDFLAGS.  It will also
fail to locate the 'dune.module' dependency file.

By explicitly substituting the above variables into the Makefiles,
as was also done in revisions 5819 and 5845 of dune-common's
Subversion repository, we're guarding against this particular
failure mode.

Tested on: CentOS 5.8 (Autoconf 2.59, Automake 1.9.6)
This commit is contained in:
Bård Skaflestad 2012-07-12 14:37:23 +02:00
parent 20b0c8f83b
commit 9f47cf0f54

View File

@ -32,6 +32,16 @@ OPM_CORE_CHECKS
OPM_DYNLINK_BOOST_TEST
dnl Substitute Autoconf's abs_*dir variables into the Makefiles for the
dnl benefit of external code that uses these variables to derive
dnl locations (e.g., Dune's DUNE_CHECK_MODULES macro). Automakes prior
dnl to version 1.10 do not automatically substitute these variables into
dnl output files.
AC_SUBST([abs_srcdir])
AC_SUBST([abs_builddir])
AC_SUBST([abs_top_srcdir])
AC_SUBST([abs_top_builddir])
AC_CONFIG_FILES([
Makefile
tests/Makefile