.SECONDEXPANSION: #sorry
all::
+CROSSDIR := $(shell pwd)
+
FLAVOURS += linux-cross
linux-cross_ARCHS = linux-armel linux-armhf linux-arm64
linux-armel_ARCH = arm-linux-gnueabi
android-x86_ARCH = i686-linux-android
android-x86_64_ARCH = x86_64-linux-android
+CONFIG_VARS += FLAVOURS
+CONFIG_VARS += $(foreach f,$(FLAVOURS), $f_ARCHS)
+
V = 0
v_tag = $(call v_tag_$V,$1)
v_tag_0 = @printf " %-8s %s\n" "$1" "$@";
setup-flavour = $($1_FLAVOUR)
$(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-setup.sh.in Makefile
- $(call v_tag,GEN)sed 's/@arch@/$($*_ARCH)/g' $< >$@.new && mv $@.new $@
+ $(V_AT)mkdir -p $(dir $@)
+ $(call v_tag,SED)sed 's/@arch@/$($*_ARCH)/g' $< >$@.new && \
+ mv $@.new $@
+
+SCRIPTS = mdw-cross crosstool
+BINSCRIPTS = $(addprefix bin/,$(SCRIPTS))
+TARGETS += $(BINSCRIPTS)
+$(BINSCRIPTS): bin/%: src/%.in
+ $(V_AT)mkdir -p $(dir $@)
+ $(call v_tag,SED)sed 's\a@crossdir@\a$(CROSSDIR)\a' $< >$@.new && \
+ chmod +x $@.new && mv $@.new $@
+
+fix = $(subst -,_,$1)
+quote = '$(subst ','\'',$1)'#'
+
+TARGETS += etc/config.sh
+etc/config.sh: Makefile
+ $(V_AT)mkdir -p $(dir $@)
+ $(call v_tag,GEN){ \
+ echo '### -*-sh-*- GENERATED by mdw-cross/Makefile'; \
+ $(foreach v,$(CONFIG_VARS), \
+ echo $(call fix,$v)=$(call quote,$(call quote,$($v)));) \
+ } >$@.new && mv $@.new $@
all:: $(TARGETS)