1not_traced := no
2simple_immediate := \
3 a \
4 b \
5 c
6compound_immediate := \
7 $(one) \
8 d
9simple_deferred = e
10compound_deferred_1 = $(simple_immediate)
11compound_deferred_2 = $(simple_deferred)
12overwritten := f
13overwritten := g
14appened := h
15appended += i
16eval_macro = evaled := j
17$(eval $(eval_macro))
18multiple_1 := k
19multiple_2 := l
20
21# Standard make doesn't have KATI_variable_location, so the non-kati version
22# prints the expected value.
23#
24# $(1) variable name
25# $(2) expected location
26define print-location
27$(info KATI_variable_location: $(if $(KATI),$(KATI_variable_location $(1)),$(strip $(2))))
28endef
29
30$(call print-location, undefined_variable, <unknown>:0)
31$(call print-location, not_traced, Makefile:1)
32$(call print-location, simple_immediate, Makefile:2)
33$(call print-location, compound_immediate, Makefile:6)
34$(call print-location, simple_deferred, Makefile:9)
35$(call print-location, compound_deferred_1, Makefile:10)
36$(call print-location, compound_deferred_2, Makefile:11)
37$(call print-location, overwritten, Makefile:13)
38$(call print-location, appended, Makefile:15)
39$(call print-location, eval_macro, Makefile:16)
40$(call print-location, evaled, Makefile:17)
41$(call print-location, multiple_1 multiple_2, Makefile:18 Makefile:19)
42