[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,  ;-)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]