Hello automakers and gnulibers. Is anyone still interested in this feature? If yes, I have some simple updates, second thoughts, and new ideas, for which comments are welcome. If not, let me know before I start investing more time on the implementation!
On Monday 06 September 2010, Stefano Lattarini wrote: > On Sunday 05 September 2010, Ralf Wildenhues wrote: > > Hello, > > > > * Jim Meyering wrote on Sat, Sep 04, 2010 at 07:28:58PM CEST: > > > Stefano Lattarini wrote: > > > > What about instead making the names of the temporaries > > > > source/build/install directories used by "make distcheck" > > > > configurable? > It turns out that making the srcdir configurable is not very easy or > natural; also, I don't see any real use case for that. So I didn't > add this feature in the patch series. If anyone would find this > feature useful nonetheless, please speak up. > > > > This will offer more flexibility, and won't > > > > introduce still another automake option which would make > > > > backward-compatibility more problematic. > > > > > > > > I was thinking of something on these lines: > > > > $ cat Makefile.am > > > > ... > > > > AM_DISTCHECK_BUILDDIR_NAME = _ b u i l d ## will be relative to > > > > $(distdir) > > > > AM_DISTCHECK_SRCDIR_NAME = . ## likewise > > > > AM_DISTCHECK_INSTALLDIR_NAME = i...@l1 ## likewise > In the end, I went for the slighty shorter names `AM_DISTCHECK_BUILDDIR' > and `AM_DISTCHECK_INSTALLDIR'. > > > > > > > > If you like the proposal, I might try to implement this (but not > > > > right away). > > > > > > I do like it. Thanks! Nonetheless, I'm starting to think that making `AM_DISTCHECK_BUILDDIR_NAME' and `AM_DISTCHECK_INSTALLDIR_NAME' defined at configure time might be a better policy. This way we could: - warn about bad values for them at "./configure" time rather than at "make distcheck" time; - allow *any* character in their values (also `#' and single-quotes) - allow leading and trailing whitespaces in their values. - make it easier for developers working on more limited system to stick with less stressful values, thus avoiding potential spurious failures. Opinions? > > > > Me too, but the onus for quoting should probably be with the person > > defining the variables, because there is no well-defined way to do > > otherwise. (And of course you cannot have comments in variables.) This problems would be solved by having `AM_DISTCHECK_BUILDDIR_NAME' and `AM_DISTCHECK_INSTALLDIR_NAME' properly processed at configure time. > In my patch, I let Automake take the onus for quoting, the only additional > limit being that AM_DISTCHECK_BUILDDIR and AM_DISTCHECK_INSTALLDIR cannot > contain the single-quote character. Not entirely true, in hindsight. They also can not contain the `#' character and leading and trailing whitespaces. > We might still change this of course, as the attached patch is mostly > tentative. > > I like it also because some packages will never want to care about > > being buildable under more stressful circumstances. Also, some developers will never want to care about making distcheck under more stressful circumstances on some more limited systems. The "configure-time definition" policy would cater to this situation, too. > IMPORTANT NOTE: I still haven't run the whole testsuite against this > patch. I will if they are no serious objection or proposals of > changes/extensions. > > Regards, > Stefano > > -*-*-*- > > Make build and install dirs used by distcheck configurable. > > * automake.in (generate_makefile): Define makefile variables > AM_DISTCHECK_BUILDDIR and AM_DISTCHECK_INSTALLDIR when needed; > they default respectively to `_build' and `_inst'. > * lib/am/distdir.am (distcheck): Sanitize and honour variables > $(AM_DISTCHECK_BUILDDIR) and $(AM_DISTCHECK_INSTALLDIR). > * tests/distcheck0.test: New test script. > * tests/distcheck1a.test: Likewise. > * tests/distcheck1b.test: Likewise. > * tests/distcheck2a.test: Likewise. > * tests/distcheck2b.test: Likewise. > * tests/distcheck3.test: Likewise. > * tests/distcheck4.test: Likewise. > * tests/distcheck5.test: Likewise. > * tests/distcheck6.test: Likewise. > * tests/distcheck7.test: Likewise. > * tests/distcheck8.test: Likewise. > * tests/distcheck9.test: Likewise. Clearer and more expressive names for the new testcases are in order, also. > * tests/Makefile.am (TESTS): Updated. Regards, Stefano