mdw/cross.in, Makefile: Rename to simply `cross'.
[mdw-cross] / Makefile
index 5c1ffc1..4505f83 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -48,7 +48,7 @@ $(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-setup.sh.in Makefile
        $(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
@@ -63,7 +63,7 @@ TARGETS                       += etc/config.sh
 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 $@
@@ -73,4 +73,24 @@ all:: $(TARGETS)
 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)