summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in3
-rw-r--r--configure.in2
-rw-r--r--lib/mkmf.rb6
3 files changed, 9 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in
index ab3d8bf5c6..e3a8fc6955 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -227,7 +227,8 @@ clean-ext distclean-ext realclean-ext::
@find ext -name Makefile | sort | while read mk; do \
dir=`dirname "$$mk"`; \
echo $(@:-ext=)ing `expr "$$dir" : 'ext/\(.*\)'`; \
- (cd "$$dir"; $(MAKE) $(MFLAGS) $(@:-ext=)); \
+ (cd "$$dir"; $(MAKE) $(MFLAGS) $(@:-ext=)) && \
+ test $@ != clean-ext && rmdir -p "$$dir" 2> /dev/null; \
done
ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)
diff --git a/configure.in b/configure.in
index 7547dd94b4..b362f20d00 100644
--- a/configure.in
+++ b/configure.in
@@ -2144,6 +2144,8 @@ AC_CONFIG_FILES(Makefile, [{
if test "$gnumake" != yes; then
echo ['$(MKFILES): $(srcdir)/common.mk']
sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk
+ else
+ echo 'distclean-local::; @$(RM) GNUmakefile uncommon.mk'
fi
} >> confmk$$.tmp && mv -f confmk$$.tmp Makefile],
[RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT gnumake=$gnumake])
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 615b898429..5686f8137b 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -194,6 +194,10 @@ def rm_f(*files)
FileUtils.rm_f(Dir[*files])
end
+def rm_rf(*files)
+ FileUtils.rm_rf(Dir[*files])
+end
+
# Returns time stamp of the +target+ file if it exists and is newer
# than or equal to all of +times+.
def modified?(target, times)
@@ -361,6 +365,7 @@ MSG
xsystem(command)
ensure
log_src(src)
+ rm_rf 'conftest.dSYM'
end
def link_command(ldflags, opt="", libpath=$DEFLIBPATH|$LIBPATH)
@@ -1894,7 +1899,6 @@ clean:
\t\t@-$(RM) $(CLEANLIBS#{sep}) $(CLEANOBJS#{sep}) $(CLEANFILES#{sep})
distclean: clean
-\t\t@-$(RM_RF) conftest.dSYM
\t\t@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
\t\t@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES#{sep})