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
75
76
77
78
79
|
.PHONY: .force .no_default
.no_target:
$(error no default target defined in top Makefile)
.force:
empty :=
space := $(empty) $(empty)
comma := ,
# Both empty lines are required
define newline
endef
newline := $(newline)
defer = $(1) = $$(eval $(2))$$($(1))
ifeq (,$(top))
$(error $$(top) is not defined)
endif
$(foreach flag,$(subst $(comma),$(space),$(enable)),$(eval override enable_$(flag) := 1))
$(foreach flag,$(subst $(comma),$(space),$(disable)),$(eval override enable_$(flag) :=))
include mk/build.mk
include mk/cocotb.mk
include mk/cores.mk
include mk/cov.mk
include mk/output.mk
include mk/quartus.mk
include mk/target.mk
include mk/tools.mk
include mk/verilator.mk
$(eval $(check_target))
$(eval $(find_tools_lazy))
ifneq (,$(target))
$(eval $(target/$(target)/prepare))
endif
$(foreach top_dir,$(core_dirs), \
$(eval $(call add_core_subdir,$(top_dir))))
top_path := $(core_info/$(top)/path)
ifeq (,$(top_path))
$(call unknown_core,$(top))
endif
$(eval $(setup_dep_tree))
define build_target_top
ifeq (,$$(obj/$(if $(2),$(2),$(target))/$(1)))
$$(eval $$(call enter_build,$(1),$(2)))
$$(eval $$(call build_vars,rule_target rule_top core_info/$$(rule_top)/build))
$$(eval $$(target/$$(rule_target)/setup))
$$(eval $$(setup_obj))
$$(eval $$(setup_stamp_rules))
$$(eval $$(target/$$(rule_target)/rules))
obj/$$(rule_target)/$$(rule_top) := $$(obj)
$$(eval $$(exit_build))
endif
endef
ifneq (,$(target))
$(eval $(call build_target_top,$(top)))
endif
$(eval $(setup_submake_rules))
$(eval $(finish_stamp_rules))
|