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