Paul Eggert [Fri, 7 Jun 2024 15:41:45 +0000 (08:41 -0700)]
maint: spelling and whitespace fixes
Most of these spelling fixes are just to comments and documentation.
However, some affect tests as follows:
* t/cond36.sh (tparse.h): Fix misspelling of dependency.
* t/disthook.sh: Fix misspelling of file.
* t/help3.sh: Fix misspelling of long option.
* t/instdir-ltlib.sh: Fix misspellings of macro names.
This causes the test to fail, so someone with libtool
expertise needs to look into this.
* t/tap-no-spurious-numbers.sh (highno): Fix misspelling of shell var.
* t/dist-missing-m4.sh: Accommodate a slightly different diagnostic
("undefined or overquoted macro" rather than "possibly undefined macro")
in autoconf as of v2.72-9-g7a6347d1.
Karl Berry [Sun, 2 Jun 2024 17:47:20 +0000 (10:47 -0700)]
maint: support test releases numbered from .90 for announcements.
* maintainer/maint.mk (beta_version_rx, alpha_version_rx):
update to use MAJOR.MINOR.90, .92, ..., for "beta" (test) releases,
and .91, .93, ... for "alpha" (development). Follows the
2024-01-21 change.
* HACKING: typo en passant.
Karl Berry [Fri, 31 May 2024 15:55:10 +0000 (08:55 -0700)]
maint: prepare for next pretest.
* HACKING: typo, tweak release info.
* maintainer/maint.mk: typo.
* maintainer/syntax-checks.mk: typo, and exclude test-defs.sh
(actually .in) from the `...` test because I can't figure out how
to get the same results with $(...).
Karl Berry [Mon, 27 May 2024 19:34:35 +0000 (12:34 -0700)]
test: check that subsecond mtime works with make.
Trying to fix https://bugs.gnu.org/68808.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): check
that make works with subsecond mtimes, as well as sleep and ls.
(Known to fail with the make 3.81 that ships with macOS.)
* configure.ac (MTIME_RESOLUTION): notice if it erroneously
expands to the empty string, i.e., fall back to 1 if
$am_cv_filesystem_timestamp_resolution ended up being unset.
* t/ax/test-defs.in (MTIME_RESOLUTION): also fall back to 1
if the variable to not set, with a message.
Fix other typos en passant.
* HACKING: tweak.
Bogdan [Sun, 26 May 2024 22:35:58 +0000 (15:35 -0700)]
test: objc tests on openbsd.
Fixes https://bugs.gnu.org/68179.
* t/objcxx-deps.sh: test for objc_getProperty and other
functions in the objc library.
* t/objcxx-minidemo.sh: likewise.
* t/strip2.sh (STRIP): use -x instead of --verbose to test
strip with multiple words, to work with openbsd (and aix) strip.
Mark Wooding [Tue, 21 May 2024 16:54:35 +0000 (09:54 -0700)]
doc: test-driver option args are separate words.
For https://bugs.gnu.org/70638.
As now mentioned in the manual, the description of the
test-driver command-line interface has been wrong since 2011
when it was first added. The manual, and the driver usage
messages themselves, have consistently shown option arguments
joined to the option name with `=' characters, while the
implementation of Automake has always provided option arguments
in the following argument word, and the provided test drivers
only accepted option arguments in the following argument word.
Because Automake has never used the `=' syntax, there can't
possibly be a working driver which actually follows the
specification as written, so, despite the fierce language of the
manual, we agreed that changing the specification was the right
approach. The `test-driver' program's usage message has already
been fixed (#22445), but the full extent of the problem wasn't
noticed at that time.
* doc/automake.texi (Command-line arguments for test drivers): Fix the
table of options to show arguments passed as separate words; add
footnote explaining this rather sorry situation.
* doc/automake.texi (Use TAP with the Automake test harness):
Remove `=' from documentation of `--diagnostic-string', because
that was never acceptable either.
* lib/tap-driver.sh: Fix usage message.
* contrib/tap-driver.pl: Change usage message to match the defined
protocol. (This implementation parses options using Perl's
`Getopt::Long' module, so it accepts the `=' syntax as specified, but
this program isn't actually used.)
Reuben Thomas [Mon, 6 May 2024 15:16:40 +0000 (08:16 -0700)]
doc: update Vala documentation
From https://bugs.gnu.org/70557#29.
* doc/automake.texi (Vala Support): Update the URL for Vala.
Drop the mention of a version requirement, as no current system
will have a too-old version of Vala.
Note the restriction on conditional inclusion of source files in
*_SOURCES.
Karl Berry [Sun, 28 Jan 2024 02:07:48 +0000 (18:07 -0800)]
test: output system information after summary report.
From https://bugs.gnu.org/68746.
* lib/am/check.am ($(TEST_SUITE_LOG)) <output_system_information>:
new shell fn, called inline to write basic os information
into test-suite.log.
Also, question (do not change) the ".. contents:: :depth: 2"
line; what is this for?
Karl Berry [Sat, 27 Jan 2024 18:59:15 +0000 (10:59 -0800)]
maint: secondary updates from make fetch.
* INSTALL: updated from make distcheck.
* maintainer/maint.mk (fetch): update top-level INSTALL
if we update lib/INSTALL.
* lib/gendocs.sh: update with make fetch.
Karl Berry [Wed, 24 Jan 2024 23:43:24 +0000 (15:43 -0800)]
doc: typo for Channels.pm, mention files for which we are the master.
* HACKING: mention files for which we are the master.
* lib/Automake/ChannelDefs.pm: typo for Automake::Channels;
mention that we hold the master copy of this.
* lib/Automake/Channels.pm: update/add text for master copy notice.
* lib/Automake/Configure_ac.pm: likewise.
* lib/Automake/FileUtils.pm: likewise.
* lib/Automake/Getopt.pm: likewise.
* lib/Automake/XFile.pm: likewise.
Karl Berry [Wed, 24 Jan 2024 23:34:29 +0000 (15:34 -0800)]
doc: more about pretest numbering.
* HACKING: mention change to numbered pretests.
* configure.ac: and hence am_beta_version_rx won't match any more.
Let's just call all pretests development snapshots.
Karl Berry [Tue, 23 Jan 2024 16:53:18 +0000 (08:53 -0800)]
automake: recommend autoreconf -f with version mismatches.
From https://bugs.gnu.org/68674.
* bin/automake.in (scan_autoconf_traces): change error
to suggest running autoreconf -f. The version mismatch is
most likely to happen due to the cache files, which
aclocal && automake (the previous recommendation) does not delete.
(scan_autoconf_files): likewise.
* doc/automake.texi (Auto-generating aclocal.m4): mention autoreconf.
Other minor wording changes.
Karl Berry [Sat, 20 Jan 2024 22:33:14 +0000 (14:33 -0800)]
python: use deb_system instead of posix_local if prefix = /usr.
Continuing with https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54412.
* m4/python.m4 (AM_PATH_PYTHON) <am_python_setup_scheme>:
factor out common scheme-related code to this new variable.
If the scheme is posix_local and the prefix is /usr,
use deb_system (for Debian package builds).
* NEWS: more explanations (and unrelated references, en passant).
python: use posix_prefix instead of posix_local on Debian.
From https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54412#17.
(Patch slightly adapted by Bogdan from original by Gianfranco,
as posted by Stefano Rivera in message#14.)
* m4/python.m4 (AM_PATH_PYTHON): replace Debian's posix_local
scheme with posix_prefix.
* doc/automake.texi (Python) <pythondir>: say a bit more.
* NEWS: mention this.
Karl Berry [Wed, 17 Jan 2024 17:51:40 +0000 (09:51 -0800)]
automake: a millisecond is too fast for subsecond-mtime.
This patch is from https://bugs.gnu.org/68325.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): don't try
for a millisecond; make a hundredth of a second the fastest we'll go.
Apparently there are plenty of systems which supposedly support
subsecond-mtimes down to the millisecond and yet randomly
fail parallelized tests. For example:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68119#18
Maybe the tests themselves need fixing. (The ones that run
autotools multiple times in succession.) A work in progress.
Bruno Haible [Sun, 31 Dec 2023 23:27:15 +0000 (15:27 -0800)]
test: don't hang waiting for Solaris lex/yacc to read from stdin.
From https://bugs.gnu.org/68165.
* t/get-sysconf.sh: Don't let $LEX or $YACC read from stdin when
trying --version and --help. Only lex --version hangs, but may
as well avoid it in general.
Bruno Haible [Sat, 30 Dec 2023 23:37:05 +0000 (15:37 -0800)]
dist: Use -9 instead of --best, and only for gzip, to pacify Alpine.
From https://bugs.gnu.org/68151.
* lib/am/distdir.am (GZIP_ENV): Set to -9, not --best, since
Alpine does not support --best.
(distcheck): Don't use GZIP_ENV when invoking gzip for decompression,
since Alpine does not support -1..-9 with decompression.
* doc/automake.texi (The Types of Distributions): Document the change.
* NEWS: mention this. (En passant, add more change links.)
Jim Meyering [Wed, 27 Dec 2023 14:52:50 +0000 (06:52 -0800)]
maint: avoid a racy distcheck failure
* lib/am/distdir.am (am__remove_distdir): Use ";" not "&&" after
the chmod-running find, so that a failing find doesn't cause the
entire rule to fail. This could happen when a directory like
doc/automake.t2d being processed by find is concurrently deleted
by another rule.
Karl Berry [Mon, 25 Dec 2023 23:42:34 +0000 (15:42 -0800)]
test: silent-defaults.sh rerun autotools each time.
Follow-up to https://bugs.gnu.org/32868.
* t/silent-defaults.sh: rerun $ACLOCAL && $AUTOMAKE for each trial,
else test failed. (Why it has always succeeded before now, and/or
what has changed, I don't know.) Remake the cache for each trial,
for reliability. Echo trial description.
* doc/automake.texi (Silent Rules): tweak text.
(Unsilencing Automake): new node. Mention
make --debug=p to completely unsilence rules.
Karl Berry [Mon, 25 Dec 2023 23:40:25 +0000 (15:40 -0800)]
test: self-announce leading installcheck/protocol/PATH information.
* t/ax/am-test-lib.sh (am_extra_info): self-announce where the
initial reports on installcheck, test protocol, and PATH
come from. Apparently this doesn't disturb the tests.
If other people don't like the extra verbiage, no problem to remove.
Karl Berry [Mon, 25 Dec 2023 23:38:15 +0000 (15:38 -0800)]
test: force long sleep with explicit cache variable setting.
From https://bugs.gnu.org/67670.
* t/ax/test-defs.in: when MTIME_RESOLUTION is set to 1
because automake/autom4te do not support subsecond-mtime,
also set am_cv_sleep_fractional_seconds=false. Otherwise
the random parallel test failures from given bug and others return.
* m4/sanity.m4 (_AM_SLEEP_FRACTIONAL_SECONDS): reformat.
(_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): elide "the" in AC_CACHE_CHECK.
* t/amassign.sh: end with :.
* HACKING: more on debugging tests.
* NEWS: update.
Karl Berry [Sun, 24 Dec 2023 16:55:04 +0000 (08:55 -0800)]
test: do not leave files as mode zero.
Follows up on https://bugs.gnu.org/67868.
* t/dist-with-unreadable-makefile-fails.sh: chmod u+rw at end.
Also follow usual pattern of ending tests with :, not explicit exit.
* t/tap-bad-prog.tap: chmod u+r at end (since only r removed).
Karl Berry [Sat, 23 Dec 2023 18:44:03 +0000 (10:44 -0800)]
doc: more on help2man and "Errors with distclean".
This fixes (the rest of) https://bugs.gnu.org/67891.
* doc/automake.texi (Errors with distclean): make a subsection of
"Checking the Distribution". Contrast help2man usage examples of
Autoconf (includes man pages in distribution) and
Automake (no man pages, distributes the help2man script instead).
(Checking the Distribution): convert subheadings to subsections.
* doc/local.mk: also mention autoconf vs. automake approaches here,
and point to the manual.
(checklinkx): en passant, remove unused checklinkx exclude.
Zack Weinberg [Fri, 22 Dec 2023 23:52:26 +0000 (15:52 -0800)]
maint: sync autoconf Channels.pm and ChannelsDefs.pm.
Patch from https://bugs.gnu.org/67971.
The changes address <https://savannah.gnu.org/support/?110872>,
about m4_warn code/documentation consistency.
It should be impossible to reach report_bad_channel from code in
Automake.
* lib/Automake/Channels.pm (msg): If the channel argument is invalid,
don't crash; report the mistake and use the `syntax' channel.
(report_bad_channel): New function for reporting invalid channels.
* lib/Automake/ChannelDefs.pm (usage): Clarify that the list of
warning categories is exhaustive, and that ``all'', ``none'',
``no-CATEGORY'', and ``error'' are not warning categories.
Karl Berry [Thu, 21 Dec 2023 23:46:43 +0000 (15:46 -0800)]
automake: avoid unnecessary use of \K.
This fixes (part of) https://bugs.gnu.org/67891
and follows up on https://bugs.gnu.org/55025.
* bin/automake.in (generate_makefile) <posix>: avoid use of
\K when removing comment and blank lines before a .POSIX target,
since Solaris 10 has perl 5.8.4, and \K was added in 5.10.
Karl Berry [Mon, 18 Dec 2023 22:20:55 +0000 (14:20 -0800)]
maint: announcement text tweaks.
* HACKING: mention DEVEL_SNAPSHOT=1 for us.
* NEWS: tweak text.
* maintainer/maint.mk (announcement): tweak text,
ls -l ./announcement as a clue as to where the result is.
karl [Sun, 17 Dec 2023 16:42:35 +0000 (08:42 -0800)]
dist: more forcefully deal with mode 0 directories created by tests.
From https://bugs.gnu.org/67868.
* lib/am/distdir.am (am__remove_distdir): make directories
readable and searchable, not just writable. (Also typo.)
* t/local.mk (clean-local-check): ensure directories are
at least mode 700
* t/uninstall-fail.sh: restore reasonable permissions of
the mode 0 $inst/share directory at the end.
Reuben Thomas [Sun, 10 Dec 2023 23:12:00 +0000 (15:12 -0800)]
doc: add advice to list Yacc/Lex generated sources in BUILT_SOURCES.
For https://bugs.gnu.org/62791.
* doc/automake.texi (Yacc and Lex): it seems to be necessary to
list the generated C source file for a Yacc/Lex file, as well as the
header file, in BUILT_SOURCES.
Zack Weinberg [Sun, 10 Dec 2023 17:50:51 +0000 (09:50 -0800)]
automake: again revise file mtime resolution support.
This patch is from https://bugs.gnu.org/67670.
In order for the Automake testsuite to be able to use sub-second
delays to control whether certain files are considered newer
than others, five(!) separate pieces of software all need to
cooperate: automake itself, autoconf's internal `autom4te'
utility, the Perl interpreter and its libraries, the sleep(1)
shell utility, and finally the filesystem hosting the build
directory. The existing tests for this are a combination of
inadequate and incorrect. This patch, in conjunction with a
patch just committed to Autoconf trunk,
https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=39d96e6fff7ceae63b823872602caf4d255a38c8
should make everything much more robust, as follows:
- _AM_FILESYSTEM_TIMESTAMP_RESOLUTION is completely rewritten.
It no longer looks for autom4te at all, because this macro is
invoked unconditionally from AM_INIT, so *every* project that
uses Automake would get this test that's only relevant to
Automake's own testsuite. Also, it tries sleeping for as little
as one millisecond (smaller delays consistently get rounded up
to 1ms on my computer and I expect that's universal), it should
accurately detect FAT's two-second resolution now, and it should
not be tripped up anymore by running at precisely the moment
that will make a 0.1s sleep cross a 1s boundary (this may sound
unlikely but it used to cause a couple of test failures *every
time* I ran the automake testsuite on a network filesystem that
only supported 1s resolution).
- In support of the above, the test for working ls -t moved from
AM_SANITY_CHECK to _AM_FILESYSTEM_TIMESTAMP_RESOLUTION. This
allowed me to simplify the test for $srcdir/configure being
older than a freshly created file.
- If automake is capable of reading high-resolution file
modification timestamps from the operating system, it prints
`Features: subsecond-mtime' as the second line of --version
output. (We can't just assume this works for sufficiently new
automake, because it depends on whether the Perl interpreter
provides this capability, and that's not a simple question of
which version of Perl you have, either.)
- The Autoconf patch mentioned above adds the same annotation to the
output of autom4te --version.
- Finally, t/ax/test-defs.in looks for the
`Features: subsecond-mtime' string from both automake and
autom4te and resets the sleep time to one second if it's not
there. There might be a better place to put this, somewhere
it'll execute every time the *overall testsuite* is invoked
rather than once for each test, but I couldn't find one.
Tested on x86-64-linux with development automake and development
autoconf.
* m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): Rewrite for
greater reliability. Don't probe autom4te at all here.
Check for working ls -t here.
(AM_SANITY_CHECK): Do not cache the result.
Do not check for working `ls -t' here.
Disentangle control flow in the loop probing the relative ages of
build and source directory.
* lib/Automake/FileUtils.pm: Sync from autoconf.
* bin/automake.in (version): Include `Features: subsecond-mtime'
in the output if $Automake::FileUtils::subsecond_mtime is true.
* configure.ac: Rename the substitution variable MODIFICATION_DELAY
to MTIME_RESOLUTION.
* t/ax/test-defs.in: Require both $AUTOMAKE and $AUTOM4TE to report
support for high-resolution timestamps before setting $sleep to
delay for less than one second.
* NEWS: Update info.
Karl Berry [Sat, 2 Dec 2023 22:33:30 +0000 (14:33 -0800)]
doc: autoconf portability link, python NEWS.
More for https://bugs.gnu.org/67268.
* doc/automake.texi (Usage of Conditionals): link to
Autoconf's Limitations of Builtins, e.g.,
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Limitations-of-Builtins.html
* NEWS: Python version preferences are not just miscellaneous.
* lib/missing: add autoreconf, autogen and perl as supported programs,
potentially especially useful from bootstrap scripts. Alphabetize.
* NEWS: mention.
* THANKS: new contributor.
* contrib/test-driver.scm: remove.
Original patch and discussion:
https://lists.gnu.org/archive/html/automake-patches/2016-05/msg00000.html
Suggestion from guile-devel in 2023 that it's been updated outside
of Automake, and merging would not be especially helpful:
https://lists.gnu.org/archive/html/guile-devel/2023-11/msg00036.html
Pavel Raiskup [Tue, 21 Nov 2023 16:30:00 +0000 (08:30 -0800)]
automake: make the ARFLAGS default 'cr' instead of 'cru'.
In some GNU/Linux distributions people started to compile 'ar'
binary with --enable-deterministic-archives (binutils project).
That, however, in combination with our previous long time working
default AR_FLAGS=cru causes warnings on such installations:
ar: `u' modifier ignored since `D' is the default (see `U')
The 'u' option (at least with GNU binutils) did small optimization
during repeated builds because it instructed 'ar' to not
open/close unchanged *.o files and to rather read their contents
from old archive file. However, its removal should not cause a
big performance hit for usual workflows.
Distributions started using --enable-deterministic-archives
knowing that it would disable the 'u', just to rather have a bit
more deterministic builds.
Also, to justify this change a bit more, keeping 'u' in ARFLAGS
could only result in many per-project changes to override
Automake's ARFLAGS default, just to silence such warnings.
Fixes bug#20082. Reported by Eric Blake.
* bin/automake.in (handle_libraries): Use 'ARFLAGS=cr' by default.
* doc/automake.texi (Building a library): Mention the changed
ARFLAGS default.
(@c LocalWords): Replace 'cru' with 'cr'.
* m4/ar-lib.m4 (AM_PROG_AR): Cut out 'cru' string into separate
ARFLAGS variable with new default 'cr'.
* NEWS: Document.
Karl Berry [Sun, 19 Nov 2023 02:25:16 +0000 (18:25 -0800)]
doc: mention shell operators preferred over `test` options.
* doc/automake.texi (Usage of Conditionals): mention that shell
operators (&&, ||, ()) are preferred over `test` options (-a, -o,
\(\)). Idea and POSIX url reference from Michael Stapelberg,
https://lists.gnu.org/archive/html/automake-patches/2016-10/msg00002.html
Karl Berry [Thu, 2 Nov 2023 01:03:36 +0000 (18:03 -0700)]
doc: references for non-fractional timestamps.
The non-fractional fix from Bogdan fixes
https://bugs.gnu.org/64756, discussed earlier in a long thread on
automake in 2023-03 and 2023-04; references in the bug.
Jacob Bachmeyer contributed to the analysis and fixes.
Karl Berry [Mon, 30 Oct 2023 17:14:51 +0000 (10:14 -0700)]
doc: user conditional for dependency tracking.
* doc/automake.texi (Automatic dependency tracking): Describe
basing a conditional for dependency tracking on the shell variable
enable_dependency_tracking. Mentioned by Nick Bowler.
https://lists.gnu.org/archive/html/automake/2023-09/msg00004.html
Vincent Lefevre [Fri, 6 Oct 2023 15:18:33 +0000 (08:18 -0700)]
automake: new option posix to emit .POSIX target first.
This patch is from https://bugs.gnu.org/55025.
* lib/Automake/Options.pm (_is_valid_easy_option): declare new
option "posix".
* bin/automake.in (generate_makefile): if the "posix" option is
present, add a .POSIX special target as the first non-comment
line in the Makefile.in files.
* NEWS: mention this.
* doc/automake.texi: likewise.
Jan Engelhardt [Thu, 10 Aug 2023 01:07:00 +0000 (18:07 -0700)]
automake: portability warning for dollar-escaped dollar signs.
This bug and fix was posted at
https://lists.gnu.org/archive/html/automake/2023-08/msg00003.html.
* lib/Automake/Variable.pm (scan_variable_expansions): rewrite
scan_variable_expansions regex to handle dollar-escaped dollar signs.
* t/dollarvar2.sh: test it.
Bruno Haible [Fri, 21 Jul 2023 01:03:27 +0000 (18:03 -0700)]
automake: disable GNU make's internal pattern rules, for speed.
From https://bugs.gnu.org/64743.
* lib/am/footer.am: Disable GNU make's internal pattern rules.
* lib/Automake/Rule.pm (_conditionals_for_rule): Add special handling
for these pattern rules from footer.am.
(define): Likewise.
* t/nodep.sh: Update test to avoid matching the new %:: rules.
* t/fnoc.sh: Update test to avoid matching the new %:: SCCS rule.
* NEWS: Mention this.
* doc/automake.texi (Suffixes): Likewise.
(Doc changes written by Karl.)
Mike Frysinger [Fri, 14 Jul 2023 15:50:51 +0000 (08:50 -0700)]
automake: set test delays to am_cv_filesystem_timestamp_resolution.
This patch is from https://bugs.gnu.org/60808.
* configure.ac: Set test delays to
am_cv_filesystem_timestamp_resolution, instead of hardwiring
5sec on DJGPP and 2sec elsewhere. This speeds up test runs
significantly, informally as much 30%.
This change refines the fix for https://bugs.gnu.org/54063.
* bin/automake.in (scan_texinfo_file): if .texi doesn't exist,
but .texi.in exists, read the latter for the Texinfo source.
Use the @setfilename argument, if present, to generate rules.
* t/txinfo-no-texi-but-texi-in.sh: new test.
* t/list-of-tests.mk (handwritten_tests): add it.
* doc/automake.texi (Texinfo): document this.
* NEWS: mention this. (Doc changes written by Karl.)
This change: finishes fixing https://bugs.gnu.org/34151
and https://bugs.gnu.org/30612 and https://bugs.gnu.org/42393;
fixes https://bugs.gnu.org/44795 and https://bugs.gnu.org/49755;
partially fixes https://bugs.gnu.org/45205
and https://bugs.gnu.org/55073.
Still open: https://bugs.gnu.org/15256;
* t/lex-clean-cxx.sh: test __cplusplus, __sun, and __EXTERN_C__
before using extern "C" for the yylex decl, as explained at
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#13.
* t/lex-depend-cxx.sh: likewise.
This change finishes fixing https://bugs.gnu.org/30556.
* t/python-prefix.sh: use $PYTHON if set, not hardwiring "python".
* t/python-virtualenv.sh (get-pyexecdir): new make target;
use it instead of hardwiring $py_site.