$(call v_tag,SED)sed 's/@arch@/$($*_ARCH)/g' $< >$@.new && \
mv $@.new $@
-SCRIPTS = mdw-cross crosstool
+SCRIPTS = cross crosstool cross-run
BINSCRIPTS = $(addprefix bin/,$(SCRIPTS))
TARGETS += $(BINSCRIPTS)
$(BINSCRIPTS): bin/%: src/%.in
etc/config.sh: Makefile
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,GEN){ \
- echo '### -*-sh-*- GENERATED by mdw-cross/Makefile'; \
+ echo '### -*-sh-*- GENERATED by CROSS/Makefile'; \
$(foreach v,$(CONFIG_VARS), \
echo $(call fix,$v)=$(call quote,$(call quote,$($v)));) \
} >$@.new && mv $@.new $@
CLEANFILES += $(TARGETS)
clean::; rm -f $(CLEANFILES)
+run-program = exec 8>&1 && rc=$$( exec 7>&1 && \
+ { exec 9>&1 && \
+ { ($1 9>&-; echo $$? >&7) | \
+ while IFS= read -r line; \
+ do printf >&9 "%-21s | %s\n" "$2" "$$line"; done; } 2>&1 | \
+ while IFS= read -r line; \
+ do printf >&9 "%-21s * %s\n" "$2" "$$line"; done; } | cat >&8 ) && \
+ exit $$rc
+
+run: $(addprefix run/,$(ARCHS))
+$(addprefix run/,$(ARCHS)): run/%:
+ @cd $(DIR) && \
+ $(call run-program,$(CROSSDIR)/bin/cross $* $(ARGS),$*)
+.PHONY: run $(addprefix run/,$(ARCHS))
+
+run-make: $(addprefix run-make/,$(ARCHS))
+$(addprefix run-make/,$(ARCHS)): run-make/%:
+ @+$(call run-program,$(CROSSDIR)/bin/cross $* $(MAKE) -C$(DIR) $(ARGS),$*)
+.PHONY: run-make $(addprefix run-make/,$(ARCHS))
+
show:; : $(VAR)