Hello Jan, * Jan Engelhardt wrote on Fri, Nov 28, 2008 at 02:06:57PM CET: > `make distcheck` from an obj dir fails, e.g. > > 14:04 yaguchi:/dev/shm/test > l > total 256 > drwxr-xr-x 2 jengelh users 260 Nov 28 14:04 . > drwxrwxrwt 4 root root 80 Nov 28 14:01 .. > -rw-r--r-- 1 jengelh users 65 Nov 28 14:01 Makefile.am > -rw-r--r-- 1 jengelh users 19388 Nov 28 14:03 Makefile.in > -rw-r--r-- 1 jengelh users 32266 Nov 28 14:03 aclocal.m4 > -rwxr-xr-x 1 jengelh users 52 Nov 28 14:02 autogen.sh > -rwxr-xr-x 1 jengelh users 130473 Nov 28 14:03 configure > -rw-r--r-- 1 jengelh users 111 Nov 28 14:02 configure.ac > -rwxr-xr-x 1 jengelh users 17867 Nov 28 14:03 depcomp > -rw-r--r-- 1 jengelh users 68 Nov 28 14:04 foo.c > -rw-r--r-- 1 jengelh users 23 Nov 28 14:03 foo.h > -rwxr-xr-x 1 jengelh users 13620 Nov 28 14:03 install-sh > -rwxr-xr-x 1 jengelh users 11135 Nov 28 14:03 missing > 14:04 yaguchi:/dev/shm/test > md obj > 14:04 yaguchi:/dev/shm/test > cd obj > 14:04 yaguchi:../test/obj > ../configure >/dev/null > 14:04 yaguchi:../test/obj > make > CC foo.o > CCLD foo > 14:04 yaguchi:../test/obj > make distcheck V=2 > [...] > make[1]: Entering directory `/dev/shm/test/obj/foo-0/_build' > depbase=`echo foo.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ > gcc -DPACKAGE_NAME=\"foo\" -DPACKAGE_TARNAME=\"foo\" > -DPACKAGE_VERSION=\"0\" -DPACKAGE_STRING=\"foo\ 0\" -DPACKAGE_BUGREPORT=\"\" > -DPACKAGE=\"foo\" -DVERSION=\"0\" -I. -I.. -g -O2 -MT foo.o -MD -MP -MF > -$depbase.Tpo -c -o foo.o ../foo.c &&\ > mv -f $depbase.Tpo $depbase.Po > ../foo.c:1:17: error: foo.h: No such file or directory > make[1]: *** [foo.o] Error 1 > make[1]: Leaving directory `/dev/shm/test/obj/foo-0/_build' > make: *** [distcheck] Error 2 > > That is because it uses "/dev/shm/test/obj/foo-0/_build/../.." as > $srcdir (which however is the $builddir) instead of > "/dev/shm/test/obj/foo-0/_build/.."
This seems to be a misunderstanding. What distcheck does here is the following: - first create a distribution tarball, - then, extract this tarball into a subdirectory foo-0/, - then, configure the sources in that subdirectory, in a VPATH setup, i.e., using a relative build directory named _build/. The most likely reason for the failure is that foo.h is not packaged. Solution then is to list it in *_SOURCES as well: bin_PROGRAMS = foo foo_SOURCES = foo.c foo.h Cheers, Ralf