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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# file : build/import.make
# copyright : Copyright (c) 2004-2012 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
# This cannot be eliminated.
#
%frame_exclude% += import-set-value
define import-set-value
$(eval $$1 := $$2)
endef
%frame_exclude% += exported-names
define exported-names
$(foreach i,1 2 3 4 5 6 7,$(if $(value $i),$(lastword $(value $i))))
endef
%frame_exclude% += import-names
define import-names
$(foreach i,1 2 3 4 5 6 7,$(if $(lastword $(value $i)),\
$(call import-set-value,$(lastword $(value $i)),$(value $(firstword $(value $i))))))
endef
%frame_exclude% += import-body
define import-body
$(call frame-enter,$(call exported-names,$2,$3,$4,$5,$6,$7,$8))
$(call include,$1)
$(call import-names,$2,$3,$4,$5,$6,$7,$8)
$(call frame-leave)
endef
# Simple case where there are no names imported. Also note that we use
# include-once here since there is no reason to do it more than once.
# We key it onto out_root to make sure we don't process the same makefile
# more than once since that's what export stubs do.
#
%frame_exclude% += import-body-simple
define import-body-simple
$(call frame-enter)
$(call include-once,$1,$(out_root))
$(call frame-leave)
endef
#
#
%frame_exclude% += import
define import
$(eval $(if $(strip $2),\
$(call import-body,$1,$2,$3,$4,$5,$6,$7,$8),\
$(call import-body-simple,$1)))
endef
#
# export
#
%frame_exclude% += export-names
define export-names
$(foreach i,1 2 3 4 5 6 7,$(if $(value $i),\
$(call import-set-value,$(firstword $(value $i)),$(wordlist 2,$(words $(value $i)),$(value $i)))))
endef
%frame_exclude% += export
define export
$(call export-names,$1,$2,$3,$4,$5,$6,$7)
endef
|