blob: d2197571a9299d6ad32990374487b5f3666fac57 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001--- a/Makefile.SH
2+++ b/Makefile.SH
3@@ -275,6 +275,7 @@ LNS = $lns
4 # NOTE: some systems don't grok "cp -f". XXX Configure test needed?
5 CPS = $cp
6 RMS = rm -f
7+RMS_R = rm -rf
8 ranlib = $ranlib
9
10 # The following are mentioned only to make metaconfig include the
11@@ -736,7 +737,7 @@ bitcount.h: generate_uudmap$(HOST_EXE_EX
12 ./generate_uudmap$(HOST_EXE_EXT) $(generated_headers)
13
14 generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT)
15- -@rm generate_uudmap$(HOST_EXE_EXT)
16+ @$(RMS) generate_uudmap$(HOST_EXE_EXT)
17 $(LNS) $(HOST_GENERATE) generate_uudmap$(HOST_EXE_EXT)
18
19 !NO!SUBS!
20@@ -876,26 +877,26 @@ mydtrace.h: $(DTRACE_H)
21 define)
22 $spitshell >>$Makefile <<'!NO!SUBS!'
23 $(DTRACE_MINI_O): perldtrace.d $(miniperl_objs_nodt)
24- -rm -rf mpdtrace
25+ $(RMS_R) mpdtrace
26 mkdir mpdtrace
27 cp $(miniperl_objs_nodt) mpdtrace/
28 $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MINI_O) $(miniperl_dtrace_objs)
29
30 $(DTRACE_PERLLIB_O): perldtrace.d $(perllib_objs_nodt)
31- -rm -rf libpdtrace
32+ $(RMS_R) libpdtrace
33 mkdir libpdtrace
34 cp $(perllib_objs_nodt) libpdtrace/
35 $(DTRACE) -G -s perldtrace.d -o $(DTRACE_PERLLIB_O) $(perllib_dtrace_objs)
36
37 $(DTRACE_MAIN_O): perldtrace.d perlmain$(OBJ_EXT)
38- -rm -rf maindtrace
39+ $(RMS_R) maindtrace
40 mkdir maindtrace
41 cp perlmain$(OBJ_EXT) maindtrace/
42 $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MAIN_O) $(perlmain_dtrace_objs) || \
43 ( $(ECHO) "No probes in perlmain$(OBJ_EXT), generating a dummy $(DTRACE_MAIN_O)" && \
44 $(ECHO) >dtrace_main.c && \
45 `$(CCCMD)` $(PLDLFLAGS) dtrace_main.c && \
46- rm -f dtrace_main.c )
47+ $(RMS) dtrace_main.c )
48
49 !NO!SUBS!
50 ;;
51@@ -906,13 +907,13 @@ $(LIBPERL): $& $(perllib_dep) $(DYNALOAD
52 case "$useshrplib" in
53 true)
54 $spitshell >>$Makefile <<'!NO!SUBS!'
55- rm -f $@
56+ $(RMS) $@
57 $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs)
58 !NO!SUBS!
59 case "$osname" in
60 aix)
61 $spitshell >>$Makefile <<'!NO!SUBS!'
62- rm -f libperl$(OBJ_EXT)
63+ $(RMS) libperl$(OBJ_EXT)
64 mv $@ libperl$(OBJ_EXT)
65 $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
66 !NO!SUBS!
67@@ -921,7 +922,7 @@ $(LIBPERL): $& $(perllib_dep) $(DYNALOAD
68 ;;
69 *)
70 $spitshell >>$Makefile <<'!NO!SUBS!'
71- rm -f $(LIBPERL)
72+ $(RMS) $(LIBPERL)
73 $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER)
74 @$(ranlib) $(LIBPERL)
75 !NO!SUBS!
76@@ -954,7 +955,7 @@ $(MINIPERL_EXE): lib/buildcustomize.pl
77 amigaos*)
78 $spitshell >>$Makefile <<'!NO!SUBS!'
79 lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl
80- -@rm -f miniperl.xok
81+ @$(RMS) miniperl.xok
82 $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
83 $(miniperl_objs) $(libs)
84 # $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
85@@ -992,7 +993,7 @@ NAMESPACEFLAGS = -force_flat_namespace
86 esac
87 $spitshell >>$Makefile <<'!NO!SUBS!'
88 lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl
89- -@rm -f miniperl.xok
90+ @$(RMS) miniperl.xok
91 $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
92 $(miniperl_objs) $(libs)
93 $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
94@@ -1003,8 +1004,8 @@ lib/buildcustomize.pl: $& $(miniperl_obj
95 if test "X$hostperl" != X; then
96 $spitshell >>$Makefile <<!GROK!THIS!
97 lib/buildcustomize.pl: \$& \$(miniperl_dep) write_buildcustomize.pl
98- -@rm -f miniperl.xok
99- -@rm \$(MINIPERL_EXE)
100+ @\$(RMS) miniperl.xok
101+ @\$(RMS) \$(MINIPERL_EXE)
102 \$(LNS) \$(HOST_PERL) \$(MINIPERL_EXE)
103 \$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
104 \$(MINIPERL) -f write_buildcustomize.pl 'osname' "$osname"
105@@ -1012,7 +1013,7 @@ lib/buildcustomize.pl: \$& \$(miniperl_d
106 else
107 $spitshell >>$Makefile <<'!NO!SUBS!'
108 lib/buildcustomize.pl: $& $(miniperl_dep) write_buildcustomize.pl
109- -@rm -f miniperl.xok
110+ @$(RMS) miniperl.xok
111 $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
112 $(miniperl_objs) $(libs)
113 $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
114@@ -1025,7 +1026,7 @@ lib/buildcustomize.pl: $& $(miniperl_dep
115 $spitshell >>$Makefile <<'!NO!SUBS!'
116
117 $(PERL_EXE): $& $(perlmain_dep) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) write_buildcustomize.pl
118- -@rm -f miniperl.xok
119+ @$(RMS) miniperl.xok
120 !NO!SUBS!
121
122 case $osname in
123@@ -1119,8 +1120,8 @@ pod/perl5281delta.pod: pod/perldelta.pod
124 $(LNS) perldelta.pod pod/perl5281delta.pod
125
126 extra.pods: $(MINIPERL_EXE)
127- -@test ! -f extra.pods || rm -f `cat extra.pods`
128- -@rm -f extra.pods
129+ -@test ! -f extra.pods || $(RMS) `cat extra.pods`
130+ @$(RMS) extra.pods
131 -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \
132 nx=`echo $$x | sed -e "s/README\.//"`; \
133 $(LNS) ../$$x "pod/perl"$$nx".pod" ; \
134@@ -1340,11 +1341,11 @@ realclean: _realcleaner _mopup
135 @echo "Note that '$(MAKE) realclean' does not delete config.sh or Policy.sh"
136
137 _clobber:
138- -@rm -f Cross/run-* Cross/to-* Cross/from-* Cross/mkdir
139- -rm -rf host
140- rm -f t/test_state
141- rm -f config.sh cppstdin Policy.sh extras.lst
142- rm -f $(MANIFEST_SRT)
143+ @$(RMS) Cross/run-* Cross/to-* Cross/from-* Cross/mkdir
144+ $(RMS_R) host
145+ $(RMS) t/test_state
146+ $(RMS) config.sh cppstdin Policy.sh extras.lst
147+ $(RMS) $(MANIFEST_SRT)
148
149 clobber: _realcleaner _mopup _clobber
150
151@@ -1352,23 +1353,23 @@ distclean: clobber
152
153 # Like distclean but also removes emacs backups and *.orig.
154 veryclean: _verycleaner _mopup _clobber
155- -@rm -f Obsolete Wanted
156+ $(RMS) Obsolete Wanted
157
158 # Do not 'make _mopup' directly.
159 _mopup:
160- rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c generate_uudmap$(EXE_EXT) $(generated_headers)
161+ $(RMS) *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c generate_uudmap$(EXE_EXT) $(generated_headers)
162 -rmdir .depending
163- -@test -f extra.pods && rm -f `cat extra.pods`
164- -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
165- -rm -f perl.exp ext.libs $(generated_pods) uni.data opmini.o perlmini.o pod/roffitall
166- -rm -f perl.export perl.dll perl.libexp perl.map perl.def
167- -rm -f *perl.xok
168- -rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
169- -rm -f $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl
170- -rm -f config.arch config.over $(DTRACE_H)
171+ -@test -f extra.pods && $(RMS) `cat extra.pods`
172+ -@test -f vms/README_vms.pod && $(RMS) vms/README_vms.pod
173+ $(RMS) perl.exp ext.libs $(generated_pods) uni.data opmini.o perlmini.o pod/roffitall
174+ $(RMS) perl.export perl.dll perl.libexp perl.map perl.def
175+ $(RMS) *perl.xok
176+ $(RMS) cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
177+ $(RMS) $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl
178+ $(RMS) config.arch config.over $(DTRACE_H)
179
180 _cleaner1:
181- -cd os2; rm -f Makefile
182+ -cd os2; $(RMS) Makefile
183 -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN)
184 -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN)
185 -@if test -f $(MINIPERL_EXE) ; then \
186@@ -1378,31 +1379,31 @@ _cleaner1:
187 else \
188 sh $(CLEAN).sh ; \
189 fi
190- rm -f realclean.sh veryclean.sh
191- -rm -f `grep -v ^# mkppport.lst | grep . | sed -e 's/$$/\/ppport.h/'`
192+ $(RMS) realclean.sh veryclean.sh
193+ $(RMS) `grep -v ^# mkppport.lst | grep . | sed -e 's/$$/\/ppport.h/'`
194
195 # Dear POSIX, thanks for making the default to xargs to be
196 # run once if nothhing is passed in. It is such a great help.
197
198 # Some systems do not support "?", so keep these files separate.
199 _cleaner2:
200- -rm -f core.*perl.*.? t/core.perl.*.? .?*.c
201- rm -f core *perl.core t/core t/*perl.core core.* t/core.*
202- rm -f t/$(PERL_EXE) t/rantests
203- rm -rf t/tmp*
204- rm -rf $(addedbyconf)
205- rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old utils/Makefile
206- rm -f $(private)
207- rm -rf $(unidatafiles) $(unidatadirs)
208- rm -rf lib/auto
209- rm -f lib/.exists lib/*/.exists lib/*/*/.exists
210- rm -f h2ph.man
211- rm -rf .config
212- rm -f preload
213- rm -f pod2htmd.tmp
214- rm -rf pod/perlfunc pod/perlipc
215+ $(RMS) core.*perl.*.? t/core.perl.*.? .?*.c
216+ $(RMS) core *perl.core t/core t/*perl.core core.* t/core.*
217+ $(RMS) t/$(PERL_EXE) t/rantests
218+ $(RMS_R) t/tmp*
219+ $(RMS_R) $(addedbyconf)
220+ $(RMS) $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old utils/Makefile
221+ $(RMS) $(private)
222+ $(RMS_R) $(unidatafiles) $(unidatadirs)
223+ $(RMS_R) lib/auto
224+ $(RMS) lib/.exists lib/*/.exists lib/*/*/.exists
225+ $(RMS) h2ph.man
226+ $(RMS_R) .config
227+ $(RMS) preload
228+ $(RMS) pod2htmd.tmp
229+ $(RMS_R) pod/perlfunc pod/perlipc
230 -rmdir ext/B/lib
231- rm -f so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
232+ $(RMS) so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
233 -rmdir lib/version lib/threads lib/inc/ExtUtils lib/inc lib/encoding
234 -rmdir lib/autodie/exception lib/autodie/Scope lib/autodie lib/XS
235 -rmdir lib/Win32API lib/VMS lib/Unicode/Collate/Locale
236@@ -1452,11 +1453,11 @@ _realcleaner:
237 _verycleaner:
238 @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=veryclean
239 @$(LDLIBPTH) $(MAKE) _cleaner2
240- -rm -f *~ *.orig */*~ */*.orig */*/*~ */*/*.orig
241+ $(RMS) *~ *.orig */*~ */*.orig */*/*~ */*/*.orig
242
243 .PHONY: lint
244 lint: $(c)
245- rm -f *.ln
246+ $(RMS) *.ln
247 lint $(lintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(c)
248
249 cscopeflags = -Rb # Recursive, build-only.
250@@ -1514,7 +1515,7 @@ case "$targethost" in
251 '') $spitshell >>$Makefile <<'!NO!SUBS!'
252 test_prep test-prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) \
253 $(dynamic_ext) $(TEST_PERL_DLL) runtests $(generated_pods) common_build
254- cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
255+ cd t && ($(RMS) $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
256
257 !NO!SUBS!
258 ;;
259@@ -1564,7 +1565,7 @@ test_prep test-prep: test_prep_pre \$(MI
260 $to config.sh
261 # --- For lib/diagnostics.t with -Duseshrplib
262 $to \$(PERL_EXE)
263- cd t && (rm -f \$(PERL_EXE); \$(LNS) ../\$(PERL_EXE) \$(PERL_EXE)) && cd ..
264+ cd t && (\$(RMS) \$(PERL_EXE); \$(LNS) ../\$(PERL_EXE) \$(PERL_EXE)) && cd ..
265 $to t/\$(PERL_EXE)
266
267 !GROK!THIS!
268@@ -1574,7 +1575,7 @@ esac
269 $spitshell >>$Makefile <<'!NO!SUBS!'
270 test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL)
271 $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
272- cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
273+ cd t && ($(RMS) $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
274 !NO!SUBS!
275
276 case "$targethost" in
277@@ -1629,7 +1630,7 @@ minitest_prep:
278 @echo "You may see some irrelevant test failures if you have been unable"
279 @echo "to build lib/Config.pm, or the Unicode data files."
280 @echo " "
281- - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE))
282+ - cd t && ($(RMS) $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE))
283
284 MINITEST_TESTS = base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t
285