Rearrange everything.
[mdw-cross] / Makefile
1 ### -*-makefile-*-
2
3 .SECONDEXPANSION: #sorry
4 all::
5
6 FLAVOURS += linux
7 linux_ARCHS = armel armhf arm64
8 linux/armel_ARCH = arm-linux-gnueabi
9 linux/armhf_ARCH = arm-linux-gnueabihf
10 linux/arm64_ARCH = aarch64-linux-gnu
11
12 FLAVOURS += android
13 android_ARCHS = arm arm64 x86 x86_64
14 android/arm_ARCH = arm-linux-androideabi
15 android/arm64_ARCH = aarch64-linux-android
16 android/x86_ARCH = i686-linux-android
17 android/x86_64_ARCH = x86_64-linux-android
18
19 V = 0
20 v_tag = $(call v_tag_$V,$1)
21 v_tag_0 = @printf " %-8s %s\n" "$1" "$@";
22
23 SETUPS = \
24 $(foreach f,$(FLAVOURS),\
25 $(foreach a,$($f_ARCHS),etc/$f-$a-setup.sh))
26 TARGETS += $(SETUPS)
27 setup-flavour = $(word 1,$(subst -, ,$1))
28 setup-arch = $(word 2,$(subst -, ,$1))
29
30 $(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-cross-setup.sh.in Makefile
31 $(call v_tag,GEN)sed 's/@arch@/$($(call setup-flavour,$*)/$(call setup-arch,$*)_ARCH)/g' $< >$@.new && mv $@.new $@
32
33 all:: $(TARGETS)
34
35 CLEANFILES += $(TARGETS)
36 clean::; rm -f $(CLEANFILES)