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
|
cc_srcs = $(call require_core_paths,$(1),cc_files)
cc_objs = $(call cc_srcs_to_objs,$(1),$(call cc_srcs,$(1)))
cc_srcs_to_objs = $(addsuffix .o,$(addprefix $(obj)/cc/$(1)/,$(basename $(notdir $(2)))))
define hooks/cc
define obj_rules
cc_binary := $$(call require_core_objs,$(1),ld_binary)
$$(cc_binary): | $$(obj)/cc/$(1)
$$(cc_binary): $$(call cc_objs,$(1)) $$(obj_deps)
$$(call run,LD,$$@) $$(core_info/$(1)/cross)gcc \
$$(core_info/$(1)/cc_flags) $$(core_info/$(1)/ld_flags) \
$$(call cc_objs,$(1)) -o $$@
$$(obj)/cc/$(1): $$(obj)
@mkdir -p $$@
endef
$$(eval $$(call add_obj_rules,$(1)))
$$(foreach src,$$(call cc_srcs,$(1)), \
$$(eval $$(call cc_unit_rule,$(1),$$(src),$$(call cc_srcs_to_objs,$(1),$$(src)))))
endef
define cc_unit_rule
define obj_rules
$(3): $(2) $$(obj_deps)
$$(call run,CC,$$<) $(core_info/$(1)/cross)gcc $(core_info/$(1)/cc_flags) -c $$< -o $$@
endef
$$(eval $$(call add_obj_rules,$(1)))
endef
|