b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | --- 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 | |