| 1 | ### -*-makefile-*- |
| 2 | |
| 3 | .SECONDEXPANSION: #sorry |
| 4 | all:: |
| 5 | |
| 6 | FLAVOURS += linux-cross |
| 7 | linux-cross_ARCHS = linux-armel linux-armhf linux-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 += linux-native |
| 13 | linux-native_ARCHS = linux-i386 linux-amd64 |
| 14 | linux-i386_ARCH = i686-linux-gnu |
| 15 | linux-amd64_ARCH = x86_64-linux-gnu |
| 16 | |
| 17 | FLAVOURS += android-cross |
| 18 | android-cross_ARCHS = android-arm android-arm64 android-x86 android-x86_64 |
| 19 | android-arm_ARCH = arm-linux-androideabi |
| 20 | android-arm64_ARCH = aarch64-linux-android |
| 21 | android-x86_ARCH = i686-linux-android |
| 22 | android-x86_64_ARCH = x86_64-linux-android |
| 23 | |
| 24 | V = 0 |
| 25 | v_tag = $(call v_tag_$V,$1) |
| 26 | v_tag_0 = @printf " %-8s %s\n" "$1" "$@"; |
| 27 | V_AT = $(V_AT_$V) |
| 28 | V_AT_0 = @ |
| 29 | |
| 30 | define define-setup |
| 31 | SETUPS += etc/$2-setup.sh |
| 32 | $2_FLAVOUR = $1 |
| 33 | endef |
| 34 | $(foreach f,$(FLAVOURS), \ |
| 35 | $(foreach a,$($f_ARCHS), \ |
| 36 | $(eval $(call define-setup,$f,$a)))) |
| 37 | |
| 38 | TARGETS += $(SETUPS) |
| 39 | setup-flavour = $($1_FLAVOUR) |
| 40 | |
| 41 | $(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-setup.sh.in Makefile |
| 42 | $(call v_tag,GEN)sed 's/@arch@/$($*_ARCH)/g' $< >$@.new && mv $@.new $@ |
| 43 | |
| 44 | all:: $(TARGETS) |
| 45 | |
| 46 | CLEANFILES += $(TARGETS) |
| 47 | clean::; rm -f $(CLEANFILES) |
| 48 | |
| 49 | show:; : $(VAR) |