Re: distchecking without FC?
Quoting Ralf Wildenhues [EMAIL PROTECTED]: Hi Noah, Benoit, * Noah Misch wrote on Thu, Jun 21, 2007 at 03:54:14PM CEST: Here's the current version of that patch. It allows `make dist' to work on a system with no F77/F90 compilers. Suitable? Yes, please apply. It would be nice if Benoit could confirm that it works for him as well. Yes it Works For Me (c). Thank you very much guys. -- Benoit Sigoure aka Tsuna EPITA Research and Development Laboratory This message was sent using IMP, the Internet Messaging Program.
Re: distchecking without FC?
On Thu, Jun 21, 2007 at 07:06:01PM +0200, Ralf Wildenhues wrote: Yes, please apply. It would be nice if Benoit could confirm that it works for him as well, and nice of you to mention him as bug reporter in the ChangeLog entry. :-) Done. Thanks for the reviews and testing.
Re: distchecking without FC?
Hi Noah, * Noah Misch wrote on Tue, Jun 19, 2007 at 09:36:06PM CEST: On Tue, Jun 19, 2007 at 08:38:49PM +0200, Ralf Wildenhues wrote: * Noah Misch wrote on Mon, Jun 18, 2007 at 07:43:52AM CEST: I am somewhat concerned about a developer using `reconfdirs=. ./bootstrap; ./configure; make dist' on a fresh checkout and silently losing the generated files in the test directories. With the old mechanism or the literal file list mechanism, this cannot happen. We could fight this with a sanity check, like a test on `grep -c Makefile.in test-disk.mk'. Hmm, yes. This patch and the literal-file-list one share a further problem: if the generated files in test directories are out-of-date, nothing will update them. Indeed. That's bad. The current code gets that right, at least. Well, this is an argument for showing your latest version of tests/f{c,77}demo/configure.ac changes to become nonlethal in case of non-presence of Fortran (77) compilers. Did you get much further there? Alas, I did not expect a clean solution to prove so elusive :( Oh, I fully expected this issue to be ugly. Which is why I never took a good stab at it (sorry for offloading this to you). +# Bootstrap `.' last. +case $reconfdirs in + . | '. '* | *' . '* | *' .') $AUTORECONF --force --verbose --install ;; +esac Why not simple, like above the `find'? for sub in $reconfdirs; do test $sub = . $AUTORECONF --force --verbose --install done We must bootstrap the test directories first (so the relevant files exist), then generate test-dist.mk, then bootstrap the root directory (where Makefile.am includes test-dist.mk). Sure. That's why I suggested repeating the loop down below again, but now only picking `.'. I simply thought that a second loop looks cleaner (and is probably faster) than a complicated case expression. But since we're rather moving away from this patch variant, this minor point matters little. Cheers, and thanks, Ralf
Re: distchecking without FC?
Hi Ralf, On Sat, Jun 16, 2007 at 11:13:36AM +0200, Ralf Wildenhues wrote: * Noah Misch wrote on Fri, Jun 15, 2007 at 02:42:04AM CEST: Therefore, I took a different approach: list the files to distribute directly in the top-level Makefile.am, and do not bother to configure the test directories for `make dist'. This would break down at the point when Autoconf or Automake decide to generate a different set of files (and we try to support both older and newer version). Arguably this doesn't happen too often, and Stepan has too little time to carry out his plans... True. If better, we could compromise between complexity and redundancy by generating the list of files at `bootstrap' time. If you've already tried this, please post the patch. Thanks. Otherwise I suppose we can cross the bridge when we come to it (you could put a FIXME above the list). Not yet, sorry. I can look into it. In any case, `make dist' runs an order magnitude faster. FWIW, I could care less about `dist' time. `check' and `all' are much more interesting. Certainly; this speed improvement is but a minor bonus. While examining this, I tried `make distcheck'. It failed due to a `config.log' left in tests/fcdemo when its `configure' fails. This patch incorporates a two-line fix to avoid that problem. This is fine. It seems the others like this patch, so I won't stand in the way. ;-) Thanks. Now if only I can entice someone to install it. Thanks, Noah
Re: distchecking without FC?
Hi Noah, * Noah Misch wrote on Fri, Jun 15, 2007 at 02:42:04AM CEST: It was possible to generalize the f77demo/fcdemo configure script hacks to make them work with no Fortran compiler at all. Even so, it looked increasingly fragile. Therefore, I took a different approach: list the files to distribute directly in the top-level Makefile.am, and do not bother to configure the test directories for `make dist'. This would break down at the point when Autoconf or Automake decide to generate a different set of files (and we try to support both older and newer version). Arguably this doesn't happen too often, and Stepan has too little time to carry out his plans... If better, we could compromise between complexity and redundancy by generating the list of files at `bootstrap' time. If you've already tried this, please post the patch. Thanks. Otherwise I suppose we can cross the bridge when we come to it (you could put a FIXME above the list). In any case, `make dist' runs an order magnitude faster. FWIW, I could care less about `dist' time. `check' and `all' are much more interesting. While examining this, I tried `make distcheck'. It failed due to a `config.log' left in tests/fcdemo when its `configure' fails. This patch incorporates a two-line fix to avoid that problem. This is fine. It seems the others like this patch, so I won't stand in the way. ;-) Cheers, and thanks for your work, Ralf 2007-06-14 Noah Misch [EMAIL PROTECTED] * Makefile.am (configure-subdirs, @DIST_MAKEFILE_LIST@, DIST_SUBDIRS): Delete. (cdemo_dist, demo_dist, depdemo_dist, f77demo_dist, fcdemo_dist) (mdemo_dist, mdemo2_dist, pdemo_dist, tagdemo_dist): New variables. (EXTRA_DIST): Add the contents of those variables. (clean-local-legacy): Delete `config.log' in test directories. * configure.ac (CONF_SUBDIRS, DIST_MAKEFILE_LIST): Delete.
Re: distchecking without FC?
On Thu, Jun 14, 2007 at 08:50:41PM -0500, Bob Friesenhahn wrote: On Thu, 14 Jun 2007, Noah Misch wrote: `make dist' now works fine on a system with no Fortran. The list of files in the distribution has not changed. Normally I would be more in favor of narrowing the scope of management to as close to the file as possible. However, an order of magnitude speed improvement sounds great to me and the tests directories have certainly been burdensome. Presumably there is a substantial speed improvement while bootstrapping and configuring the project as well. The subdirectory configures would still exist; bootstrap and test would take the same amount of time. `make dist' will no longer need to configure the test directories, so that part does improve.
Re: distchecking without FC?
On Thu, Jun 14, 2007 at 01:47:12PM +0200, Benoit Sigoure wrote: is there any reason why I can checkout, configure and make all check libtool HEAD but not distcheck it? Configure would complain (only during distcheck) that I don't have a working Fortran compiler. I posted a patch to fix this: http://lists.gnu.org/archive/html/libtool-patches/2007-05/msg2.html
Re: distchecking without FC?
Quoting Noah Misch [EMAIL PROTECTED]: On Thu, Jun 14, 2007 at 01:47:12PM +0200, Benoit Sigoure wrote: is there any reason why I can checkout, configure and make all check libtool HEAD but not distcheck it? Configure would complain (only during distcheck) that I don't have a working Fortran compiler. I posted a patch to fix this: http://lists.gnu.org/archive/html/libtool-patches/2007-05/msg2.html Thanks for the pointer, my working copy has (only) these changes: $ cvs diff -u Index: Makefile.am === RCS file: /sources/libtool/libtool/Makefile.am,v retrieving revision 1.221 diff -u -r1.221 Makefile.am --- Makefile.am 4 Jun 2007 03:01:10 - 1.221 +++ Makefile.am 14 Jun 2007 12:47:53 - @@ -109,7 +109,7 @@ dir=`echo $@ | sed 's,^[^/]*$$,.,;s,/[^/]*$$,,'`; \ test -d $$dir || mkdir $$dir || exit 1; \ abs_srcdir=`$(lt__cd) $(srcdir) pwd`; \ - (cd $$dir $$abs_srcdir/$$dir/configure) || exit 1 + (cd $$dir $$abs_srcdir/$$dir/configure --with-dist) || exit 1 # -- # Index: tests/fcdemo/configure.ac === RCS file: /sources/libtool/libtool/tests/fcdemo/configure.ac,v retrieving revision 1.4 diff -u -r1.4 configure.ac --- tests/fcdemo/configure.ac 25 Mar 2007 12:12:43 - 1.4 +++ tests/fcdemo/configure.ac 14 Jun 2007 12:47:53 - @@ -31,6 +31,9 @@ AC_CONFIG_SRCDIR([foof.f90]) AC_CONFIG_AUX_DIR([../../libltdl/config]) +AC_ARG_WITH([dist], AS_HELP_STRING([--with-dist], + [ignore errors not affecting `make dist'])) + ## ## ## Automake Initialisation. ## ## ## @@ -53,7 +56,11 @@ AC_FC_WRAPPERS dnl We need to use .f90 and not .f to enable Automake FC support dnl Some Intel ifc/ifort do not understand .f95. :-/ -AC_FC_SRCEXT([f90]) +dnl When configuring for `make dist' purposes, skip this check, as it yields a +dnl fatal error when there is no working F90 compiler. +if test -z $with_dist; then + AC_FC_SRCEXT([f90]) +fi dnl Yes, we want free form Fortran! AC_FC_FREEFORM AC_LANG_POP But I still get: checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking how to get verbose linking output from ... configure: WARNING: compilation failed checking for Fortran 77 libraries of ... checking for dummy main to link with Fortran 77 libraries... none checking for Fortran 77 name-mangling scheme... configure: error: cannot compile a simple Fortran program See `config.log' for more details. make: *** [tests/f77demo/Makefile] Error 1 -- Benoit Sigoure aka Tsuna EPITA Research and Development Laboratory This message was sent using IMP, the Internet Messaging Program.
Re: distchecking without FC?
On Thu, Jun 14, 2007 at 02:52:45PM +0200, Benoit Sigoure wrote: Quoting Noah Misch [EMAIL PROTECTED]: On Thu, Jun 14, 2007 at 01:47:12PM +0200, Benoit Sigoure wrote: is there any reason why I can checkout, configure and make all check libtool HEAD but not distcheck it? Configure would complain (only during distcheck) that I don't have a working Fortran compiler. I posted a patch to fix this: http://lists.gnu.org/archive/html/libtool-patches/2007-05/msg2.html Thanks for the pointer, But I still get: checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no Ah, you have no F77 compiler either. The patch I posted only works around an absent `FC' (F95) compiler. Thanks; I'll look at generalizing it.
Re: distchecking without FC?
On Thu, Jun 14, 2007 at 09:02:39AM -0700, Noah Misch wrote: On Thu, Jun 14, 2007 at 02:52:45PM +0200, Benoit Sigoure wrote: Quoting Noah Misch [EMAIL PROTECTED]: On Thu, Jun 14, 2007 at 01:47:12PM +0200, Benoit Sigoure wrote: is there any reason why I can checkout, configure and make all check libtool HEAD but not distcheck it? Configure would complain (only during distcheck) that I don't have a working Fortran compiler. I posted a patch to fix this: http://lists.gnu.org/archive/html/libtool-patches/2007-05/msg2.html Thanks for the pointer, But I still get: checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no Ah, you have no F77 compiler either. The patch I posted only works around an absent `FC' (F95) compiler. Thanks; I'll look at generalizing it. It was possible to generalize the f77demo/fcdemo configure script hacks to make them work with no Fortran compiler at all. Even so, it looked increasingly fragile. Therefore, I took a different approach: list the files to distribute directly in the top-level Makefile.am, and do not bother to configure the test directories for `make dist'. If better, we could compromise between complexity and redundancy by generating the list of files at `bootstrap' time. In any case, `make dist' runs an order magnitude faster. `make dist' now works fine on a system with no Fortran. The list of files in the distribution has not changed. While examining this, I tried `make distcheck'. It failed due to a `config.log' left in tests/fcdemo when its `configure' fails. This patch incorporates a two-line fix to avoid that problem. Comments, anyone? 2007-06-14 Noah Misch [EMAIL PROTECTED] * Makefile.am (configure-subdirs, @DIST_MAKEFILE_LIST@, DIST_SUBDIRS): Delete. (cdemo_dist, demo_dist, depdemo_dist, f77demo_dist, fcdemo_dist) (mdemo_dist, mdemo2_dist, pdemo_dist, tagdemo_dist): New variables. (EXTRA_DIST): Add the contents of those variables. (clean-local-legacy): Delete `config.log' in test directories. * configure.ac (CONF_SUBDIRS, DIST_MAKEFILE_LIST): Delete. diff -urp -X ../dontdiff lt-clean/configure.ac lt-fdist/configure.ac --- lt-clean/configure.ac 2007-03-26 15:18:43.0 -0500 +++ lt-fdist/configure.ac 2007-06-14 18:09:27.0 -0400 @@ -153,18 +153,6 @@ if test x${enable_ltdl_install+set} != enable_ltdl_install=yes fi -# All subdirectories that are configured on demand, but that must be -# included in the distribution. -CONF_SUBDIRS=tests/cdemo tests/demo tests/depdemo tests/f77demo tests/fcdemo \ - tests/mdemo tests/mdemo2 tests/pdemo tests/tagdemo -AC_SUBST([CONF_SUBDIRS]) - -DIST_MAKEFILE_LIST= -for dir in $CONF_SUBDIRS; do - DIST_MAKEFILE_LIST=${DIST_MAKEFILE_LIST}$dir/Makefile -done -AC_SUBST([DIST_MAKEFILE_LIST]) - ## ## ## compiler checks. ## diff -urp -X ../dontdiff lt-clean/Makefile.am lt-fdist/Makefile.am --- lt-clean/Makefile.am2007-06-14 12:37:28.0 -0400 +++ lt-fdist/Makefile.am2007-06-14 19:34:03.0 -0400 @@ -103,14 +103,6 @@ libtool: $(top_builddir)/config.status $ cd $(top_builddir) $(SHELL) ./config.status $$target; \ fi -.PHONY: configure-subdirs -configure-subdirs distdir: $(DIST_MAKEFILE_LIST) [EMAIL PROTECTED]@: - dir=`echo $@ | sed 's,^[^/]*$$,.,;s,/[^/]*$$,,'`; \ - test -d $$dir || mkdir $$dir || exit 1; \ - abs_srcdir=`$(lt__cd) $(srcdir) pwd`; \ - (cd $$dir $$abs_srcdir/$$dir/configure) || exit 1 - # -- # # Bootstrap. # @@ -599,6 +591,60 @@ COMMON_TESTS = \ tests/mdemo-inst.test tests/mdemo-unst.test \ tests/cdemo-undef.test tests/cdemo-make.test tests/cdemo-exec.test +cdemo_dist = tests/cdemo/aclocal.m4 tests/cdemo/configure \ +tests/cdemo/configure.ac tests/cdemo/foo.c tests/cdemo/foo.h tests/cdemo/main.c\ +tests/cdemo/Makefile.am tests/cdemo/Makefile.in tests/cdemo/README + +demo_dist = tests/demo/aclocal.m4 tests/demo/configure tests/demo/configure.ac \ +tests/demo/dlmain.c tests/demo/foo.c tests/demo/foo.h tests/demo/hell1.c \ +tests/demo/hell2.c tests/demo/hello.c tests/demo/main.c tests/demo/Makefile.am \ +tests/demo/Makefile.in tests/demo/README + +depdemo_dist = tests/depdemo/l1/l1.c tests/depdemo/l1/l1.h \ +tests/depdemo/l1/Makefile.am tests/depdemo/l1/Makefile.in tests/depdemo/l2/l2.c\ +tests/depdemo/l2/l2.h tests/depdemo/l2/Makefile.am tests/depdemo/l2/Makefile.in\ +tests/depdemo/l3/l3.c tests/depdemo/l3/l3.h tests/depdemo/l3/Makefile.am \ +tests/depdemo/l3/Makefile.in tests/depdemo/l4/l4.c tests/depdemo/l4/l4.h \ +tests/depdemo/l4/Makefile.am tests/depdemo/l4/Makefile.in \ +tests/depdemo/aclocal.m4 tests/depdemo/README tests/depdemo/configure \ +tests/depdemo/configure.ac
Re: distchecking without FC?
On Thu, 14 Jun 2007, Noah Misch wrote: `make dist' now works fine on a system with no Fortran. The list of files in the distribution has not changed. While examining this, I tried `make distcheck'. It failed due to a `config.log' left in tests/fcdemo when its `configure' fails. This patch incorporates a two-line fix to avoid that problem. Comments, anyone? Normally I would be more in favor of narrowing the scope of management to as close to the file as possible. However, an order of magnitude speed improvement sounds great to me and the tests directories have certainly been burdensome. Presumably there is a substantial speed improvement while bootstrapping and configuring the project as well. Bob == Bob Friesenhahn [EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer,http://www.GraphicsMagick.org/