On 6/14/14 10:28, Paul Eggert wrote:
That part of POSIX has been standardized since POSIX.2 (IEEE Std
1003.2-1992), and the wording hasn't changed since then if I recall
correctly, so AIX has had this conformance bug for decades and nobody
has cared....
I just ran into a related problem when building bleeding-edge coreutils
on AIX 7.1, and so I thought I'd document it here. On AIX 7.1, 'make
check' fails with:
FAIL: tests/misc/help-version.sh
because 'make' never built a '[' program. And AIX 'make' doesn't build a
'[' program because it mishandles '[' in 'make' macros, which means that
with Makefiles like this:
EXEEXT =
bin_PROGRAMS = ... src/[$(EXEEXT) ...
PROGRAMS = $(bin_PROGRAMS) ...
all-am: ... $(PROGRAMS) ...
'make all-am' does not "see" the 'src/[' and so doesn't build it.
Because of this bug, 'make install' obviously will not work correctly,
as there's no '[' command to install.
A simple workaround is to use GNU Make, which doesn't have this bug.
This bug in AIX 'make' is so obscure that I'm not going to bother
documenting it in the Autoconf manual under its portability guidelines
for 'make'. Anyway, nowadays "just use GNU Make" is a good recipe for
just about every package other than GNU Make itself.