aboutsummaryrefslogtreecommitdiff
path: root/tests/frame/save-restore.make
blob: b81a087db4c232dd79c8b643f05bf2fd7b25b6fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

include $(dir $(lastword $(MAKEFILE_LIST)))../../build/frame.make

define set-recursive
$1 = $2
endef

define set-simple
$1 := $2
endef

define save
$(eval $(if $(filter simple,$(flavor $1))\
,$(call set-simple,_$1,$(value $1))\
,$(call set-recursive,_$1,$(value $1))))
endef

define restore
$(eval $(if $(filter simple,$(flavor _$1))\
,$(call set-simple,$1,$(value _$1))\
,$(call set-recursive,$1,$(value _$1))))
endef

save = $(call frame-save,$1)
restore = $(call frame-restore,$1)

r = $(r2)

s := simple

$(call save,r)
$(call save,s)

#$(warning _r: $(value _r))
#$(warning _s: $(value _s))

r := foo
s = bar

$(call restore,r)
$(call restore,s)

r2 := recursive

$(warning r: $r)
$(warning s: $s)

.PHONY: all
all:;@: