automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: I: adjust test suite for upcoming GNU Make 3.83


From: Stepan Kasal
Subject: Re: I: adjust test suite for upcoming GNU Make 3.83
Date: Tue, 5 Jul 2005 16:01:05 +0200
User-agent: Mutt/1.4.1i

Hello,

On Tue, Jul 05, 2005 at 09:31:10AM -0400, address@hidden wrote:
>   ifeq (,$(filter second-expansion,$(.FEATURES)))
>      # GNU make <3.81
>      PRE_D := $$
>   else
>      # GNU make >=3.81
>      PRE_D := $$$$
>   endif
...
>   install-dist_myDATA: $(subst $$,$(PRE_D),$(dist_my_DATA))

> The trick will be knowing when to generate this GNU make-specific
> content into the makefile, and when you can avoid it... I assume you'd
> only want to generate it when you have filenames containing $.

Or, as Alexandre pointed out, when you _might_ have them, for example
when some filenames are substituted by configure.

This means that Automake has to place both alternatives into the generated
Makefile.in.  When building the package, configure would detect which make
is used, and select the right alternative when generating the Makefile,
by a mechanism similar to AM_CONDITIONAL.

Actually, this can be reduced:
Makefile.in would contain the following two alternatives:

  install-dist_myDATA: $(dist_my_DATA)
  install-dist_myDATA: $(subst $$,$$$$,$(dist_my_DATA))

And configure would select the latter variant, iff GNU make 3.81 is
detected.

Actually, it follows the standard teplate:
- test for a vendor bug in configure
- activate a workaround if the bug is detected

But it's sad that the vendor of the non-portable implementation here is GNU.

Alternatively, Automake could simply state that $'s in filename are
not portable.

I'd really like to ask you to introduce a way to switch this unusual
feature off, preferably with a dot-target, so that portable Makefiles
can be generated more easily.

Have a nice day,
        Stepan




reply via email to

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