Clean intermediate files and debug info for each target

By replacing `ALLOBJS` suffix with intermediate file suffixes instead
of roughly removing by wildcards.  Made `cleanlibs` append `.dSYM`
suffix for each word in `TARGET_SO`, not the end of the entire list.
This commit is contained in:
Nobuyoshi Nakada 2024-03-09 01:44:54 +09:00
parent 8e3cb69a83
commit 0fb39ab1b9
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
7 changed files with 18 additions and 7 deletions

View File

@ -275,7 +275,7 @@ EXPORTOBJS = $(DLNOBJ) \
$(COMMONOBJS) $(COMMONOBJS)
OBJS = $(EXPORTOBJS) builtin.$(OBJEXT) OBJS = $(EXPORTOBJS) builtin.$(OBJEXT)
ALLOBJS = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS) ALLOBJS = $(OBJS) $(MINIOBJS) $(INITOBJS) $(MAINOBJ)
GOLFOBJS = goruby.$(OBJEXT) GOLFOBJS = goruby.$(OBJEXT)
@ -718,7 +718,7 @@ clear-installed-list: PHONY
clean: clean-ext clean-enc clean-golf clean-docs clean-extout clean-local clean-platform clean-spec clean: clean-ext clean-enc clean-golf clean-docs clean-extout clean-local clean-platform clean-spec
clean-local:: clean-runnable clean-local:: clean-runnable
$(Q)$(RM) $(OBJS) $(MINIOBJS) $(INITOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES) $(Q)$(RM) $(ALLOBJS) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
$(Q)$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) dmyenc.$(OBJEXT) $(ARCHFILE) .*.time $(Q)$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) dmyenc.$(OBJEXT) $(ARCHFILE) .*.time
$(Q)$(RM) y.tab.c y.output encdb.h transdb.h config.log rbconfig.rb $(ruby_pc) $(COROUTINE_H:/Context.h=/.time) $(Q)$(RM) y.tab.c y.output encdb.h transdb.h config.log rbconfig.rb $(ruby_pc) $(COROUTINE_H:/Context.h=/.time)
$(Q)$(RM) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT) ruby.imp ChangeLog $(STATIC_RUBY)$(EXEEXT) $(Q)$(RM) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT) ruby.imp ChangeLog $(STATIC_RUBY)$(EXEEXT)

View File

