[ Autoconf readers, see http://lists.gnu.org/archive/html/bug-automake/2006-06/msg00010.html ]
* quoting myself: > > Stepan's patch > http://lists.gnu.org/archive/html/automake-patches/2006-06/msg00001.html > is broken: autoconf has "special magic" to compute $(MKDIR_P) in each > directory -- it may contain a relative path to install-sh. > > Then, our distdir change > http://lists.gnu.org/archive/html/automake-patches/2006-05/msg00088.html > isn't right either, because we use $(mkdir_p) from a changed directory. OK to apply the patch below to Automake? There is still an Automake problem with this patch, exposed by a nobase.test failure: install-sh needs executable permissions set so that it works with AC_PROG_MKDIR_P (they can be unset if install-sh comes into play by means of a patch or so). Autoconf OTOH can't easily set $MKDIR_P to '$(SHELL) path/to/install-sh' because that would break for non Makefiles. I presume it could set "$SHELL path/to/install-sh", expanding $SHELL at config.status time. I don't know whether anything could be broken by that though. Cheers, Ralf * m4/mkdirp.m4 (AM_PROG_MKDIR_P): Set `mkdir_p' to `'$(MKDIR_P)'', so that it retains the per-directory value computed by config.status. * lib/am/distdir.am (distdir): do not use `$(mkdir_p)' from a changed directory. Bugs reported by Ralf Menzel. * THANKS: Update. Index: lib/am/distdir.am =================================================================== RCS file: /cvs/automake/automake/lib/am/distdir.am,v retrieving revision 1.65 diff -u -r1.65 distdir.am --- lib/am/distdir.am 6 Jun 2006 21:10:25 -0000 1.65 +++ lib/am/distdir.am 10 Jun 2006 14:28:06 -0000 @@ -112,9 +112,9 @@ ## be specified for `dist' conditionally.) ## case $$dist_files in \ - */*) ( cd "$(distdir)" && \ - $(mkdir_p) `echo "$$dist_files" | \ - sed -n 's,/[^/]*$$,,p' | sort -u`) ;; \ + */*) $(mkdir_p) `echo "$$dist_files" | \ + sed -n 's,/[^/]*$$,,p' | sort -u | \ + sed 's|^|$(distdir)/|'` ;; \ esac; \ ## ## Index: m4/mkdirp.m4 =================================================================== RCS file: /cvs/automake/automake/m4/mkdirp.m4,v retrieving revision 1.10 diff -u -r1.10 mkdirp.m4 --- m4/mkdirp.m4 7 Jun 2006 05:38:29 -0000 1.10 +++ m4/mkdirp.m4 10 Jun 2006 13:33:05 -0000 @@ -11,5 +11,5 @@ AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.59c])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl -AC_SUBST([mkdir_p], [$MKDIR_P])dnl +AC_SUBST([mkdir_p], ['$(MKDIR_P)'])dnl ])