]>
Commit | Line | Data |
---|---|---|
fe692bf9 FG |
1 | include ../tools.mk |
2 | ||
3 | SRC=test.rs | |
4 | OUT=$(TMPDIR)/out | |
5 | ||
6 | all: asm llvm-ir dep-info mir llvm-bc obj metadata link multiple-types multiple-types-option-o | |
7 | ||
8 | asm: $(OUT) | |
9 | $(RUSTC) --emit asm=$(OUT)/$@ $(SRC) | |
10 | $(RUSTC) --emit asm=- $(SRC) | diff - $(OUT)/$@ | |
11 | llvm-ir: $(OUT) | |
12 | $(RUSTC) --emit llvm-ir=$(OUT)/$@ $(SRC) | |
13 | $(RUSTC) --emit llvm-ir=- $(SRC) | diff - $(OUT)/$@ | |
14 | dep-info: $(OUT) | |
15 | $(RUSTC) -Z dep-info-omit-d-target=yes --emit dep-info=$(OUT)/$@ $(SRC) | |
16 | $(RUSTC) --emit dep-info=- $(SRC) | diff - $(OUT)/$@ | |
17 | mir: $(OUT) | |
18 | $(RUSTC) --emit mir=$(OUT)/$@ $(SRC) | |
19 | $(RUSTC) --emit mir=- $(SRC) | diff - $(OUT)/$@ | |
20 | ||
21 | llvm-bc: $(OUT) | |
22 | $(RUSTC) --emit llvm-bc=- $(SRC) 1>/dev/ptmx 2>$(OUT)/$@ || true | |
23 | diff $(OUT)/$@ emit-llvm-bc.stderr | |
24 | obj: $(OUT) | |
25 | $(RUSTC) --emit obj=- $(SRC) 1>/dev/ptmx 2>$(OUT)/$@ || true | |
26 | diff $(OUT)/$@ emit-obj.stderr | |
27 | ||
28 | # For metadata output, a temporary directory will be created to hold the temporary | |
29 | # metadata file. But when output is stdout, the temporary directory will be located | |
30 | # in the same place as $(SRC), which is mounted as read-only in the tests. Thus as | |
31 | # a workaround, $(SRC) is copied to the test output directory $(OUT) and we compile | |
32 | # it there. | |
33 | metadata: $(OUT) | |
34 | cp $(SRC) $(OUT) | |
35 | (cd $(OUT); $(RUSTC) --emit metadata=- $(SRC) 1>/dev/ptmx 2>$(OUT)/$@ || true) | |
36 | diff $(OUT)/$@ emit-metadata.stderr | |
37 | ||
38 | link: $(OUT) | |
39 | $(RUSTC) --emit link=- $(SRC) 1>/dev/ptmx 2>$(OUT)/$@ || true | |
40 | diff $(OUT)/$@ emit-link.stderr | |
41 | ||
42 | multiple-types: $(OUT) | |
43 | $(RUSTC) --emit asm=- --emit llvm-ir=- --emit dep-info=- --emit mir=- $(SRC) 2>$(OUT)/$@ || true | |
44 | diff $(OUT)/$@ emit-multiple-types.stderr | |
45 | ||
46 | multiple-types-option-o: $(OUT) | |
47 | $(RUSTC) -o - --emit asm,llvm-ir,dep-info,mir $(SRC) 2>$(OUT)/$@ || true | |
48 | diff $(OUT)/$@ emit-multiple-types.stderr | |
49 | ||
50 | $(OUT): | |
51 | mkdir -p $(OUT) |