[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#7562: automake-set variables don't get properly reordered when overr
bug#7562: automake-set variables don't get properly reordered when overriden in Makefile.am
Mon, 6 Dec 2010 07:28:04 +1100
Remark: This may be unrelated.
I don't know about overriding in Makefile.am, but overriding $(prefix)
is important for supporting GNU Stow. To set up a package for Stow,
you configure for one prefix and install under another (note that this
isn't the same as using $(DESTDIR) - that dumps the whole directory
tree under the target path).
So whatever you do with the variable ordering, I hope it doesn't break
overrides from the command line.
On Mon, Dec 6, 2010 at 4:34 AM, Stefano Lattarini
> Severity: wishlist
> This issue was brought up by Ralf Wildenhues in a thread on automake-patches.
> Automake generally orders all of its variable settings before all of the user
> ones (so the user ones are preferred). But when one overrides e.g. bindir in
> a Makefile.am, that variable doesn't get reordered to the user part, because
> it is actually automake-set before it is overridden. The issue is exposed in
> the attached testcase.
> It's still not clear to me whether this is a bug or a feature, but I thought
> that entering it into the Automake bug database would be a good idea anyway.
> #! /bin/sh
> # Test that := definitions work as expected at make time, even when
> # whey involve user-overridden automake-set variables.
> # Currently, this test doesn't work, because automake generally orders
> # all of its variable settings (e.g. bindir and the like) before all
> # of the user ones. Even when bindir is overridden, it doesn't get
> # reordered to the user part. Might this be considered an automake bug?
> . ./defs || Exit 1
> set -e
> cat >> configure.in << 'END'
> cat > Makefile.am << 'END'
> BAR := $(bindir)
> BAZ = $(bindir)
> bindir = foo
> .PHONY: test
> test x'$(bindir)' = x'foo'
> test x'$(BAZ)' = x'foo'
> test x'$(BAR)' = x
> $AUTOMAKE -Wno-portability
> $MAKE test