POSIX Issue 8 added support for pattern substitution variable references like the following:

    $(foo:%=pfx_%_sfx)

When such a variable reference is added to TESTS, directly or indirectly (with delayed expansion), the substitution part is discarded, becoming $(foo). For example:

    TESTS = $(foo:%=pfx_%_sfx)

effectively becomes:

    TESTS = $(foo)

The same is true for non-pattern suffix replacement references, which have been in POSIX since at least Issue 5 (1997). For example:

    TESTS = $(foo:.ext1=.ext2)

effectively becomes:

    TESTS = $(foo)

Tested with:
  * git master branch
  * 1.16.5 packaged in Ubuntu

Not tested:
  * whether other variables are also affected
  * whether this is a recent breakage or a longstanding bug

I did not see any mention of this issue in the manual or existing bug reports. Please let me know if I overlooked something.

I will send a patch adding test cases as soon as I know what this bug's number will be. I am willing to propose patches to fix this; a pointer to where in the code this bug lives would be appreciated.

Thanks,
Richard

Reply via email to