@ -1110,7 +1110,7 @@ main()
AC_CHECK_HEADERS(crt_externs.h, [], [], [ AC_CHECK_HEADERS(crt_externs.h, [], [], [
#include <crt_externs.h> #include <crt_externs.h>
]) ])
cleanlibs='$(TARGET_SO).dSYM' cleanlibs='$(TARGET_SO:=.dSYM)'
], ],
[solaris*], [ LIBS="-lm $LIBS" [solaris*], [ LIBS="-lm $LIBS"
ac_cv_func_vfork=no ac_cv_func_vfork=no

View File

@ -469,6 +469,10 @@ benchmark/%: miniruby$(EXEEXT) update-benchmark-driver PHONY
--executables="built-ruby::$(BENCH_RUBY) --disable-gem" \ --executables="built-ruby::$(BENCH_RUBY) --disable-gem" \
$(srcdir)/$@ $(BENCH_OPTS) $(OPTS) $(srcdir)/$@ $(BENCH_OPTS) $(OPTS)
clean-local:: TARGET_SO = $(PROGRAM) $(WPROGRAM) $(LIBRUBY_SO) $(STATIC_RUBY) miniruby goruby
clean-local::
-$(Q)$(RMALL) $(cleanlibs)
clean-srcs-ext:: clean-srcs-ext::
$(Q)$(RM) $(patsubst $(srcdir)/%,%,$(EXT_SRCS)) $(Q)$(RM) $(patsubst $(srcdir)/%,%,$(EXT_SRCS))

View File

@ -84,6 +84,9 @@ all:
make-workdir: make-workdir:
$(Q)$(MAKEDIRS) $(WORKDIRS) $(Q)$(MAKEDIRS) $(WORKDIRS)
.PHONY: encs all modencs libencs enc libenc trans libtrans srcs
.PHONY: clean distclean realclean clean-srcs
clean: clean:
distclean: clean distclean: clean

View File

@ -35,7 +35,7 @@ ENCSOS =<%ENCS.map {|e|%> $(ENCSODIR)/<%=e%>.$(DLEXT) \
<%}%> # <%}%> #
ENCCLEANLIBS = <%=cleanlibs.map {|clean| ENCCLEANLIBS = <%=cleanlibs.map {|clean|
clean.gsub(/\$\*(\.\w+)?/) {"$(ENCOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"} clean.gsub(/\$\*(\.\w+)?/) {"$(ENCOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}
.gsub(/\A\$\(TARGET_SO\)(.*)/) {"$(ENCSOS:=#{$1})"} .gsub(/\$\(\KTARGET_SO(?=[:\)])/) {"ENCSOS"}
}.join(" ")%> }.join(" ")%>
ENCCLEANOBJS = <%=cleanobjs.map {|clean| ENCCLEANOBJS = <%=cleanobjs.map {|clean|
clean.gsub(/\$\*(\.\w+)?/) {"$(ENCOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"} clean.gsub(/\$\*(\.\w+)?/) {"$(ENCOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}
@ -52,7 +52,7 @@ TRANSSOS =<%TRANS.map {|e|%> $(ENCSODIR)/<%=e%>.$(DLEXT) \
<%}%> # <%}%> #
TRANSCLEANLIBS = <%=cleanlibs.map {|clean| TRANSCLEANLIBS = <%=cleanlibs.map {|clean|
clean.gsub(/\$\*(\.\w+)?/) {"$(TRANSOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"} clean.gsub(/\$\*(\.\w+)?/) {"$(TRANSOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}
.gsub(/\A\$\(TARGET_SO\)(.*)/) {"$(TRANSSOS:=#{$1})"} .gsub(/\$\(\KTARGET_SO(?=[:\)])/) {"TRANSSOS"}
}.join(" ")%> }.join(" ")%>
TRANSCLEANOBJS = <%=cleanobjs.map {|clean| TRANSCLEANOBJS = <%=cleanobjs.map {|clean|
clean.gsub(/\$\*(\.\w+)?/) {"$(TRANSOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"} clean.gsub(/\$\*(\.\w+)?/) {"$(TRANSOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}

View File

@ -2516,6 +2516,7 @@ static: #{$extmk && !$static ? "all" : %[$(STATIC_LIB)#{$extout ? " install-rb"
mfile.puts dest mfile.puts dest
mfile.print "clean-so::\n" mfile.print "clean-so::\n"
mfile.print "\t-$(Q)$(RM) #{fseprepl[dest]} #{fseprepl[stamp]}\n" mfile.print "\t-$(Q)$(RM) #{fseprepl[dest]} #{fseprepl[stamp]}\n"
mfile.print "\t-$(Q)$(RM_RF) #{fseprepl['$(CLEANLIBS)']}\n"
mfile.print "\t-$(Q)$(RMDIRS) #{fseprepl[dir]}#{$ignore_error}\n" mfile.print "\t-$(Q)$(RMDIRS) #{fseprepl[dir]}#{$ignore_error}\n"
else else
mfile.print "#{f} #{stamp}\n" mfile.print "#{f} #{stamp}\n"

View File

@ -269,6 +269,8 @@ ACTIONS_ENDGROUP = @$(NULLCMD)
DESTDIR = @DESTDIR@ DESTDIR = @DESTDIR@
cleanlibs = @cleanlibs@
configure_args = @configure_args@ configure_args = @configure_args@
#### End of variables #### End of variables
@ -491,8 +493,9 @@ clean-local::
enc/encinit.c enc/encinit.$(OBJEXT) $(pkgconfig_DATA) \ enc/encinit.c enc/encinit.$(OBJEXT) $(pkgconfig_DATA) \
ruby-runner.$(OBJEXT) ruby-runner.h \ ruby-runner.$(OBJEXT) ruby-runner.h \
|| $(NULLCMD) || $(NULLCMD)
$(Q)find . -depth \( -name '*.bc' -o -name '*.[is]' \) -delete 2> /dev/null || true @$(RM) $(ALLOBJS:.$(OBJEXT)=.bc)
-$(Q)$(RMALL) *.dSYM @$(RM) $(ALLOBJS:.$(OBJEXT)=.i)
@$(RM) $(ALLOBJS:.$(OBJEXT)=.s)
distclean-local:: distclean-local::
$(Q)$(RM) \ $(Q)$(RM) \