From 72a27b3eb5e2597855d1aa8a0a0c91882b03a56d Mon Sep 17 00:00:00 2001
From: Gibson Fahnestock <gibfahn@gmail.com>
Date: Sat, 1 Apr 2017 18:12:33 +0100
Subject: [PATCH] build: use $(RM) in Makefile for consistency
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Also allows someone to reassign `$RM`, e.g. with `RM=rm -v` instead of
`rm -f` (the default) should they want to. We're currently using a
mixture of `$(RM)` and `rm -f`.

There are a couple of places which aren't doing -f, have them do it for
consistency.

PR-URL: https://github.com/nodejs/node/pull/12157
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
---
 Makefile | 102 +++++++++++++++++++++++++++----------------------------
 1 file changed, 51 insertions(+), 51 deletions(-)

diff --git a/Makefile b/Makefile
index 410f643c91bd59..f3b41f6c0bd18e 100644
--- a/Makefile
+++ b/Makefile
@@ -95,38 +95,38 @@ uninstall:
 	$(PYTHON) tools/install.py $@ '$(DESTDIR)' '$(PREFIX)'
 
 clean:
-	-rm -rf out/Makefile $(NODE_EXE) $(NODE_G_EXE) out/$(BUILDTYPE)/$(NODE_EXE) \
+	$(RM) -r out/Makefile $(NODE_EXE) $(NODE_G_EXE) out/$(BUILDTYPE)/$(NODE_EXE) \
                 out/$(BUILDTYPE)/node.exp
-	@if [ -d out ]; then find out/ -name '*.o' -o -name '*.a' -o -name '*.d' | xargs rm -rf; fi
-	-rm -rf node_modules
-	@if [ -d deps/icu ]; then echo deleting deps/icu; rm -rf deps/icu; fi
-	-rm -f test.tap
+	@if [ -d out ]; then find out/ -name '*.o' -o -name '*.a' -o -name '*.d' | xargs $(RM) -r; fi
+	$(RM) -r node_modules
+	@if [ -d deps/icu ]; then echo deleting deps/icu; $(RM) -r deps/icu; fi
+	$(RM) test.tap
 
 distclean:
-	-rm -rf out
-	-rm -f config.gypi icu_config.gypi config_fips.gypi
-	-rm -f config.mk
-	-rm -rf $(NODE_EXE) $(NODE_G_EXE)
-	-rm -rf node_modules
-	-rm -rf deps/icu
-	-rm -rf deps/icu4c*.tgz deps/icu4c*.zip deps/icu-tmp
-	-rm -f $(BINARYTAR).* $(TARBALL).*
-	-rm -rf deps/v8/testing/gmock
+	$(RM) -r out
+	$(RM) config.gypi icu_config.gypi config_fips.gypi
+	$(RM) config.mk
+	$(RM) -r $(NODE_EXE) $(NODE_G_EXE)
+	$(RM) -r node_modules
+	$(RM) -r deps/icu
+	$(RM) -r deps/icu4c*.tgz deps/icu4c*.zip deps/icu-tmp
+	$(RM) $(BINARYTAR).* $(TARBALL).*
+	$(RM) -r deps/v8/testing/gmock
 
 check: test
 
 # Remove files generated by running coverage, put the non-instrumented lib back
 # in place
 coverage-clean:
