+define shvar
+V_$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
+endef
+
+define shexport
+$(call shvar,$(1))=$$(call $(1))
+export $(call shvar,$(1))
+endef
+
+# Default targets for subdirectory calls
+# Parameters:
+# 1: dependencies for the prepare step
+define default_subtargets
+ %-download %-prepare %-compile %-install %-clean: FORCE
+ $$(MAKE) -C $$* $$(patsubst $$*-%,%,$$@)
+
+ %-compile: %-prepare
+ %-install: %-compile
+ .SILENT: %-clean
+endef
+
+