]>
Commit | Line | Data |
---|---|---|
223e47cc LB |
1 | # Copyright 2012 The Rust Project Developers. See the COPYRIGHT |
2 | # file at the top-level directory of this distribution and at | |
3 | # http://rust-lang.org/COPYRIGHT. | |
4 | # | |
5 | # Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | |
6 | # http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
7 | # <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | |
8 | # option. This file may not be copied, modified, or distributed | |
9 | # except according to those terms. | |
10 | ||
11 | ###################################################################### | |
12 | # Cleanup | |
13 | ###################################################################### | |
14 | ||
1a4d82fc JJ |
15 | CLEAN_STAGE_RULES := \ |
16 | $(foreach stage, $(STAGES), \ | |
17 | $(foreach host, $(CFG_HOST), \ | |
18 | clean$(stage)_H_$(host) \ | |
19 | $(foreach target, $(CFG_TARGET), \ | |
223e47cc LB |
20 | clean$(stage)_T_$(target)_H_$(host)))) |
21 | ||
1a4d82fc JJ |
22 | CLEAN_STAGE_RULES := $(CLEAN_STAGE_RULES) \ |
23 | $(foreach host, $(CFG_HOST), clean-generic-H-$(host)) | |
24 | ||
25 | CLEAN_STAGE_RULES := $(CLEAN_STAGE_RULES) \ | |
26 | $(foreach host, $(CFG_TARGET), clean-generic-T-$(host)) | |
27 | ||
28 | CLEAN_LLVM_RULES = \ | |
29 | $(foreach target, $(CFG_HOST), \ | |
223e47cc LB |
30 | clean-llvm$(target)) |
31 | ||
970d7e83 | 32 | .PHONY: clean clean-all clean-misc clean-llvm |
223e47cc LB |
33 | |
34 | clean-all: clean clean-llvm | |
35 | ||
36 | clean-llvm: $(CLEAN_LLVM_RULES) | |
37 | ||
38 | clean: clean-misc $(CLEAN_STAGE_RULES) | |
39 | ||
40 | clean-misc: | |
41 | @$(call E, cleaning) | |
223e47cc LB |
42 | $(Q)rm -f $(RUNTIME_OBJS) $(RUNTIME_DEF) |
43 | $(Q)rm -f $(RUSTLLVM_LIB_OBJS) $(RUSTLLVM_OBJS_OBJS) $(RUSTLLVM_DEF) | |
223e47cc | 44 | $(Q)rm -Rf $(GENERATED) |
1a4d82fc JJ |
45 | $(Q)rm -Rf tmp/* |
46 | $(Q)rm -Rf rust-stage0-*.tar.bz2 $(PKG_NAME)-*.tar.gz $(PKG_NAME)-*.exe | |
47 | $(Q)rm -Rf dist/* | |
48 | $(Q)rm -Rf doc | |
49 | ||
50 | define CLEAN_GENERIC | |
51 | ||
52 | clean-generic-$(2)-$(1): | |
53 | $(Q)find $(1)/rustllvm \ | |
54 | $(1)/rt \ | |
55 | $(1)/test \ | |
56 | $(1)/stage* \ | |
57 | -type f \( \ | |
58 | -name '*.[odasS]' -o \ | |
59 | -name '*.so' -o \ | |
60 | -name '*.dylib' -o \ | |
61 | -name '*.rlib' -o \ | |
62 | -name 'stamp.*' -o \ | |
63 | -name '*.lib' -o \ | |
64 | -name '*.dll' -o \ | |
65 | -name '*.def' -o \ | |
66 | -name '*.py' -o \ | |
67 | -name '*.pyc' -o \ | |
92a42be0 SL |
68 | -name '*.bc' -o \ |
69 | -name '*.rs' \ | |
1a4d82fc JJ |
70 | \) \ |
71 | | xargs rm -f | |
72 | $(Q)find $(1) \ | |
73 | -name '*.dSYM' \ | |
74 | | xargs rm -Rf | |
75 | endef | |
76 | ||
77 | $(foreach host, $(CFG_HOST), $(eval $(call CLEAN_GENERIC,$(host),H))) | |
78 | $(foreach targ, $(CFG_TARGET), $(eval $(call CLEAN_GENERIC,$(targ),T))) | |
223e47cc LB |
79 | |
80 | define CLEAN_HOST_STAGE_N | |
81 | ||
1a4d82fc JJ |
82 | clean$(1)_H_$(2): \ |
83 | $$(foreach crate,$$(CRATES),clean$(1)_H_$(2)-lib-$$(crate)) \ | |
84 | $$(foreach tool,$$(TOOLS) $$(DEBUGGER_BIN_SCRIPTS_ALL),clean$(1)_H_$(2)-tool-$$(tool)) | |
85 | $$(Q)rm -fr $(2)/rt/libbacktrace | |
86 | ||
87 | clean$(1)_H_$(2)-tool-%: | |
88 | $$(Q)rm -f $$(HBIN$(1)_H_$(2))/$$*$$(X_$(2)) | |
89 | ||
90 | clean$(1)_H_$(2)-lib-%: | |
91 | $$(Q)rm -f $$(HLIB$(1)_H_$(2))/$$(call CFG_LIB_GLOB_$(2),$$*) | |
92 | $$(Q)rm -f $$(HLIB$(1)_H_$(2))/$$(call CFG_RLIB_GLOB,$$*) | |
223e47cc LB |
93 | |
94 | endef | |
95 | ||
1a4d82fc | 96 | $(foreach host, $(CFG_HOST), \ |
223e47cc LB |
97 | $(eval $(foreach stage, $(STAGES), \ |
98 | $(eval $(call CLEAN_HOST_STAGE_N,$(stage),$(host)))))) | |
99 | ||
100 | define CLEAN_TARGET_STAGE_N | |
101 | ||
1a4d82fc JJ |
102 | clean$(1)_T_$(2)_H_$(3): \ |
103 | $$(foreach crate,$$(CRATES),clean$(1)_T_$(2)_H_$(3)-lib-$$(crate)) \ | |
104 | $$(foreach tool,$$(TOOLS) $$(DEBUGGER_BIN_SCRIPTS_ALL),clean$(1)_T_$(2)_H_$(3)-tool-$$(tool)) | |
223e47cc LB |
105 | $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/librun_pass_stage* # For unix |
106 | $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/run_pass_stage* # For windows | |
1a4d82fc JJ |
107 | |
108 | clean$(1)_T_$(2)_H_$(3)-tool-%: | |
109 | $$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/$$*$$(X_$(2)) | |
110 | ||
111 | clean$(1)_T_$(2)_H_$(3)-lib-%: | |
112 | $$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$$(call CFG_LIB_GLOB_$(2),$$*) | |
113 | $$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$$(call CFG_RLIB_GLOB,$$*) | |
223e47cc LB |
114 | endef |
115 | ||
1a4d82fc JJ |
116 | $(foreach host, $(CFG_HOST), \ |
117 | $(eval $(foreach target, $(CFG_TARGET), \ | |
223e47cc LB |
118 | $(eval $(foreach stage, 0 1 2 3, \ |
119 | $(eval $(call CLEAN_TARGET_STAGE_N,$(stage),$(target),$(host)))))))) |