3 # construct a fairly exhaustive list of platforms that we
4 # support. These ones don't follow a pattern
5 TARGETS
=arm-linux-androideabi arm-unknown-linux-gnueabihf arm-unknown-linux-gnueabi
7 # these ones do, each OS lists the architectures it supports
8 LINUX
=aarch64 i686 x86_64 mips mipsel
10 # fails with: failed to get iphonesimulator SDK path: no such file or directory
11 #IOS=i386 aarch64 armv7
14 $(foreach arch
,$(LINUX
),$(eval TARGETS
+= $(arch
)-unknown-linux-gnu
))
15 $(foreach arch
,$(WINDOWS
),$(eval TARGETS
+= $(arch
)-pc-windows-gnu
))
16 #$(foreach arch,$(IOS),$(eval TARGETS += $(arch)-apple-ios))
17 $(foreach arch
,$(DARWIN
),$(eval TARGETS
+= $(arch
)-apple-darwin
))
22 # compile the rust file to the given target, but only to asm and IR
23 # form, to avoid having to have an appropriate linker.
25 # we need some features because the integer SIMD instructions are not
26 # enabled by-default for i686 and ARM; these features will be invalid
27 # on some platforms, but LLVM just prints a warning so that's fine for
30 $$(RUSTC
) --target
=$(1) --emit
=llvm-ir
,asm simd.rs \
31 -C target-feature
='+neon,+sse2' -C extra-filename
=-$(1)
34 $(foreach targetxxx
,$(TARGETS
),$(eval
$(call MK_TARGETS
,$(targetxxx
))))