Re: [RFC] Make build and install dirs used by distcheck configurable. (was: Re: absolute build directory with spaces)
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
Re: [RFC] Make build and install dirs used by distcheck configurable. (was: Re: absolute build directory with spaces)
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
[RFC] Make build and install dirs used by distcheck configurable. (was: Re: absolute build directory with spaces)
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! 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.) 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. 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. 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. * tests/Makefile.am (TESTS): Updated. --- ChangeLog | 22 +++ Makefile.in| 42 +++-- automake.in|9 +++ lib/am/distdir.am | 50 +--- tests/Makefile.am | 12 tests/Makefile.in | 12 tests/distcheck0.test | 45 ++ tests/distcheck1a.test | 56 + tests/distcheck1b.test | 61 +++ tests/distcheck2a.test | 69 + tests/distcheck2b.test | 74 +++ tests/distcheck3.test | 79 tests/distcheck4.test | 71 ++ tests/distcheck5.test | 77 tests/distcheck6.test | 88 +++ tests/distcheck7.test | 86 ++ tests/distcheck8.test | 156 tests/distcheck9.test | 50 +++ 18 files changed, 1044 insertions(+), 15 deletions(-) create mode 100755 tests/distcheck0.test create mode 100755 tests/distcheck1a.test create mode 100755 tests/distcheck1b.test create mode 100755 tests/distcheck2a.test create mode 100755 tests/distcheck2b.test create mode 100755 tests/distcheck3.test create mode 100755 tests/distcheck4.test create mode 100755 tests/distcheck5.test create mode 100755 tests/distcheck6.test create mode 100755 tests/distcheck7.test create mode 100755 tests/distcheck8.test create mode 100755 tests/distcheck9.test From bd9c7804d24297ef9e3c9e7492a1247a71f9279a Mon Sep 17 00:00:00 2001 From: Stefano Lattarini stefano.lattar...@gmail.com Date: Sun, 5 Sep 2010 12:00:05 +0200 Subject: [PATCH] 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. *
[RFC] Make build and install dirs used by distcheck configurable. (was: Re: absolute build directory with spaces)
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! 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.) 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. 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. 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. * tests/Makefile.am (TESTS): Updated. --- ChangeLog | 22 +++ Makefile.in| 42 +++-- automake.in|9 +++ lib/am/distdir.am | 50 +--- tests/Makefile.am | 12 tests/Makefile.in | 12 tests/distcheck0.test | 45 ++ tests/distcheck1a.test | 56 + tests/distcheck1b.test | 61 +++ tests/distcheck2a.test | 69 + tests/distcheck2b.test | 74 +++ tests/distcheck3.test | 79 tests/distcheck4.test | 71 ++ tests/distcheck5.test | 77 tests/distcheck6.test | 88 +++ tests/distcheck7.test | 86 ++ tests/distcheck8.test | 156 tests/distcheck9.test | 50 +++ 18 files changed, 1044 insertions(+), 15 deletions(-) create mode 100755 tests/distcheck0.test create mode 100755 tests/distcheck1a.test create mode 100755 tests/distcheck1b.test create mode 100755 tests/distcheck2a.test create mode 100755 tests/distcheck2b.test create mode 100755 tests/distcheck3.test create mode 100755 tests/distcheck4.test create mode 100755 tests/distcheck5.test create mode 100755 tests/distcheck6.test create mode 100755 tests/distcheck7.test create mode 100755 tests/distcheck8.test create mode 100755 tests/distcheck9.test From bd9c7804d24297ef9e3c9e7492a1247a71f9279a Mon Sep 17 00:00:00 2001 From: Stefano Lattarini stefano.lattar...@gmail.com Date: Sun, 5 Sep 2010 12:00:05 +0200 Subject: [PATCH] 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. *