[Buildroot] Make 3.82 does behave differently than make 3.81 for sure, but ...
m-starostik at versanet.de
Mon Aug 30 22:15:04 UTC 2010
Am Montag, 30. August 2010, 23:10:00 schrieb James J. Dines:
> I went for a third option (applying Yann's patch) and it indeed allows
> the 'make clean' to work. I remain confused why we did not need this
> patch to do a complete build with make 3.81 however. I just tried it
> again, and I do not get the error message on my other machine with 3.81
> even without the patch.
From make 3.82's NEWS file:
* WARNING: Backward-incompatibility!
As a result of parser enhancements, three backward-compatibility issues
exist: first, a prerequisite containing an "=" cannot be escaped with a
backslash any longer. [...]. Second, variable names can no
longer contain whitespace, unless you put the whitespace in a variable and
use the variable. Third, in previous versions of make it was sometimes
not flagged as an error for explicit and pattern targets to appear in the
same rule. Now this is always reported as an error.
What you're referring to re the kernel Makefile is the third mentioned issue.
What happens with atk.mk is the second one instead:
The incorrent Makefile snippet:
ATK_CONF_OPT = --enable-shared \
--disable-glibtest --enable-explicit-deps=no \
assigns the vaue "--enable-shared --enable-static" to a variable named
"ATK_CONF_OPT" and the value "no --disable-debug" to a variable named "--
I didn't know variable names with spaces (and even leading hyphens) were
allowed prior to 3.82, but that made make not barf on the above while of
course depriving $(ATK_CONF_OPT) of some of the options.
More information about the buildroot