diff options
-rw-r--r-- | parser.go | 4 | ||||
-rw-r--r-- | testcase/target_specific_var_simple.mk | 3 | ||||
-rw-r--r-- | testcase/target_specific_var_timing.mk | 17 |
3 files changed, 23 insertions, 1 deletions
@@ -465,7 +465,9 @@ func (p *parser) parse() (mk Makefile, err error) { switch ch { case ':': if i+1 < len(line) && line[i+1] == '=' { - ast = p.parseAssign(line, i, i+2) + if !isRule { + ast = p.parseAssign(line, i, i+2) + } } else { isRule = true } diff --git a/testcase/target_specific_var_simple.mk b/testcase/target_specific_var_simple.mk new file mode 100644 index 0000000..161df90 --- /dev/null +++ b/testcase/target_specific_var_simple.mk @@ -0,0 +1,3 @@ +test: X:=PASS +test: + echo $(X) diff --git a/testcase/target_specific_var_timing.mk b/testcase/target_specific_var_timing.mk new file mode 100644 index 0000000..42321f4 --- /dev/null +++ b/testcase/target_specific_var_timing.mk @@ -0,0 +1,17 @@ +# TODO + +PASS:=PASS +FAIL:=FAIL +PASS2:=PASS + +test: foo + +foo: X := $(PASS) +foo: Y=$(FAIL) +foo: Z=$(PASS2) + +foo: + echo $(X) $(Y) $(Z) + +PASS:= +FAIL:= |