summaryrefslogtreecommitdiff
path: root/mk/cores.mk
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-04-27 11:30:47 -0600
committerAlejandro Soto <alejandro@34project.org>2024-04-27 11:30:47 -0600
commita4b94d40e61e634aa8e970af3911a7671e7d8d50 (patch)
treee7fc9b2b9d84a32aa9f01aa744008d3308feac92 /mk/cores.mk
parentd5dd7bf1879c2a99779b70b8f063f3f16d8b2df8 (diff)
mk: implement peakrdl support
Diffstat (limited to 'mk/cores.mk')
-rw-r--r--mk/cores.mk16
1 files changed, 14 insertions, 2 deletions
diff --git a/mk/cores.mk b/mk/cores.mk
index 7ff373d..5c71272 100644
--- a/mk/cores.mk
+++ b/mk/cores.mk
@@ -10,18 +10,30 @@ all_stamps :=
top_stamp = $(call core_stamp,$(rule_top))
core_stamp = $(obj)/deps/$(core_info/$(1)/path)/stamp
-core_paths = \
+core_paths_no_dyn = \
$(patsubst /%,%, \
$(patsubst /,., \
$(abspath \
$(let prefix,$(core_info/$(1)/workdir), \
- $(addprefix /$(if $(prefix),$(prefix)/),$(core_info/$(1)/$(2)))))))
+ $(foreach path_elem,$(core_info/$(1)/$(2)), \
+ $(if $(patsubst /%,,$(path_elem)), \
+ $(addprefix /$(if $(prefix),$(prefix)/),$(path_elem)), \
+ $(path_elem)))))))
+
+core_paths = \
+ $(call core_paths_no_dyn,$(1),$(2)) $(call core_paths_no_dyn,$(1),$(call target_var,$(2)))
require_core_paths = \
$(strip \
$(let val,$(strip $(call core_paths,$(1),$(2))), \
$(if $(val),$(val),$(error core '$(1)' must define '$(2)'))))
+core_paths_dyn = $(call core_paths,$(1),$(call target_var,$(2)))
+
+define add_core_dyn
+ core_info/$(1)/$(call target_var,$(2)) := $(core_info/$(1)/$(call target_var,$(2))) $(3)
+endef
+
require_core_var = \
$(strip \
$(let val,$(core_info/$(1)/$(2)), \