|
2 | 2 | # rustc LLVM-extensions (C++) library variables and rules
|
3 | 3 | ######################################################################
|
4 | 4 |
|
5 |
| -RUSTLLVM_OBJS_CS := $(addprefix rustllvm/, RustGCMetadataPrinter.cpp \ |
| 5 | +define DEF_RUSTLLVM_TARGETS |
| 6 | + |
| 7 | +RUSTLLVM_OBJS_CS_$(1) := $$(addprefix rustllvm/, RustGCMetadataPrinter.cpp \ |
6 | 8 | RustGCStrategy.cpp RustWrapper.cpp)
|
7 | 9 |
|
8 | 10 | # Behind an ifdef for now since this requires a patched LLVM.
|
9 | 11 | ifdef CFG_STACK_GROWTH
|
10 |
| -RUSTLLVM_OBJS_CS += rustllvm/RustPrologHook.cpp |
| 12 | +RUSTLLVM_OBJS_CS_$(1) += rustllvm/RustPrologHook.cpp |
11 | 13 | endif
|
12 | 14 |
|
13 |
| -RUSTLLVM_DEF := rustllvm/rustllvm$(CFG_DEF_SUFFIX) |
| 15 | +RUSTLLVM_DEF_$(1) := rustllvm/rustllvm$$(CFG_DEF_SUFFIX) |
| 16 | + |
| 17 | +RUSTLLVM_INCS_$(1) := -iquote $$(CFG_LLVM_INCDIR) \ |
| 18 | + -iquote $$(S)src/rustllvm/include |
| 19 | +RUSTLLVM_OBJS_OBJS_$(1) := $$(RUSTLLVM_OBJS_CS_$(1):rustllvm/%.cpp=rustllvm/$(1)/%.o) |
14 | 20 |
|
15 |
| -RUSTLLVM_INCS := -iquote $(CFG_LLVM_INCDIR) \ |
16 |
| - -iquote $(S)src/rustllvm/include |
17 |
| -RUSTLLVM_OBJS_OBJS := $(RUSTLLVM_OBJS_CS:.cpp=.o) |
| 21 | +rustllvm/$(1)/$(CFG_RUSTLLVM): $$(RUSTLLVM_OBJS_OBJS_$(1)) \ |
| 22 | + $$(MKFILES) $$(RUSTLLVM_DEF_$(1)) |
| 23 | + @$$(call E, link: $$@) |
| 24 | + $$(Q)$$(call CFG_LINK_C_$(1),$$@,$$(RUSTLLVM_OBJS_OBJS_$(1)) \ |
| 25 | + $$(CFG_GCCISH_PRE_LIB_FLAGS) $$(CFG_LLVM_LIBS) \ |
| 26 | + $$(CFG_GCCISH_POST_LIB_FLAGS) \ |
| 27 | + $$(CFG_LLVM_LDFLAGS),$$(RUSTLLVM_DEF_$(1)),$$(CFG_RUSTLLVM)) |
18 | 28 |
|
19 |
| -rustllvm/$(CFG_RUSTLLVM): $(RUSTLLVM_OBJS_OBJS) \ |
20 |
| - $(MKFILES) $(RUSTLLVM_DEF) |
21 |
| - @$(call E, link: $@) |
22 |
| - $(Q)$(call CFG_LINK_C,$@,$(RUSTLLVM_OBJS_OBJS) \ |
23 |
| - $(CFG_GCCISH_PRE_LIB_FLAGS) $(CFG_LLVM_LIBS) \ |
24 |
| - $(CFG_GCCISH_POST_LIB_FLAGS) \ |
25 |
| - $(CFG_LLVM_LDFLAGS),$(RUSTLLVM_DEF),$(CFG_RUSTLLVM)) |
| 29 | +rustllvm/$(1)/%.o: rustllvm/%.cpp $$(MKFILES) |
| 30 | + @$$(call E, compile: $$@) |
| 31 | + $$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(CFG_LLVM_CXXFLAGS) $$(RUSTLLVM_INCS_$(1))) $$< |
26 | 32 |
|
27 |
| -rustllvm/%.o: rustllvm/%.cpp $(MKFILES) |
28 |
| - @$(call E, compile: $@) |
29 |
| - $(Q)$(call CFG_COMPILE_C, $@, $(CFG_LLVM_CXXFLAGS) $(RUSTLLVM_INCS)) $< |
| 33 | +endef |
30 | 34 |
|
| 35 | +# Instantiate template for all stages |
| 36 | +$(foreach target,$(CFG_TARGET_TRIPLES), \ |
| 37 | + $(eval $(call DEF_RUSTLLVM_TARGETS,$(target)))) |
0 commit comments