Bring `native' architectures into the collection.
[mdw-cross] / Makefile
index 268ff6d..b1c4d9f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,34 +3,45 @@
 .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
+FLAVOURS               += linux-cross
+linux-cross_ARCHS       = linux-armel linux-armhf linux-arm64
+linux-armel_ARCH        = arm-linux-gnueabi
+linux-armhf_ARCH        = arm-linux-gnueabihf
+linux-arm64_ARCH        = aarch64-linux-gnu
+
+FLAVOURS               += linux-native
+linux-native_ARCHS      = linux-i386 linux-amd64
+linux-i386_ARCH                 = i686-linux-gnu
+linux-amd64_ARCH        = x86_64-linux-gnu
+
+FLAVOURS               += android-cross
+android-cross_ARCHS     = android-arm android-arm64 android-x86 android-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))
+define define-setup
+SETUPS                 += etc/$2-setup.sh
+$2_FLAVOUR              = $1
+endef
+$(foreach f,$(FLAVOURS), \
+       $(foreach a,$($f_ARCHS), \
+               $(eval $(call define-setup,$f,$a))))
+
 TARGETS                        += $(SETUPS)
-setup-flavour           = $(word 1,$(subst -, ,$1))
-setup-arch              = $(word 2,$(subst -, ,$1))
+setup-flavour           = $($1_FLAVOUR)
 
-$(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 $@
+$(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-setup.sh.in Makefile
+       $(call v_tag,GEN)sed 's/@arch@/$($*_ARCH)/g' $< >$@.new && mv $@.new $@
 
 all:: $(TARGETS)
 
 CLEANFILES             += $(TARGETS)
 clean::; rm -f $(CLEANFILES)
+
+show:; : $(VAR)