I had discovered two moments which determine such behavior:
1) appending to variable in "$(eval ...)" takes only first value in chain.
    I.e.:
    LDFLAGS defined in global context as "LDFLAGS += 1"
    and in target "A" as "LDFLAGS += 2",
    then actual value for "A" and all it's prerequisites will be "1 2".
    Calling "$(eval LDFLAGS += 3)" in recipe of target "A"
    or any prerequisite defines "LDFLAGS" as "2 3".

2) variable assignment during "$(eval ...)" in recipe sets new value
   in top-most variable without setting "variable.recursive = 0".
    I.e.:
    LDFLAGS after "$(eval ...)" equals "2 3" and defined in global context,
    but it's still recursive, that's why LDFLAGS is equal "2 3 2".

How do you think what I should change to fix bug and keep original logic?

--
SY,
Konstantin Demin


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to