-	if [ -d lib_ ]; then rm -rf lib; mv lib_ lib; fi
-	-rm -rf node_modules
-	-rm -rf gcovr testing
-	-rm -rf out/$(BUILDTYPE)/.coverage
-	-rm -rf .cov_tmp coverage
-	-rm -f out/$(BUILDTYPE)/obj.target/node/src/*.gcda
-	-rm -f out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
-	-rm -f out/$(BUILDTYPE)/obj.target/node/src/*.gcno
-	-rm -f out/$(BUILDTYPE)/obj.target/node/src/tracing*.gcno
+	if [ -d lib_ ]; then $(RM) -r lib; mv lib_ lib; fi
+	$(RM) -r node_modules
+	$(RM) -r gcovr testing
+	$(RM) -r out/$(BUILDTYPE)/.coverage
+	$(RM) -r .cov_tmp coverage
+	$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda
+	$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
+	$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcno
+	$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing*.gcno
 
 # Build and test with code coverage reporting.  Leave the lib directory
 # instrumented for any additional runs the user may want to make.
@@ -147,16 +147,16 @@ coverage-build: all
 	if [ ! -f gcovr/scripts/gcovr.orig ]; then \
 		(cd gcovr && patch -N -p1 < \
 		"$(CURDIR)/testing/coverage/gcovr-patches.diff"); fi
-	if [ -d lib_ ]; then rm -rf lib; mv lib_ lib; fi
+	if [ -d lib_ ]; then $(RM) -r lib; mv lib_ lib; fi
 	mv lib lib_
 	$(NODE) ./node_modules/.bin/nyc instrument lib_/ lib/
 	$(MAKE)
 
 coverage-test: coverage-build
-	-rm -rf out/$(BUILDTYPE)/.coverage
-	-rm -rf .cov_tmp
-	-rm -f out/$(BUILDTYPE)/obj.target/node/src/*.gcda
-	-rm -f out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
+	$(RM) -r out/$(BUILDTYPE)/.coverage
+	$(RM) -r .cov_tmp
+	$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda
+	$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
 	-$(MAKE) $(COVTESTS)
 	mv lib lib__
 	mv lib_ lib
@@ -456,7 +456,7 @@ docopen: $(apidocs_html)
 	@$(PYTHON) -mwebbrowser file://$(PWD)/out/doc/api/all.html
 
 docclean:
-	-rm -rf out/doc
+	$(RM) -r out/doc
 
 build-ci:
 	$(PYTHON) ./configure $(CONFIG_FLAGS)
@@ -631,8 +631,8 @@ release-only:
 	fi
 
 $(PKG): release-only
-	rm -rf $(PKGDIR)
-	rm -rf out/deps out/Release
+	$(RM) -r $(PKGDIR)
+	$(RM) -r out/deps out/Release
 	$(PYTHON) ./configure \
 		--dest-cpu=x64 \
 		--tag=$(TAG) \
@@ -663,24 +663,24 @@ $(TARBALL): release-only $(NODE_EXE) doc
 	mkdir -p $(TARNAME)/doc/api
 	cp doc/node.1 $(TARNAME)/doc/node.1
 	cp -r out/doc/api/* $(TARNAME)/doc/api/
-	rm -rf $(TARNAME)/deps/v8/{test,samples,tools/profviz,tools/run-tests.py}
-	rm -rf $(TARNAME)/doc/images # too big
-	rm -rf $(TARNAME)/deps/uv/{docs,samples,test}
-	rm -rf $(TARNAME)/deps/openssl/openssl/{doc,demos,test}
-	rm -rf $(TARNAME)/deps/zlib/contrib # too big, unused
-	rm -rf $(TARNAME)/.{editorconfig,git*,mailmap}
-	rm -rf $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc}
-	rm -rf $(TARNAME)/tools/{osx-*,license-builder.sh,cpplint.py}
-	rm -rf $(TARNAME)/test*.tap
-	find $(TARNAME)/ -name ".eslint*" -maxdepth 2 | xargs rm
-	find $(TARNAME)/ -type l | xargs rm # annoying on windows
+	$(RM) -r $(TARNAME)/deps/v8/{test,samples,tools/profviz,tools/run-tests.py}
+	$(RM) -r $(TARNAME)/doc/images # too big
+	$(RM) -r $(TARNAME)/deps/uv/{docs,samples,test}
+	$(RM) -r $(TARNAME)/deps/openssl/openssl/{doc,demos,test}
+	$(RM) -r $(TARNAME)/deps/zlib/contrib # too big, unused
+	$(RM) -r $(TARNAME)/.{editorconfig,git*,mailmap}
+	$(RM) -r $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc}
+	$(RM) -r $(TARNAME)/tools/{osx-*,license-builder.sh,cpplint.py}
+	$(RM) -r $(TARNAME)/test*.tap
+	find $(TARNAME)/ -name ".eslint*" -maxdepth 2 | xargs $(RM)
+	find $(TARNAME)/ -type l | xargs $(RM) # annoying on windows
 	tar -cf $(TARNAME).tar $(TARNAME)
-	rm -rf $(TARNAME)
+	$(RM) -r $(TARNAME)
 	gzip -c -f -9 $(TARNAME).tar > $(TARNAME).tar.gz
 ifeq ($(XZ), 0)
 	xz -c -f -$(XZ_COMPRESSION) $(TARNAME).tar > $(TARNAME).tar.xz
 endif
-	rm $(TARNAME).tar
+	$(RM) $(TARNAME).tar
 
 tar: $(TARBALL)
 
@@ -709,14 +709,14 @@ $(TARBALL)-headers: release-only
 		--release-urlbase=$(RELEASE_URLBASE) \
 		$(CONFIG_FLAGS) $(BUILD_RELEASE_FLAGS)
 	HEADERS_ONLY=1 $(PYTHON) tools/install.py install '$(TARNAME)' '/'
-	find $(TARNAME)/ -type l | xargs rm -f
+	find $(TARNAME)/ -type l | xargs $(RM)
 	tar -cf $(TARNAME)-headers.tar $(TARNAME)
-	rm -rf $(TARNAME)
+	$(RM) -r $(TARNAME)
 	gzip -c -f -9 $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.gz
 ifeq ($(XZ), 0)
 	xz -c -f -$(XZ_COMPRESSION) $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.xz
 endif
-	rm $(TARNAME)-headers.tar
+	$(RM) $(TARNAME)-headers.tar
 
 tar-headers: $(TARBALL)-headers
 
@@ -732,8 +732,8 @@ ifeq ($(XZ), 0)
 endif
 
 $(BINARYTAR): release-only
-	rm -rf $(BINARYNAME)
-	rm -rf out/deps out/Release
+	$(RM) -r $(BINARYNAME)
+	$(RM) -r out/deps out/Release
 	$(PYTHON) ./configure \
 		--prefix=/ \
 		--dest-cpu=$(DESTCPU) \
@@ -745,12 +745,12 @@ $(BINARYTAR): release-only
 	cp LICENSE $(BINARYNAME)
 	cp CHANGELOG.md $(BINARYNAME)
 	tar -cf $(BINARYNAME).tar $(BINARYNAME)
-	rm -rf $(BINARYNAME)
+	$(RM) -r $(BINARYNAME)
 	gzip -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.gz
 ifeq ($(XZ), 0)
 	xz -c -f -$(XZ_COMPRESSION) $(BINARYNAME).tar > $(BINARYNAME).tar.xz
 endif
-	rm $(BINARYNAME).tar
+	$(RM) $(BINARYNAME).tar
 
 binary: $(BINARYTAR)