4 $(RUSTC) foo.rs --crate-type=rlib,dylib,staticlib
5 $(call REMOVE_RLIBS,bar)
6 $(call REMOVE_DYLIBS,bar)
7 rm $(call STATICLIB,bar)
8 rm -f $(TMPDIR)/{lib,}bar.{dll.exp,dll.lib,pdb,dll.a}
9 # Check that $(TMPDIR) is empty.
10 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
12 $(RUSTC) foo.rs --crate-type=bin
13 rm $(TMPDIR)/$(call BIN,bar)
14 rm -f $(TMPDIR)/bar.pdb
15 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
17 $(RUSTC) foo.rs --emit=asm,llvm-ir,llvm-bc,obj,link
22 rm $(TMPDIR)/$(call BIN,bar)
23 rm -f $(TMPDIR)/bar.pdb
24 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
26 $(RUSTC) foo.rs --emit asm -o $(TMPDIR)/foo
28 $(RUSTC) foo.rs --emit asm=$(TMPDIR)/foo
30 $(RUSTC) foo.rs --emit=asm=$(TMPDIR)/foo
32 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
34 $(RUSTC) foo.rs --emit llvm-bc -o $(TMPDIR)/foo
36 $(RUSTC) foo.rs --emit llvm-bc=$(TMPDIR)/foo
38 $(RUSTC) foo.rs --emit=llvm-bc=$(TMPDIR)/foo
40 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
42 $(RUSTC) foo.rs --emit llvm-ir -o $(TMPDIR)/foo
44 $(RUSTC) foo.rs --emit llvm-ir=$(TMPDIR)/foo
46 $(RUSTC) foo.rs --emit=llvm-ir=$(TMPDIR)/foo
48 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
50 $(RUSTC) foo.rs --emit obj -o $(TMPDIR)/foo
52 $(RUSTC) foo.rs --emit obj=$(TMPDIR)/foo
54 $(RUSTC) foo.rs --emit=obj=$(TMPDIR)/foo
56 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
58 $(RUSTC) foo.rs --emit link -o $(TMPDIR)/$(call BIN,foo)
59 rm $(TMPDIR)/$(call BIN,foo)
60 $(RUSTC) foo.rs --emit link=$(TMPDIR)/$(call BIN,foo)
61 rm $(TMPDIR)/$(call BIN,foo)
62 $(RUSTC) foo.rs --emit=link=$(TMPDIR)/$(call BIN,foo)
63 rm $(TMPDIR)/$(call BIN,foo)
64 rm -f $(TMPDIR)/foo.pdb
65 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
67 $(RUSTC) foo.rs --crate-type=rlib -o $(TMPDIR)/foo
69 $(RUSTC) foo.rs --crate-type=rlib --emit link=$(TMPDIR)/foo
71 $(RUSTC) foo.rs --crate-type=rlib --emit=link=$(TMPDIR)/foo
73 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
75 $(RUSTC) foo.rs --crate-type=dylib -o $(TMPDIR)/$(call BIN,foo)
76 rm $(TMPDIR)/$(call BIN,foo)
77 $(RUSTC) foo.rs --crate-type=dylib --emit link=$(TMPDIR)/$(call BIN,foo)
78 rm $(TMPDIR)/$(call BIN,foo)
79 $(RUSTC) foo.rs --crate-type=dylib --emit=link=$(TMPDIR)/$(call BIN,foo)
80 rm $(TMPDIR)/$(call BIN,foo)
81 rm -f $(TMPDIR)/{lib,}foo.{dll.exp,dll.lib,pdb,dll.a,exe.a}
82 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ] || (ls -1 $(TMPDIR) && exit 1)
84 $(RUSTC) foo.rs --crate-type=staticlib -o $(TMPDIR)/foo
86 $(RUSTC) foo.rs --crate-type=staticlib --emit link=$(TMPDIR)/foo
88 $(RUSTC) foo.rs --crate-type=staticlib --emit=link=$(TMPDIR)/foo
90 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
92 $(RUSTC) foo.rs --crate-type=bin -o $(TMPDIR)/$(call BIN,foo)
93 rm $(TMPDIR)/$(call BIN,foo)
94 $(RUSTC) foo.rs --crate-type=bin --emit link=$(TMPDIR)/$(call BIN,foo)
95 rm $(TMPDIR)/$(call BIN,foo)
96 $(RUSTC) foo.rs --crate-type=bin --emit=link=$(TMPDIR)/$(call BIN,foo)
97 rm $(TMPDIR)/$(call BIN,foo)
98 rm -f $(TMPDIR)/foo.pdb
99 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
101 $(RUSTC) foo.rs --emit llvm-ir=$(TMPDIR)/ir \
105 rm $(TMPDIR)/libbar.rlib
106 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
108 $(RUSTC) foo.rs --emit asm=$(TMPDIR)/asm \
109 --emit llvm-ir=$(TMPDIR)/ir \
110 --emit llvm-bc=$(TMPDIR)/bc \
111 --emit obj=$(TMPDIR)/obj \
112 --emit link=$(TMPDIR)/link \
113 --crate-type=staticlib
119 $(RUSTC) foo.rs --emit=asm=$(TMPDIR)/asm \
120 --emit llvm-ir=$(TMPDIR)/ir \
121 --emit=llvm-bc=$(TMPDIR)/bc \
122 --emit obj=$(TMPDIR)/obj \
123 --emit=link=$(TMPDIR)/link \
124 --crate-type=staticlib
130 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]
132 $(RUSTC) foo.rs --emit=asm,llvm-ir,llvm-bc,obj,link --crate-type=staticlib
136 rm $(call STATICLIB,bar)
137 mv $(TMPDIR)/bar.bc $(TMPDIR)/foo.bc
138 # Don't check that the $(TMPDIR) is empty - we left `foo.bc` for later
141 $(RUSTC) foo.rs --emit=llvm-bc,link --crate-type=rlib
142 cmp $(TMPDIR)/foo.bc $(TMPDIR)/bar.bc
145 $(call REMOVE_RLIBS,bar)
146 [ "$$(ls -1 $(TMPDIR) | wc -l)" -eq "0" ]