[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: EXEEXT messing up extension substitutions on win32.
From: |
Ralf Wildenhues |
Subject: |
Re: EXEEXT messing up extension substitutions on win32. |
Date: |
Thu, 16 Nov 2006 00:36:36 +0100 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Hello Benoit,
* Benoit Sigoure wrote on Wed, Nov 15, 2006 at 11:32:05PM CET:
>
> TESTS = $(check_PROGRAMS:=.test)
[...]
> EXTRA_DIST = $(TESTS:.test=.stdout)
> -------------------------------------------------------------
>
> Automake automagically appends $EXEEXT (=.exe on Win32) to the
> check_PROGRAMS which entails that TESTS = simple.exe.test etc..
> instead of simple.test etc..
Ouch. That's certainly an unintended negative side effect of the
check_PROGRAMS rewriting. And it means you have found the first
regression in Automake 1.10 over 1.9.6 (if I recall correctly):
with 1.9.6, you can just swap things:
TESTS = a b c d e
check_PROGRAMS = $(TESTS)
EXTRA_DIST = $(TESTS:.test=.stdout)
and they will work, as only *_PROGRAMS were rewritten. But for the
case of cross-compiling from a sane system to w32, it was decided
to also rewrite TESTS in 1.10 (quoting NEWS):
| - $(EXEEXT) is automatically appended to filenames of TESTS
| that have been declared as programs in the same Makefile.
| This is mostly useful when some check_PROGRAMS are listed in TESTS.
So with 1.10, above example will break, and you will need another
variable that is not special to Automake. For example:
myprograms = a b c d e
TESTS = $(myprograms)
check_PROGRAMS = $(TESTS)
EXTRA_DIST = $(myprograms:.test=.stdout)
> Cheers [(c) Ralf],
No, I certainly did not invent that, but cheers, ;-)
Ralf