Rearrange everything.
[mdw-cross] / Makefile
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..268ff6d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,36 @@
+### -*-makefile-*-
+
+.SECONDEXPANSION: #sorry
+all::
+
+FLAVOURS               += linux
+linux_ARCHS             = armel armhf arm64
+linux/armel_ARCH        = arm-linux-gnueabi
+linux/armhf_ARCH        = arm-linux-gnueabihf
+linux/arm64_ARCH        = aarch64-linux-gnu
+
+FLAVOURS               += android
+android_ARCHS           = arm arm64 x86 x86_64
+android/arm_ARCH        = arm-linux-androideabi
+android/arm64_ARCH      = aarch64-linux-android
+android/x86_ARCH        = i686-linux-android
+android/x86_64_ARCH     = x86_64-linux-android
+
+V                       = 0
+v_tag                   = $(call v_tag_$V,$1)
+v_tag_0                         = @printf "  %-8s %s\n" "$1" "$@";
+
+SETUPS                  = \
+       $(foreach f,$(FLAVOURS),\
+               $(foreach a,$($f_ARCHS),etc/$f-$a-setup.sh))
+TARGETS                        += $(SETUPS)
+setup-flavour           = $(word 1,$(subst -, ,$1))
+setup-arch              = $(word 2,$(subst -, ,$1))
+
+$(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-cross-setup.sh.in Makefile
+       $(call v_tag,GEN)sed 's/@arch@/$($(call setup-flavour,$*)/$(call setup-arch,$*)_ARCH)/g' $< >$@.new && mv $@.new $@
+
+all:: $(TARGETS)
+
+CLEANFILES             += $(TARGETS)
+clean::; rm -f $(CLEANFILES)