From: Rafael L. <lab...@ps...> - 2003-01-31 12:26:37
|
* Alan W. Irwin <ir...@be...> [2003-01-30 16:50]: > The patch applies cleanly on top of my recent changes to sysloc.in and > configure.ac. I do get one error message, however, from bootstrap.sh. > > configure.ac:770: required file ./config.h.in' not found This bug is extremely easy to fix: just invert the order of calls to autoheader and automake in bootstrap.sh, like this: aclocal \ && libtoolize --copy --ltdl --automake \ && autoheader \ && automake --add-missing --copy \ && autoconf The problem happens because the automake call tries to run autoconf and then it barfs on the AC_CONFIG_HEADERS macro, since config.h.in has not yet been created by autoheader. The "touch config.h.in" workaround is ugly and unnecessary, and if you agree I will cvs commit the fixed bootstrap.sh. > Now for the bad news. The current commit does not solve the fundamental > problem that started all this thread: > > Right in the middle of my initial make: > > cd .. && /bin/sh /home/software/plplot_cvs/HEAD/plplot/missing --run autoheader touch ./plDevs.h.in > > UGH! Well, you have been bitten by the fact that you are not using "make dist" to generate the tarball. Had you used "make dist", the tarball would have the right time stamps (thanks to that touch command in include/Makefile). Check for yourself: $ rm -rf plplot $ cvs co plplot # your CVSROOT env var should be set correctly here $ cd plplot $ ls -lt configure.ac include/plConfig.h.in include/plDevs.h.in -rw-r--r-- 1 rafael rafael 30417 2003-01-31 02:49 configure.ac -rw-r--r-- 1 rafael rafael 1249 2003-01-31 01:15 include/plConfig.h.in -rw-r--r-- 1 rafael rafael 1056 2002-12-03 09:39 include/plDevs.h.in $ # configure.ac is newer than include/pl{Config,Devs}.h !!!!! $ ./bootstrap.sh $ ./configure $ make dist $ tar xfz plplot-5.2.0.tar.gz $ cd plplot-5.2.0 $ ls -lt configure.ac include/plConfig.h.in include/plDevs.h.in -rw-r--r-- 1 rafael rafael 1056 2003-01-31 13:00 include/plDevs.h.in -rw-r--r-- 1 rafael rafael 1249 2003-01-31 13:00 include/plConfig.h.in -rw-r--r-- 1 rafael rafael 30421 2003-01-31 12:58 configure.ac $ # Now configure.ac is the oldest file. Great! As I already discussed privately with Alan, we must _absolutely_ use "make dist" for generating the distribution tarball, otherwise there will be recurrent problems like that with our releases. Since Alan is reluctant to make the move, I volunteer myself to insure that "make dist" will produce a suitable and complete tarball for the 5.2.1 release. The other (boring) release engineering issues (like tests, etc), I will let to Alan, of course :-) Just an aside comment: "make dist" does not work in the current CVS tree because nodist_ prefixes are lacking in binding/{python,java}/Makefile.am. Attached below is the patch that fixes the problem. This patch is harmless when building the package and I am going to cvs commit it, if you do not object. > I think we have clearly run up against a bug in autoconf since autoheader is > not supposed to be run on those files at all. With my changes to bootstrap.sh and the tarball being generated by "make dist", everything should be fine. The call to autoheader is harmless now, since the autoheader issues have been addressed. Besides, it will never happen for regular users if we adopt the "make dist" approach. I hope to go from Hell to Paradise with the forthcoming 5.2.1 release! > Rafael, in your first post you had a suggestion for supressing autoheader > altogether. Perhaps it is time to try that as a workaround for the bug. Forget that. The autoheader call should work fine now. In sum, there is no bug to be fixed here. I will soon remove that setting to AUTOHEADER in autoconf.ac and cvs commit if you do not object. > But I am amazed (a) this problem hasn't bitten most of the many projects > that are using autoconf and cvs together, and (b) the resulting outcry > didn't generate strong motivation for a quick fix. Again: there is no bug here. -- Rafael |