Hi Alexandre, * Alexandre Duret-Lutz wrote on Sat, Mar 18, 2006 at 08:37:57AM CET: > >>> "RW" == Ralf Wildenhues <[EMAIL PROTECTED]> writes:
> RW> [3] The $(MAKE) invocation for the subpackage `distdir' is not > RW> portable to all `make' implementation (as not all allow to override > RW> set macros from the command line); this requirement does not change > RW> with the patch. > > It looks portable to me Hmm. AFAIK the make launched won't necessarily override the distdir = $(PACKAGE)-$(VERSION) which it reads from the Makefile, with distdir="$$distdir/$$subdir" which it gets on its command line. Same with am__remove_distdir. > (as long as you don't expect your assignment to hold for the submakes > of the one being launched, of course, but that's not needed here). Oh, sure. > RW> * tests/Makefile.am: Updated. > > "Update." :) There is considerable variation among ChangeLog entries in packages I know with respect to the passive or active voice. Especially for those parts of a change which are mechanical, the passive voice does not sound too wrong to me. ;-) But I've changed that to your liking anyways. > RW> + am__remove_distdir=: \ > Somme comment along the lines of > ## Disable am__remove_distdir so that sub-package do not clear a > ## directory we have already cleared and might even have populated > ## populated (e.g. shared AUX dir in the sub-package.) > maybe ? At least it sure would help my bad memories. Added. > Otherwise the patch looks fine to me, please install! Thanks for the review! > +cat >subpkg/foobar <<'END' > It doesn't matter to me here, but those could be echos if you care > for speed (I think to remember you do). Well, yes I do. In places where it matters. FWIW, echo could also be used for multiline files, except that echo "\ foo bar" may look a bit ugly. I changed them, but this really isn't a critical thing. Applied like below. Cheers, Ralf Allow package trees (packages with subpackages) to share common distributed auxiliary files (and directories) that reside within a subpackage. * lib/am/distdir.am (distdir %?TOPDIR_P%): Do not fail if `$(distdir)' already exists. (%?SUBDIRS%): Set `am__remove_distdir' to `:' to prevent removal of subpackage trees for distribution. * tests/subpkg3.test: New test. * tests/Makefile.am: Update. Index: lib/am/distdir.am =================================================================== RCS file: /cvs/automake/automake/lib/am/distdir.am,v retrieving revision 1.63 diff -u -r1.63 distdir.am --- lib/am/distdir.am 12 Jan 2006 21:11:14 -0000 1.63 +++ lib/am/distdir.am 19 Mar 2006 05:02:15 -0000 @@ -51,7 +51,7 @@ ## if %?TOPDIR_P% $(am__remove_distdir) - mkdir $(distdir) + test -d $(distdir) || mkdir $(distdir) endif %?TOPDIR_P% ## ## @@ -176,6 +176,10 @@ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ + ## Disable am__remove_distdir so that sub-packages do not clear a + ## directory we have already cleared and might even have populated + ## (e.g. shared AUX dir in the sub-package). + am__remove_distdir=: \ distdir) \ || exit 1; \ fi; \ Index: tests/Makefile.am =================================================================== RCS file: /cvs/automake/automake/tests/Makefile.am,v retrieving revision 1.593 diff -u -r1.593 Makefile.am --- tests/Makefile.am 10 Mar 2006 12:02:26 -0000 1.593 +++ tests/Makefile.am 19 Mar 2006 05:02:15 -0000 @@ -499,6 +499,7 @@ subobjname.test \ subpkg.test \ subpkg2.test \ +subpkg3.test \ subst.test \ subst2.test \ substref.test \ --- /dev/null 2006-03-19 06:33:14.877151536 +0100 +++ tests/subpkg3.test 2006-03-18 20:04:40.000000000 +0100 @@ -0,0 +1,61 @@ +#! /bin/sh +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Automake is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Automake; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +# make sure different subpackages may share files and directories. + +. ./defs || exit 1 + +set -e + +cat >Makefile.am <<'END' +SUBDIRS = subpkg +EXTRA_DIST = subpkg/foobar +END + +cat >>configure.in <<'END' +AC_CONFIG_SUBDIRS([subpkg]) +AC_OUTPUT +END + +mkdir subpkg + +echo foobar >subpkg/foobar + +echo SUBDIRS = >subpkg/Makefile.am + +cat >subpkg/configure.in <<'END' +AC_INIT([subpkg], [1.0]) +AM_INIT_AUTOMAKE +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT +END + +$ACLOCAL +$AUTOMAKE +$AUTOCONF + +cd subpkg +$ACLOCAL +$AUTOMAKE +$AUTOCONF +cd .. + +./configure +$MAKE distcheck