[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
make dist fails
From: |
Kai Sterker |
Subject: |
make dist fails |
Date: |
Wed, 6 May 2009 00:02:07 +0200 |
Hello,
I have a strange problem with the 'make dist' target. I've been using
automake 1.10.1 and autoconf 2.62. Updating to 1.10.2 and 2.63 showed
exactly the same behavior.
I am using an out-of-source build in which I run 'make dist'. It
aborts with the following error:
Tenebrae:~/adonthell/adonthell-build kai$ make dist
{ test ! -d adonthell-0.4.0-alpha-3 || { find adonthell-0.4.0-alpha-3
-type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr
adonthell-0.4.0-alpha-3; }; }
test -d adonthell-0.4.0-alpha-3 || mkdir adonthell-0.4.0-alpha-3
cp: adonthell-0.4.0-alpha-3/scripts/make-bundle.sh: No such file or directory
make: *** [distdir] Error 1
However:
Tenebrae:~/adonthell/adonthell-build kai$ ls -la ../adonthell/scripts/
total 8
drwxr-xr-x 4 kai staff 136 May 5 21:22 .
drwxr-xr-x 47 kai staff 1598 May 5 23:19 ..
drwxr-xr-x 6 kai staff 204 Mar 15 2008 CVS
-rw-r--r-- 1 kai staff 3454 Mar 15 2008 make-bundle.sh
So the file is definitely there. Here comes the funny bit. To trace
this error down, I've added some echos into the distdir target of the
Makefile:
[...]
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| echo "cp $$d/$$file" \ <-------- echo added here
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
[...]
And now it works!
[...]
cp ../adonthell/config/UsePkgConfig.cmake
cp ../adonthell/config/PythonExtraLibs.cmake
cp ../adonthell/config.h.cmake
cp ../adonthell/scripts/make-bundle.sh
cp ../adonthell/README.MacOSX
[...]
The same thing happens in a few other directories and I could "solve"
it in the same fashion.
Soon after, there is another failure though:
list='libltdl src doc test'; for subdir in $list; do \
if test "$subdir" = .; then :; else \
test -d "adonthell-0.4.0-alpha-3/$subdir" \
|| ../adonthell/./install-sh -c -d "adonthell-0.4.0-alpha-3/$subdir" \
|| exit 1; \
distdir=`CDPATH="${ZSH_VERSION+.}:" && cd adonthell-0.4.0-alpha-3 && pwd`; \
top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd
adonthell-0.4.0-alpha-3 && pwd`; \
(cd $subdir && \
make \
top_distdir="$top_distdir" \
distdir="$distdir/$subdir" \
am__remove_distdir=: \
am__skip_length_check=: \
distdir) \
|| exit 1; \
fi; \
done
:
mkdir /Users/kai/adonthell/adonthell-build/adonthell-0.4.0-alpha-3/libltdl
mkdir: /Users/kai/adonthell/adonthell-build/adonthell-0.4.0-alpha-3/libltdl:
File exists
make[1]: *** [distdir] Error 1
make: *** [distdir] Error 1
I guess the problem here is that distdir target in libltdl/Makefile
looks like follows:
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
But the top level makefile already creates a libltdl directory. Funny
thing again, the distdir target of the toplevel makefile starts with
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir)
so it wouldn't fall into that trap. But search me if I knew why those
two Makefiles differ. Both should be generated at configure time (but
of course libltdl comes with its own configure script). Maybe that's
the reason.
Manually editing libltdl/Makefile got me over this and I now have the
dist, but it's not a very elegant solution. Maybe somebody here can
suggest something better?
As an additional info: the project in question is
http://savannah.nongnu.org/projects/adonthell, module adonthell in
CVS, in case somebody wants to try and reproduce the problems. I'm
running on OSX 10.4.11, using GNU make 3.80. Please let me know if I
could provide more details.
Regards,
Kai
- make dist fails,
Kai Sterker <=