>>> "David" == David Kirkby <[EMAIL PROTECTED]> writes:

[...]

 David> The problem is that if run from the 'tests' directory, this runs okay,
 David> as the paths given in the test '../tools/src/mycksum' and
 David> '../examples/cop1.bmp' are correct relative to that 'tests' directory.
 David> However, if 'make distcheck' is run from the top directory of the
 David> package, the tests fails as those paths are wrong. 

To account for VPATH-builds, you should consider that sources files
lie in `$srcdir', not `.'.  Only built files are in the current directory.

The above two paths are probably better written
`$srcdir/../tools/src/mycksum' and '$srcdir/../examples/cop1.bmp'.

$(srcdir) is defined as a Make variable in each Makefile.  It is
also exported as an environment variable to each test run as
part of an Automake-style testsuite.

 David> Am I doing something fundamentally flawed? If not, is there a way of
 David> referring to the top level directory, so that for example $TOP/tests
 David> and $TOP/examples always point to the same directory, no matter where
 David> they are run from?

Makefiles define $(top_srcdir), but this isn't exported to
tests.  Probably because nobody needed that yet.

To answer your subject, there is no garanty that either
$(srcdir) or $(top_srcdir) are absolute or relative, they can be
either.  Autoconf has recently started to substitute
@abs_srcdir@ and @abs_top_srcdir@ (they do not get defined as
Makefile variables, but you could do this yourself), however
generally it's better to avoid using absolute paths.
-- 
Alexandre Duret-Lutz



Reply via email to