1 ######################################################################
3 ######################################################################
6 $(foreach stage, $(STAGES), \
7 $(foreach host, $(CFG_TARGET_TRIPLES), \
8 clean$(stage)_H_$(host) \
9 $(foreach target, $(CFG_TARGET_TRIPLES), \
10 clean$(stage)_T_$(target)_H_$(host))))
13 $(foreach target, $(CFG_TARGET_TRIPLES), \
16 .PHONY: clean clean-all clean-misc
18 clean-all: clean clean-llvm
20 clean-llvm: $(CLEAN_LLVM_RULES)
22 clean: clean-misc $(CLEAN_STAGE_RULES)
26 $(Q)find linenoise rustllvm rt $(CFG_HOST_TRIPLE)/test \
27 -name '*.[odasS]' -o \
34 $(Q)find linenoise rustllvm rt $(CFG_HOST_TRIPLE)\
37 $(Q)rm -f $(RUNTIME_OBJS) $(RUNTIME_DEF)
38 $(Q)rm -f $(RUSTLLVM_LIB_OBJS) $(RUSTLLVM_OBJS_OBJS) $(RUSTLLVM_DEF)
39 $(Q)rm -f $(LINENOISE_OBJS)
41 $(Q)rm -Rf $(GENERATED)
42 $(Q)rm -f tmp/*.log tmp/*.rc tmp/*.rs
43 $(Q)rm -Rf $(PKG_NAME)-*.tar.gz dist
44 $(Q)rm -Rf $(foreach ext, \
45 html aux cp fn ky log pdf pg toc tp vr cps, \
46 $(wildcard doc/*.$(ext) \
49 $(Q)rm -Rf doc/version.md
50 $(Q)rm -Rf $(foreach sub, index styles files search javascript, \
51 $(wildcard doc/*/$(sub)))
53 define CLEAN_HOST_STAGE_N
56 $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustc$(X)
57 $(Q)rm -f $$(HBIN$(1)_H_$(2))/fuzzer$(X)
58 $(Q)rm -f $$(HBIN$(1)_H_$(2))/cargo$(X)
59 $(Q)rm -f $$(HBIN$(1)_H_$(2))/rusti$(X)
60 $(Q)rm -f $$(HBIN$(1)_H_$(2))/serializer$(X)
61 $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustdoc$(X)
62 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUNTIME)
63 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_CORELIB)
64 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_STDLIB)
65 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTC)
66 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBSYNTAX)
67 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CORELIB_GLOB)
68 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(STDLIB_GLOB)
69 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUSTC_GLOB)
70 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBSYNTAX_GLOB)
71 $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUSTLLVM)
72 $(Q)rm -f $$(HLIB$(1)_H_$(2))/libstd.rlib
76 $(foreach host, $(CFG_TARGET_TRIPLES), \
77 $(eval $(foreach stage, $(STAGES), \
78 $(eval $(call CLEAN_HOST_STAGE_N,$(stage),$(host))))))
80 define CLEAN_TARGET_STAGE_N
82 clean$(1)_T_$(2)_H_$(3):
83 $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustc$(X)
84 $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/fuzzer$(X)
85 $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/cargo$(X)
86 $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rusti$(X)
87 $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/serializer$(X)
88 $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustdoc$(X)
89 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME)
90 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB)
91 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB)
92 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC)
93 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX)
94 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CORELIB_GLOB)
95 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(STDLIB_GLOB)
96 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTC_GLOB)
97 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBSYNTAX_GLOB)
98 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM)
99 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libstd.rlib
100 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a
101 $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/liblinenoise.a
104 $(foreach host, $(CFG_TARGET_TRIPLES), \
105 $(eval $(foreach target, $(CFG_TARGET_TRIPLES), \
106 $(eval $(foreach stage, 0 1 2 3, \
107 $(eval $(call CLEAN_TARGET_STAGE_N,$(stage),$(target),$(host))))))))
109 define DEF_CLEAN_LLVM_TARGET
110 ifeq ($(CFG_LLVM_ROOT),)
112 $$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) clean
119 $(foreach target, $(CFG_TARGET_TRIPLES), \
120 $(eval $(call DEF_CLEAN_LLVM_TARGET,$(target))))