Hi Zack,
*automake* can exit with code 63 under
some circumstances, but it really looks like aclocal never will.
Agreed. I searched for "63" in automake distributions back to 1.11.3, as
well as the current sources, and no trace of any 63's in aclocal, only
in automake. Thus I suspect that the autoconf test meant to invoke
automake, not aclocal?
Does anyone remember what situation this might have been trying to detect?
"Version mismatch". Of exactly what kind, I don't know :).
The change was made in automake in 2003, according to old/ChangeLog.03.
BTW, I don't see a way that Channels.pm (which aclocal.in uses as of
this change, apparently) exits with code 63, either.
Here are the ChangeLog and NEWS entries. --hope this helps, karl.
2003-09-06 Alexandre Duret-Lutz <[email protected]>
* lib/Automake/XFile.pm: Update to use ChannelDefs.
(close): Call Automake::FileUtils::handle_exec_errors on errors.
* automake.in (scan_autoconf_files): Exit with $?=63 on version
mismatch.
(scan_autoconf_traces): Likewise. Close the autoconf pipe to
capture abnormal exits.
* aclocal.in ($exit_status): Remove, and use Channels.pm's $exit_code
instead.
(trace_used_macros): Close the autom4te pipe to capture abnormal exits.
* lib/missing: When a tool has run and exited with $?=63, emulate
it. Adjust the diagnostic and pretend the tool is tool old in this
case. Use an emacs-updated "scriptversion" variable.
* configure.in: Output tests/aclocal-${APIVERSION} and
tests/automake-${APIVERSION}.
* tests/aclocal.in, tests/automake.in,
tests/missing.test, tests/missing2.test: New files.
* tests/defs.in (AUTOMAKE, ACLOCAL, PATH): Define
to use tests/aclocal-$APIVERSION and tests/automake-$APIVERSION.
* tests/dup3.test: Remove. alocal9.test, acloca10.test, and others are
already testing for this.
* tests/depacl2.test, tests/dup2.test, tests/order.test: Fix
configure.in so that aclocal works.
* tests/defun.test: Quote the AC_DEFUN body.
* tests/Makefile.am (TESTS): Add missing.test and missing2.test,
and remove dup3.test.
(check_SCRIPTS): Add aclocal and automake.
New in 1.8:
..
- Automake will exit with $? = 63 on version mismatch. (So does
Autoconf 2.58) missing knows this, and in this case it will
emulate the tools as if they were absent. Because older versions
of Automake and Autoconf did not use this exit code, this change
will only be useful in projects generated with future versions of
these tools.