summaryrefslogtreecommitdiff
path: root/digital/ucoolib/build/setup.mk
diff options
context:
space:
mode:
Diffstat (limited to 'digital/ucoolib/build/setup.mk')
-rw-r--r--digital/ucoolib/build/setup.mk26
1 files changed, 26 insertions, 0 deletions
diff --git a/digital/ucoolib/build/setup.mk b/digital/ucoolib/build/setup.mk
new file mode 100644
index 00000000..4ccd1cc3
--- /dev/null
+++ b/digital/ucoolib/build/setup.mk
@@ -0,0 +1,26 @@
+# ucoolib - Microcontroller object oriented library.
+#
+# Setup source files according to requested products and modules configuration.
+
+TARGETS ?= host
+
+DEFAULT_MODULES ?= arch
+
+ALL_PROGS := $(PROGS) $(foreach target,$(TARGETS),$($(target)_PROGS))
+
+ALL_MODULES := $(sort $(DEFAULT_MODULES) $(MODULES) \
+ $(foreach prog,$(ALL_PROGS),$($(prog)_MODULES)))
+
+include $(ALL_MODULES:%=$(BASE)/ucoolib/%/Module)
+
+define MODULES_template
+$1_SOURCES += $$(foreach module,\
+ $$(DEFAULT_MODULES) $$(call defval,$1_MODULES,$$(MODULES)),\
+ $$($$(subst /,_,$$(module))_SOURCES)\
+)
+endef
+$(foreach prog,$(ALL_PROGS),$(eval $(call MODULES_template,$(prog))))
+
+ALL_SOURCES := $(foreach prog,$(ALL_PROGS),$($(prog)_SOURCES))
+
+COMPILE_DEPS :=